文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
7.4 其他注意事项
接下来介绍一些使用ProGuard过程中需要注意的事项。
1.如何确保混淆不会对项目产生影响
如果一个Android项目从一开始就进行了混淆工作,那么:
·测试工作要基于混淆包进行,才能尽早发现问题。
·每天开发团队的冒烟测试,也要基于混淆包进行。
·发版前,要额外测试正式版的推送、分享、打点、二维码扫描等功能。
2.打包时忽略警告
当在导出时,发现很多could not reference class之类的warning信息,如果确认App在运行中和那些引用没有什么关系的话,可以添加-dontwarn标签,就不会再提示这些warning信息了。如:-dontwarn org.apache.**。
不要使用-ignorewarnings语句,它会忽略所有警告,这会有很大的潜在风险。
3.对于自定义类库的混淆处理
回顾第1章,我们编写了一个AndroidLib类库,我们的App应用要引用这个类库。我们努力在做的是,把业务无关的逻辑抽离到AndroidLib类库中,而在App应用中只关心业务逻辑。
我们需要对Lib也进行混淆,然后在主项目的混淆文件中保留AndroidLib中的类和类的成员。
4.使用annotation避免混淆
另一种避免类或者属性被混淆的方式是,使用annotation。在需要保留的类中加上如下语法:
@Keep @KeepPublicGettersSetters public class Bean { public boolean booleanProperty; public int intProperty; public String stringProperty; public boolean isBooleanProperty() { return booleanProperty; } }
这种使用方式多出现在fastJSON的使用上。
5.在项目中指定混淆文件
说到最后,发现没有介绍如何在项目中指定混淆文件。
在项目中有一个project.properties文件,在其中写这么一句话,就可以确保每次手动打包生成的apk是混淆过的:
proguard.config = proguard.cfg
其中,proguard.cfg是混淆文件的名称。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论