Android资源混淆 + 混淆忽略 .so库

安装包立减1M--微信Android资源混淆打包工具
http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd

AndResGuard
https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md

美团Android资源混淆保护实践
http://tech.meituan.com/mt-android-resource-obfuscation.html


AndResGuard资源混淆用法
http://www.qingpingshan.com/rjbc/az/171398.html

 
关于AndResGuard

AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。

AndResGuard不涉及编译过程,只需输入一个apk(无论签名与否,debug版,release版均可,在处理过程中会直接将原签名删除),可得到一个实现资源混淆后的apk(若在配置文件中输入签名信息,可自动重签名并对齐,得到可直接发布的apk)以及对应资源ID的mapping文件。

项目地址: https://github.com/shwenzhang/AndResGuard

Gradle集成
  1. Project/build.gradle
    buildscript {    
        repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.2' classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.1.14' } }
  2. Module/build.gradle
    apply plugin: 'com.android.application' apply plugin: 'AndResGuard' android { ... } dependencies { ... } andResGuard { // mappingFile = file("./resource_mapping.txt")  mappingFile = null use7zip = true useSign = true // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字  keepRoot = false whiteList = [ // for your icon  "R.drawable.icon" ] compressFilePattern = [ "*.png", "*.jpg", "*.jpeg", "resources.arsc" ] sevenzip { artifact = 'com.tencent.mm:SevenZip:1.1.14' //path = "/usr/local/bin/7za" --- Linux //path = "D:\7za\7za.exe" --- Windows } }
如何使用

用法1:

用法2:

在Android Gradle Terminal中

  1. Windows
    gradlew.bat resguardRelsese
  2. OS X or Linux
    ./gradlew reguardRelease
注意问题
  1. mappingFile用于增量更新,保持本次混淆与上次混淆结果一致;
  2. uss7zip为true时,useSign必须为true;
  3. useSign为true时,需要配置signConfig;
  4. whiteList添加在代码内部需要动态获取的资源id;
  5. sevenzip可使用artifacr或path,path指本地安装的7za(7zip命令行工具)。

 


 

Android studio 混淆打包时如何忽略依赖库中的第三方.so文件
http://blog.youkuaiyun.com/u011907407/article/details/55510379


 

在app项目中直接忽略library中的.so文件

在app的proguard-rules.pro忽略依赖库中的文件写法如下:
-libraryjars ../XXX(此处为library名称)/src/main/jniLibs/armeabi/xxxxx.so
-libraryjars ../XXX(此处为library名称)/src/main/jniLibs/armeabi-v7a/xxxxx.so
-libraryjars ../XXX(此处为library名称)/src/main/jniLibs/x86/xxxxx.so


同理依赖库中jar包在app 中忽略混淆的写法
-libraryjars ../XXX(此处为library名称)/libs/xxx.jar
-libraryjars ../XXX(此处为library名称)/libs/xxx.jar


最后温馨提醒:
shrinkResources true
(该属性为打包时是否自动删除无用的资源与代码,慎用!!据说有人因为这个属性导致app崩溃..此处不详细讨论..)

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值