关于Android studio混淆

本文介绍了如何减小APK大小,重点关注Android Studio的混淆配置。从删除重复资源、指定语言支持、处理assets目录下的资源,到启用混淆(minifyEnabled true)和资源压缩(shrinkResources true),并提供修改build.gradle和proguard-rules.pro文件的详细步骤。同时,文章总结了混淆原则和技巧,包括反射类、JNI方法、Android组件、Parcelable子类、JSON对象类、第三方库和WebView接口的处理,以及如何在debug模式下调试混淆问题。
摘要由CSDN通过智能技术生成

一、概述

这几天要打包APK给测试,但是一打包发现APK包有23M,经理那边自然过不了,所以就开始琢磨怎么减小APK的大小。分析原因:

1. 由于UI是按照模块给的切图,所以部分模块的切图可能存在重复,不过这种情况不多,所以对apk的大小影响不大。如果想通过减少图片来减小apk的大小,那么建议只做一套切图,单独适应xhdpi的。

2. 如果不需要做国际化,建议指定只支持中文的

                defaultConfig {  
                    resConfigs "zh"  
                }

3. 我们的app中部分用到了h5,而h5的代码是存放到assets目录下,这个目录下的文件打包的时候是不会被压缩的,所以这个目录下的文件有多大,打包之后apk就会增加多大。目前关于h5的资源代码等还不知道怎么压缩处理,各位大神有什么好的方法请教一下。

4. 这个就是重点了,android studio默认build.gradle里面配置的 minifyEnable false,这表示是不混淆,起不到防反编译的作用。


二、配置 build.gradle 文件

1. 修改配置:

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    debug{
        minifyEnabled false
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
其中release{}指的是发布版本,也就是通过android studio工具栏中Build生成的apk;debug{}指的是调试版本,也就是通过adb连接设备直接运行生成的apk。minifyEnabled表示是否启动代码混淆,shrinkResources表示是否删除代码中无用的resource文件。

注意:想要让 shrinkResources true 生效,就必须设置 minityEnabled true。否则就算shrinkResources true,而minifyEnabled fale,那么还是不会起到作用。

proguardFiles指定的是混淆的配置文件。


三、修改混淆配置文件 proguard-rules.pro

-optimizationpasses 5          # 指定代码的压缩级别0-7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值