Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

作者:hebedich 时间:2022-06-23 18:12:44 

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

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

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

Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

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

将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两个包

Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

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再根据需求导出

Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

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

现在比较流行的加密平台有:

http://www.bangcle.com

http://***

http://dev.360.cn/protect/welcome

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

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

Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

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

Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

第四步:apk重新签名

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

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

比如:爱加密提供的http://***/apply/Sign

Android实用图文教程之代码混淆、第三方平台加固加密、渠道分发

标签:Android,代码混淆,加固加密,渠道分发
0
投稿

猜你喜欢

  • 代码分析Android实现侧滑菜单

    2022-04-02 16:38:45
  • Java实现的双向匹配分词算法示例

    2023-06-23 08:29:32
  • 基于WPF实现面包屑控件的示例代码

    2021-12-19 12:34:33
  • java8 stream自定义分组求和并排序的实现

    2022-09-12 04:08:26
  • IDEA 快速返回上次查看代码的位置的方法

    2022-10-23 01:49:59
  • Android自定义view之3D正方体效果实例

    2023-02-01 05:01:34
  • java利用递归算法实现对文件夹的删除功能

    2023-07-26 06:37:02
  • 一文给你通俗易懂的讲解Java异常

    2021-12-20 14:40:56
  • C#微信公众号开发之服务器配置

    2023-03-12 15:02:50
  • java 发送带Basic Auth认证的http post请求实例代码

    2021-11-03 06:21:20
  • C#中new的几种用法详解

    2021-09-16 23:05:56
  • Android自定义Drawable实现圆形和圆角

    2022-05-07 14:59:59
  • Python和Java的语法对比分析语法简洁上python的确完美胜出

    2023-08-10 17:06:54
  • C#实现TCP连接信息统计的方法

    2022-12-04 16:31:46
  • Spring Boot基础学习之Mybatis操作中使用Redis做缓存详解

    2023-01-19 16:35:55
  • C语言连续生成多个随机数实现可限制范围

    2023-08-24 08:35:06
  • java 正则,object中两个方法的使用(详解)

    2023-09-06 19:00:55
  • Android的UI调优教程

    2021-12-16 01:46:43
  • DevExpress之ChartControl实现柱状图演示实例

    2023-05-27 08:45:15
  • java 集合工具类Collections及Comparable和Comparator排序详解

    2023-04-29 03:42:06
  • asp之家 软件编程 m.aspxhome.com