网站大量收购独家精品文档,联系QQ:2885784924

APP打包混淆apk代码.pdfVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

APP项目开发完成之后,当测试人员测试了,没有Bug了,一般情况下,公司会有一些

技术人员负责发布、推广APP产品。这是一般正规的大公司会有专门的市场推广部门,技术

维护部门,对APP进行加密混淆打包,如:使用Ant加密,还有使用第三方的加密方式如爱

加密等。想必APP产品为什么需要加密混淆,做为开发人员、老板都明白其中的隐含之处。

然而,还有一种方式可以打包混淆APP,那就是android通过eclipse混淆代码打包+

proguard方式。具体的步骤如下:

一、android应用程序的混淆打包

1.在工程文件perties中加入下

proguard.config=proguard.cfg,如下所示:

target=android-8

proguard.config=proguard.cfg

Eclipse会通过此配置在工程目录生成proguard.cfg文件

2.生成keystore(如已有可直接利用)

按照下面的命令行在D:\ProgramFiles\Java\jdk1.6.0_07\bin目录下,

输入keytool-genkey-aliasandroid.keystore-keyalgRSA-validity100000-keystore

android.keystore

参数意义:-validity主要是证书的有效期,写100000天;空格,退格键都

算密码。

命令执行后会在D:\ProgramFiles\Java\jdk1.6.0_07\bin目录下生成

android.keystore文件。

3.在Eclipce的操作

File-Export-ExportAndroidApplication-Selectproject-Using

theexistingkeystore,andinputpassword-selectthedestinationAPKfile

经过混淆后的源代码,原先的类名和方法名会被类似a,b,c。。。的字符所替

换,混淆的原理其实也就是类名和方法名的映射。

proguard自己考一个就行

二、proguard原理

Java代码编译成二进制class文件,这个class文件也可以反编译成源代码,除了注释

外,原来的code基

本都可以看到。为了防止重要code被泄露,我们往往需要混淆(Obfuscationcode,也

就是把方法,字段,包和

类这些java元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想

弄懂代码的架构却很难。

proguard就是这样的混淆工具,它可以分析一组class的结构,根据用户的配置,然后

把这些class文件的可以混

淆java元素名混淆掉。在分析class的同时,他还有其他两个功能,删除无效代码

(Shrinking收缩),和代码进

行优化(OptimizationOptions)。

缺省情况下,proguard会混淆所有代码,但是下面几种情况是不能改变java元素的名称,

否则就会这样就

会导致程序出错。

一,我们用到反射的地方。

二,我们代码依赖于系统的接口,比如被系统代码调用的回调方法,这种情况最复杂。

三,是我们的java元素名称是在配置文件中配置好的。

所以使用proguard时,我们需要有个配置文件告诉proguard那些java元素是不能混淆的。

三、proguard配置

1、最常用的配置选项

-dontwarn缺省proguard会检查每一个引用是否正确,但是第三方库里面往往有些不会用

到的类,没有正确引用。如果不配置的话,系统就会报错。

-keep指定的类和类成员被保留作为入口。

-keepclassmembers指定的类成员被保留。

-keepclasseswithmembers指定的类和类成员被保留,假如指定的类成员存在的话。

2、proguard问题和风险

代码混淆后虽然有混淆优化的好处,但是它往往也会带来如下的几点问题

1,混淆错误,用到第三方库的时候,必须告诉proguard不要检查,否则proguard会报

错。

2,运行错误,当code不能混淆的时候,我们必须要正

您可能关注的文档

文档评论(0)

明赢德高 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档