欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android开发之——打包发布及其优化

程序员文章站 2022-07-12 19:17:05
...

前言

项目开发中,不可避免会使用到Google官方类库或第三方类库,如何管理维护使用起来更加有效?打包发布时,如何混淆,规则是什么?混淆后的包体积更小、不会被**;如何打渠道包等等;本文将通过实例讲解,为你一一解答。

打包实战

类库引入

类库引用说明

在使用类库引用时,可能会用到一下几个关键字:

  1. provider
  2. compile
  3. implementation
  4. api
  5. testImplementation
  6. androidTestImplementation
  7. testcompile
  8. androidtestcompile

一般类库引用

Android开发之——打包发布及其优化

优化类库引用

  1. 使用config.gradle文件配置第三方和本地库
    Android开发之——打包发布及其优化
  2. 在项目根目录的build.gradle中导入
    Android开发之——打包发布及其优化
  3. 在app目录下的build.gradle中定义并使用
    Android开发之——打包发布及其优化
    Android开发之——打包发布及其优化

依赖冲突

引用第三方提供的依赖和类库,如果含有相同依赖的类库被我们引用时,而他们的版本又不相同,就有可能会导致一系列问题和异常。关于依赖冲突的问题,之前已经讲过,这里简要阐述。

问题

Android开发之——打包发布及其优化

解决方案

Android开发之——打包发布及其优化

混淆

如何开启混淆

release
    {
        minifyEnabled true//是否启动混淆 ture:打开   false:关闭
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

混淆中常用关键字

  1. dontwarn
  2. keep
  3. keepnames
  4. keepclassmembers
  5. keepclassmembernames

混淆后文件

  1. dump.txt
  2. mapping.txt
  3. seeds.txt
  4. usage.txt
  5. resources.txt

混淆(第三方类库)

本节主要讲述android-proguard-snippets的使用

  1. 将需要混淆的类库文件建立一个对应的.pro文件
    Android开发之——打包发布及其优化

  2. 使用如下方法引入需要混淆的类库
    Android开发之——打包发布及其优化

    签名

  3. 生成签名文件

    依次执行:build->Generate Signed APK->填写签名信息->生成.jks签名文件

  4. 要输入apk文件,必须有签名文件;按照如图所示,配置签名信息
    Android开发之——打包发布及其优化
  5. 在app目录下的build.gradle中配置签名信息
    Android开发之——打包发布及其优化
  6. 签名信息配置在gradle.properties中
    Android开发之——打包发布及其优化
  7. 签名信息存储在config.gradle中
    Android开发之——打包发布及其优化

多渠道包

  1. 配置productFlavors

    productFlavors
    {

    xiaomi {}    
    tencent { //腾讯}   
    qihu360 { //360}   
    

    }
    productFlavors.all
    {

    flavor -> flavor.manifestPlaceholders = [CHANNEL_VALUE: name]    
    

    }

  2. AndroidManifest.xml 配置CHANNEL_VALUE

  3. apk 生成规则
    Android开发之——打包发布及其优化
  4. mapping.xml生成规则(如umeng统计时会用到)
    Android开发之——打包发布及其优化
  5. 生成apk文件
    Android开发之——打包发布及其优化

打包优化

主要介绍AndResGuard的使用,AndResGuard是腾讯开源的资源混淆工具。

  1. 在项目根目录下的build.gradle中引用

    classpath ‘com.tencent.mm:AndResGuard-gradle-plugin:1.2.14’

    Android开发之——打包发布及其优化

  2. 将优化混淆规则放到and_res_guard.gradle文件夹中

    Android开发之——打包发布及其优化

  3. 在app的build.gradle中引用and_res_guard.gradle文件

    Android开发之——打包发布及其优化

  4. 在gadle构建任务下可以看到新生成的task任务

    Android开发之——打包发布及其优化

  5. 可以看到优化后的apk文件

    Android开发之——打包发布及其优化

  6. 使用反编译工具解压后可以看到

    Android开发之——打包发布及其优化

 

相关标签: 打包