返回

针对Android应用的增量更新之拆分文件(Windows)-Part 1

Android

说到更新软件(apk),最简单的就是检查是否有新版本,有就下载新版本,然后安装就可以了,这可以说是刚学编程的攻城狮都会的。

但是随着现在的apk体积越来越大,当用户量多了时,流量成本还是相当可观的,有时新版本只是改了一个文件,然后客户端也需要下载完整的apk来安装,对用户来说也是很抓狂。

为了解决这个问题,我们就可以采用增量更新 策略。

所谓的增量更新,就是通过比较新旧版本文件之间的差异,只下载差异的部分,然后再进行安装。

目前主流的Android应用增量更新方案主要有:

  1. dex分包 :将apk中的dex文件拆分成多个小的dex文件,这样可以减少dex文件的体积,从而降低下载成本。
  2. odex分包 :将apk中的odex文件拆分成多个小的odex文件,这样可以减少odex文件的体积,从而降低下载成本。
  3. java资源分包 :将apk中的java资源文件拆分成多个小的资源文件,这样可以减少java资源文件的体积,从而降低下载成本。

在Android Studio中,我们可以通过使用AAPT2d8 工具来实现dex分包和odex分包。

Java资源分包可以通过使用Android资源反编译工具dexdump 工具来实现。

本系列文章将针对上述三种增量更新方案进行详细的介绍,希望对大家有所帮助。

Android应用增量更新之拆分文件(Windows)-Part 1

1. 前言

在上一篇文章中,我们已经介绍了Android应用增量更新的基本概念和原理。

在本文中,我们将开始介绍如何通过使用Android Studio来实现Android应用的增量更新。

2. 环境准备

在开始之前,我们需要确保已经安装了以下软件:

  • Android Studio 3.0或更高版本
  • JDK 8或更高版本
  • Android SDK Build Tools 26.0.2或更高版本
  • Android SDK Platform-Tools 26.0.2或更高版本

3. 创建Android Studio项目

首先,我们创建一个新的Android Studio项目。

在Android Studio中,单击File > New > New Project

New Project 对话框中,选择Empty Activity 模板,然后单击Next

Configure Project 对话框中,填写项目名称和项目位置,然后单击Finish

4. 添加gradle依赖

接下来,我们需要在项目中添加gradle依赖。

在项目的build.gradle文件中,添加以下依赖:

dependencies {
    // dex分包支持
    implementation 'com.android.tools.build:gradle:3.0.0'
    // odex分包支持
    implementation 'com.google.android.gms:play-services-base:11.8.0'
    // java资源分包支持
    implementation 'com.android.tools:sdk-common:26.0.2'
}

5. 配置gradle任务

在项目的build.gradle文件中,添加以下gradle任务:

android {
    // dex分包配置
    dexOptions {
        preDexLibraries = false
        javaMaxHeapSize = "4g"
    }

    // odex分包配置
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/LICENSE.txt'
    }

    // java资源分包配置
    aaptOptions {
        cruncherEnabled = false
    }
}

6. 构建apk

最后,我们可以构建apk了。

在Android Studio中,单击Build > Build APK

构建完成后,可以在项目的build/outputs/apk目录中找到生成的apk文件。

7. 测试增量更新

接下来,我们需要测试一下增量更新是否正常工作。

首先,我们安装旧版本的apk文件。

然后,我们修改项目中的代码,并重新构建apk文件。

最后,我们安装新版本的apk文件。

如果增量更新正常工作,那么新版本的apk文件应该只下载差异的部分,而不是整个apk文件。

8. 总结

在本文中,我们介绍了如何通过使用Android Studio来实现Android应用的增量更新。

我们介绍了dex分包、odex分包和java资源分包三种增量更新方案,并详细介绍了如何配置gradle任务来实现这三种方案。

在下一篇