欢迎来到天天文库
浏览记录
ID:58819401
大小:278.32 KB
页数:6页
时间:2020-10-25
《Android代码混淆及签名.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Android代码混淆、签名打包apk一、代码混淆代码混淆说简单的其实就是为了防止别人反编译你的源代码,因为JAVA程序比较容易被反编译,所以如果程序中有一些比较重要的逻辑的话,通过代码混淆来处理的确可以阻止一下被人反编译。不过代码混淆还是不能阻止被反编译xml格式的布局文件,混淆的是JAVA文件。但是混淆后的代码如果经验多的话,可是可以分析出来的,但这是少数。下面开始说说这个东西是如何使用的,有两种方式可以实现代码混淆,一种是直接在eclipse中,android2.3开始支持这个功能。另一种是使用ant。首先我们会在项目中看到proguard.cfg或者prog
2、uard-project.txt文件,只需将project.properties里的分注释拿掉即可,去掉#注:有的项目下面会存在proguard-project.txt,这时你直接拿掉注释即可;自定义的时候,创建文件proguard.cfg文件,将系统自带的proguard-project.txt内容复制进去。配置proguard.cfg文件,注意事项:1、添加外部引用的外部jar包;2、保留外部jar里的类以及方法;(由于有的jar已经混淆过,再次混淆会出错)3、涉及到网络请求json数据返回的,需要将实体类保留,不参与混淆,并且每个实体类都需序列化;(和服务器端
3、实体类对应,参与混淆将无法解析)-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-ignorewarnings-dontwarn-dontobfuscate-dontoptimize-libraryjarslibs/android-support-v4.jar-libraryjarslibs/Core.jar-libraryjarslibs/yht.BASE64Decoder.jar-dontskipnonpubl
4、iclibraryclassmembers-dontskipnonpubliclibraryclasses-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*-keeppublicclass*extendsandroid.app.Activity-keeppublicclass*extendsandroid.app.Application-keeppublicclass*extendsandroid.app.Service-keeppublicclass*extendsandr
5、oid.content.BroadcastReceiver-keeppublicclass*extendsandroid.content.ContentProvider-keeppublicclass*extendsandroid.app.backup.BackupAgentHelper-keeppublicclass*extendsandroid.preference.Preference-keeppublicclasscom.android.vending.licensing.ILicensingService-keeppublicclasscom.broadt
6、ext.phreportfault.entity.**{*;}-keeppublicclasscom.broadtext.phreportfault.service.result.**{*;}-keepclassandroid.support.v4.**{*;}-keepclasscom.google.zxing.**{*;}-keepclassDecoder.BASE64Encoder.**{*;}-keepattributesSignature-keepclassmembersclass*implementsjava.io.Serializable{static
7、finallongserialVersionUID;privatestaticfinaljava.io.ObjectStreamField[]serialPersistentFields;privatevoidwriteObject(java.io.ObjectOutputStream);privatevoidreadObject(java.io.ObjectInputStream);java.lang.ObjectwriteReplace();java.lang.ObjectreadResolve();}-keepclasseswithmembernamesc
此文档下载收益归作者所有