`

使用混淆编译方式打包apk

 
阅读更多

一、解决android使用gson解析json字符串,并使用混淆编译方式打包apk遇到的问题

 

方法一:

      Gson gson = new Gson();
      // 将json格式字符串转化为List<对象>
      Type listType = new TypeToken<ArrayList<PersonMsgMini>>(){}.getType();
      personMsgList = gson.fromJson(jsonObject.getString("list"), listType);

 

方法二:

     public class AttendanceMsgGson
{
 //字段名要跟json字符串中的key一致
 private ArrayList<AttendanceMsg> list;

 public ArrayList<AttendanceMsg> getList()
 {
  return list;
 }

 public void setList(ArrayList<AttendanceMsg> list)
 {
  this.list = list;
 }
 
}

 

Gson gson = new Gson();

AttendanceMsgGson attGson = gson.fromJson(result, AttendanceMsgGson.class);

 

下面是重点:

说明:

其中两种gson解析json字符串的方法都没有问题,问题主要是使用了混淆编译的方式进行apk打包(其中不混淆编译进行apk打包则一切正常),因为客户端代码中的JavaBean(实体类)的字段名称必须与服务端返回json字符串中的key要一致,才能进行解析,而混淆编

译之后,客户端代码中的JavaBean(实体类)的类名与其字段名称全部变成了a、b、c、d等等字符串,这与服务端返回的json字符串中的key不一致,导致解析失败。所以,解决的办法是:在进行混淆编译进行打包apk的时候,过滤掉存放所有JavaBean(实体类)的包不进行混淆编译。经过测试,一切正常。

 

在proguard.cfg文件中添加:

# removes such information by default, so configure it to keep all of it.
-keepattributes Signature
# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }
# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { *; }

 

//这句非常重要,主要是滤掉 com.bgb.scan.model包下的所有.class文件不进行混淆编译

-keep class com.bgb.scan.model.** {*;}

 

二、-libraryjars libs/gson-1.7.1.jar,其中libs/其实省略了项目A的根目录,

如果是通过Is Library引用的项目,、-libraryjars libs/xxx.jar是不行的,因为引用进来的项目其jar路径如下:

xxxx\bgb_ws\Util_Universal_ImageLoader\bin\util_universal_imageloader.jar,

是在Util_Universal_ImageLoader项目的bin目录下。Util_Universal_ImageLoader与A项目同一文件夹,则在A中使用过滤是:-libraryjars ../Util_Universal_ImageLoader/bin/util_universal_imageloader.jar

 

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Androidapk反编译之androidAPK有效加密方法.pdf

    Android APK 反编译之有效防止破解和反编译加密方法主要包括混淆代码、防二次打包和 DEX、RES、SO 库等文件加密等。通过这些方法,我们可以有效防止 Android APK 被破解和反编译,保护 Android APP 的安全。

    Android如何防止apk程序被反编译

    proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从而达到保护代码的作用。 下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用

    apk反编译和混淆及打包签名-keystore问题总结

    NULL 博文链接:https://913.iteye.com/blog/1482126

    apk自定义混淆字典集合.zip

    众所周知,在 android studio中的默认混淆打包出来的文件是abcdefg这种字母字典,想要修改混淆字典就得自定义配置,使用自定义混淆字典进行混淆,增加app被反编译后阅读的难度, 压缩包里面包含1il、o0O、中文、java...

    Android代码混淆及签名.doc

    "Android代码混淆及签名" ...代码混淆和签名打包 APK 是 Android 应用程序安全的重要组成部分。通过配置 proguard.cfg 文件和签名打包 APK,可以保护 Android 应用程序的源代码和intellectual property。

    一键反编译Apk-谷歌提供的工具:android-classyshark

    带有界面,一键反编译Apk工具,直接打开Apk文件,就可以看到Apk中所有的文件结构,甚至还集成了dex文件查看,java代码查看,方法数分析、导入混淆mapping文件等一系列工具。谷歌推出这个工具的目的是为了让我们...

    android编译系统分析.pdf

    Android编译系统的主要任务是将Java源代码编译成DEX(Dalvik Executable)文件,然后将DEX文件打包成APK文件。 二、Android编译系统组件 Android编译系统主要包括以下几个组件: 1、Java编译器:Java编译器负责...

    android_最新_反编译工具.7z

    准备一个测试apk(eclipse或androidstudio打包,混淆文件为eclipse或androidstudio默认带的),如Test_android.apk,复制一个副本重命名为Test_android.zip,然后解压,你就可以看到一些东西了,不过这种方式看到的大...

    Android Studio 超级简单的打包生成apk的方法

    打包分debug版和release包,通常所说的打包指生成release版的apk,release版的apk会比debug版的小,release版的还会进行混淆和用自己的keystore签名,以防止别人反编译后重新打包替换你的应用。 简单点说就是给你...

    mac环境混淆apk、dex2jar、jd-dui下载和使用

    得到其中的classes.dex文件 ,它就是java源代码经过编译再通过dx工具打包而成的。 2.2将classes.dex文件复制到步骤一解压的dex2jar的目录中。 2.3命令行下定位到dex2jar目录,运行 sudo sh d2j-dex2jar.sh classes....

    android安卓反编译

    三、 图形化反编译apk(本人未使用过) 上述步骤一、二讲述了命令行反编译apk,现在提供一种图形化反编译工具:Androidfby 首先,下载上述反编译工具包,打开Androidfby目录,双击Android反编译工具.exe,就可以浏览...

    JAVA语言安卓app报毒处理系统源码安卓apk去毒误报毒处理系统源码带加固功能.zip

    系统通过对apk反编译,随机包名,随机签名,混淆代码等方式,回编译生成新的apk安装包 通过系统智能自动处理,间隔5分钟(可以自定义时间)生成一个新包,通过对接对象云储存系统 分发给不同的用户下载使用,确保...

    virboxprotector_2.0版免费试用版-支持APK加固

    只需轻松几步配置,即可快速完成加固,同时提供命令行接入方式,可以实现一键编译、打包、加固。 如何使用深思iOS应用加固-VirboxProtector 1.申请试用 注册VirboxProtector账号即可下载安装使用。 申请试用地址:...

    Android资源混淆工具

    本文主要是讲述资源混淆组件的用法以及性能,资源混淆组件不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件...

    Android Studio将程序打包成APK的步骤详解

    第二步:如果之前有编译成APK的话,就直接选择Choose existing已经存在的key;如果没有编译成APK那就选择Create new创建一个新的key的存放路径,然后填上密码,其中First and Last Name填一下,其他的无所谓。如图 ...

    Android逆向助手.zip

    这个软件主要是pc端的Androoid反编译工具,用于对apk的反编译、反汇编、打包apk、签名apk

    网易云加密安卓加固工具

    3.源码混淆的方式保护,从而防止代码泄露 4.通过对内容的监控,防止特定的内容被dump 网易云加密主要功能 对抗静态分析 对Dex文件整体加密,并剥离核心逻辑,samli、JEB、Jadx等反编译工具分析应用逻辑,保护...

    java反编译class源码-MARA_Framework:MARA是一个移动应用程序逆向工程和分析框架。它是一个工具包,汇集了常用的移动应用

    java反编译class源码MARA_框架 MARA是A M obile甲pplicationřEVERSE工程和A nalysis框架。 它是一个将常用的移动应用程序逆向工程和分析工具组合在一起的工具,...通过以下方式识别编译器、打包器和混淆器 通过正则表

    Android资源混淆工具AndResGuard.zip

    AndResGuard 是一款 Android资源混淆工具,资源混淆组件不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中...

    Android 7.0中新签名对多渠道打包的影响详解

    Android打包过程大致如图所示,整个流程就是将Java代码,资源文件以及第三方库整合成一个Apk文件,并对整合后的文件进行签名和优化对齐。整个过程可以简 单分为以下几个步骤: 资源预编译 为每一个非assert资源...

Global site tag (gtag.js) - Google Analytics