开发者社区> 问答> 正文

null?报错

第一步:代码混淆(注意引入的第三方jar)

 

在新版本的ADT创建项目时,混码的文件不再是proguard.cfg,而是project.properties和proguard-project.txt。

新建一个项目的时候,会自动生成project.properties和proguard-project.txt文件,无需自己新建,如果你的项目无法自动生成,那么你就要检查一下你的ADT版本了

如果需要对项目进行全局混码,只需要进行一步操作:

将project.properties的中

“#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt”的“#”去掉就可以了。

如果有一些代码不能被混淆,比如需要加入了so文件,需要调用里面的方法,那么调用JNI访问so文件的方法就不能被混码。在导出的时候,可能不会报错。但是在手机上运行的时候,需要调用so文件的时候,就会报某某方法无法找到。这个时候就需要用到proguard-project.txt。

在新版本的代码混淆,已经变得很智能,不过引入的第三方jar还是需要手动编写混淆规则

案例:引入了BaiduLBS_Android.jar,android-support-v4.jar两个包

proguard-project.txt脚本编写规则:

#工程中含有第三方jar包-libraryjars libs/android-support-v4.jar-libraryjars libs/BaiduLBS_Android.jar#项目里面包含的包也不能混淆-keep class com.baidu.** {*;}-dontwarn com.baidu.**-keep class vi.com.gdi.bgl.android.java.** {*;}-dontwarn vi.com.gdi.bgl.android.java.** -keep class android.** {*;}-dontwarn android.**

第二步:导出apk(部分第三方加密平台需要导出签名的apk)

请根据第三方加密平台的要求导出apk,带签名的apk导出速度稍慢。右击项目选择 Android Tools再根据需求导出

第三步:第三方平台加固(生成多渠道包)

现在比较流行的加密平台有:http://www.ijiami.cn

如果你的项目里面包含了百度统计、友盟统计等功能,那么肯定需要了解不同应用商店的下载量,所以生成渠道包就很重要。这些平台都可以帮助生成多个去到apk

下图是使用“爱加密”平台,项目集成了友盟统计

加固需要花费十几分钟的时候,加固完成后就能下载到不同渠道的包,但是没有签名,无法安装

第四步:apk重新签名


加固后的apk是没有签名的,没有签名的apk是无法安装到手机里面的,需要使用签名工具重新签名

可以使用adt自带的,但是过于麻烦,建议使用第三方的签名工具

比如:爱加密提供的 http://www.ijiami.cn/apply/Sign

展开
收起
爱吃鱼的程序员 2020-06-14 20:43:41 486 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    谢谢分享,加密厂商现在做的好的也没几个,坚持下来,技术好才是真的好支持赞一个@!

    引用来自“安然面对”的评论

    谢谢分享,O(∩_∩)O哈哈哈~很有用!

    可以专门整理一份android加密的资料么?

    各个加密厂商的特点,优势,劣势,风险等等...挺有用的

    引用来自“黑狗”的评论

    可以专门整理一份android加密的资料么?

    各个加密厂商的特点,优势,劣势,风险等等...挺有用的

    我想对比几家楼主推荐的爱加密要是有脚本支持就好了  DevStore里面有这个服务和评测哦~ 点击进入

    引用来自“JacarriChan”的评论

    要是有脚本支持就好了
    2020-06-14 20:43:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
How to Build a Successful Data 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载