Android开发之混淆高级教程01
大家好,我是云百科的客服小柏,我来为大家解答以上问题。Android开发之混淆高级教程01很多人还不知道,现在让我们一起来看看吧!
解答:
1、 我们知道,Java将代码(。java)转换成字节码(。类)。相比源代码,字节码更加简洁,但是由于它只是将源代码编译成字节码,生成的字节码中会包含一些未使用的代码,特别是当你的项目包含一些第三方类库时,未使用的代码会更多。压缩阶段会对生成的字节码进行分析,然后在保证项目正常运行的情况下,去掉一些未被引用的类、字段和方法,这就是所谓的压缩阶段。
2、 要验证未引用的类、字段和方法是否真的被删除,创建一个模块,它包含两个类AdvancedCourseActivity和Subject,其中Subject未被引用。对混淆项进行签名打包,然后反编译生成的apk文件,检查主体字节码文件是否还存在,如下图所示:
3、 反编译的项目结构,如下所示:
4、 从上图可以发现,主体字节码文件已经被移除。接下来,用下面的代码修改Subject类:
5、 然后参考AdvancedCourseActivity中Subject提供的构造方法和get方法。没有引用的set方法会被移除吗?引用的代码如下:
6、 反编译的项目结构,如下所示:
7、 根据上面的分析,混淆代码后,引用的字段:courseName,creditHour,引用的方法:getCourseName(),getCreditHour(),以及构造方法都保留了。我们会在以后的困惑中巧妙的使用压缩规则,有点类似AndroidStudio的App链接助手功能。
8、 然后,打开混淆功能,默认执行压缩过程(即执行字节码分析),然后去掉无用的类、字段和方法。如果我们不想执行代码压缩,我们应该怎么做?
9、 这时候你需要学习一些压缩阶段的规则(除此之外还有优化规则和混淆规则)。压缩规则的选项包括:
10、 -唐斯林克
11、 打开混淆,默认压缩所有类。您可以通过上述关键字关闭压缩过程,并在proguard-rules.pro文件中添加以下规则:
12、 反编译的项目结构,如下所示:
13、 -printusage[文件名]
14、 将压缩阶段未引用的所有类的信息打印到指定文件。如果在proguard-rules.pro中没有指定这个选项,默认的输出路径是:
15、 在上面的例子中,主语不是指set方法。在usage.txt文件中,您可以找到以下信息:
16、 角色:
17、 可以用来检查签名包的apk,在压缩阶段去掉了哪些代码,是否符合自己的要求。
18、 -whyareyoukeepingclass_specification
19、 打印出压缩阶段保留类和内部成员的详细描述。class_specification指定了我们需要知道的类名。可以在Gradle控制台中查看打印的详细描述。例如,如果我们想知道为什么保留主题类信息,请在proguard-rules.pro文件中添加以下规则:
20、 运行当前演示,gradle控制台打印出以下信息:
21、 前面我们说过usage.txt文件记录了未引用的类信息,可以反过来。Subject类引用setCourseName()和setCreditHour()。此外,还引用了get方法和构造方法。从上图可以看出,调用了AdvancedCourseActivity的voidonCreate()。
22、 到目前为止,我们已经完成了压缩阶段的研究。
本文到此讲解完毕了,希望对大家有帮助。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
最近收到一位患者的留言,说自己这几天总感觉肛门有下坠胀感,特别难受,上网一查,好多信息都指向癌症,这可...浏览全文>>
-
腹痛、腹泻总反复!可能是小肠、大肠在抗议。基于症状特征区分小肠疾病与大肠疾病的具体差异分析:一、核心症状...浏览全文>>
-
近日,中国中医药信息学会肛肠分会·肿瘤分会·治未病分会·河北名医学会肛肠分会·盆底与便秘分会·河北省中...浏览全文>>
-
安徽蚌埠的长安启源E07作为一款备受关注的新能源车型,其价格和配置一直是消费者热议的话题。如果你正考虑入手...浏览全文>>
-
近年来,随着新能源汽车市场的快速发展,插电式混合动力车型逐渐成为消费者关注的焦点。生活家PHEV作为一款备...浏览全文>>
-
在2025款生活家PHEV车型正式上市之前,提前了解相关费用明细对于购车者来说至关重要。这款插电式混合动力车型...浏览全文>>
-
大众途昂作为一款中大型SUV,凭借其宽敞的空间和强劲的动力配置,在市场上一直拥有不错的口碑。对于计划购买20...浏览全文>>
-
阜阳地区的长安启源Q05 2025款车型凭借其时尚的外观设计和丰富的配置,吸引了众多消费者的关注。这款车型作为...浏览全文>>
-
阜阳揽巡作为一款备受关注的中型SUV,凭借其豪华的配置和超值的价格吸引了众多消费者的目光。这款车不仅在外观...浏览全文>>
-
淮南长安启源A07自上市以来便凭借其卓越的性能和亲民的价格赢得了众多消费者的青睐。作为2025款的新车型,它在...浏览全文>>