Android开发之——打包发布及其优化
程序员文章站
2022-07-12 19:17:05
...
前言
项目开发中,不可避免会使用到Google官方类库或第三方类库,如何管理维护使用起来更加有效?打包发布时,如何混淆,规则是什么?混淆后的包体积更小、不会被**;如何打渠道包等等;本文将通过实例讲解,为你一一解答。
打包实战
类库引入
类库引用说明
在使用类库引用时,可能会用到一下几个关键字:
- provider
- compile
- implementation
- api
- testImplementation
- androidTestImplementation
- testcompile
- androidtestcompile
一般类库引用
优化类库引用
依赖冲突
引用第三方提供的依赖和类库,如果含有相同依赖的类库被我们引用时,而他们的版本又不相同,就有可能会导致一系列问题和异常。关于依赖冲突的问题,之前已经讲过,这里简要阐述。
问题
解决方案
混淆
如何开启混淆
release
{
minifyEnabled true//是否启动混淆 ture:打开 false:关闭
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
混淆中常用关键字
- dontwarn
- keep
- keepnames
- keepclassmembers
- keepclassmembernames
混淆后文件
- dump.txt
- mapping.txt
- seeds.txt
- usage.txt
- resources.txt
混淆(第三方类库)
本节主要讲述android-proguard-snippets的使用
-
签名
-
生成签名文件
依次执行:build->Generate Signed APK->填写签名信息->生成.jks签名文件
- 要输入apk文件,必须有签名文件;按照如图所示,配置签名信息
- 在app目录下的build.gradle中配置签名信息
- 签名信息配置在gradle.properties中
- 签名信息存储在config.gradle中
多渠道包
-
配置productFlavors
productFlavors
{xiaomi {} tencent { //腾讯} qihu360 { //360}
}
productFlavors.all
{flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
}
-
AndroidManifest.xml 配置CHANNEL_VALUE
- apk 生成规则
- mapping.xml生成规则(如umeng统计时会用到)
- 生成apk文件
打包优化
主要介绍AndResGuard的使用,AndResGuard是腾讯开源的资源混淆工具。
-
在项目根目录下的build.gradle中引用
classpath ‘com.tencent.mm:AndResGuard-gradle-plugin:1.2.14’
-
将优化混淆规则放到and_res_guard.gradle文件夹中
-
在app的build.gradle中引用and_res_guard.gradle文件
-
在gadle构建任务下可以看到新生成的task任务
-
可以看到优化后的apk文件
-
使用反编译工具解压后可以看到
上一篇: Spring Security基础内容