kaixuan1115 / notes

笔记收录
6 stars 0 forks source link

Split APK简介和手动安装方法 #31

Closed xiaokaixuan closed 4 years ago

xiaokaixuan commented 4 years ago

简介

Split APK是Google为解决65536上限,以及APK安装包越来越大等问题,在Android L中引入的机制。 Split APK可以将一个庞大的APK,按屏幕密度,ABI等形式拆分成多个独立的APK,在应用程序更新时,不必下载整个APK,只需单独下载某个模块即可安装更新。 Split APK将原来一个APK中多个模块共享同一份资源的模型分离成多个APK使用各自的资源,并且可以继承Base APK中的资源,多个APK有相同的data,cache目录,多个dex文件,相同的进程,在Settings.apk中只显示一个APK,并且使用相同的包名。

安装

命令安装

adb shell pm install-create # create a session (1237281889)
# Success:created install session [1237281889]
adb shell pm install-write session (1237281889) baseapk (base.apk) apk_path (/data/local/tmp/FeatureSplitBase.apk)
adb shell pm install-write session (1237281889) splitapk (base1.apk) apk_path (/data/local/tmp/FeatureSplit1.apk)
adb shell pm install-commit session (1237281889)

模块安装 Base APK必须已经安装到手机中

adb shell pm install-create -r –p installed_packagename (com.android.test.split.feature)
adb shell pm install-write session splitapk (base1.apk) apk_path (/data/local/tmp/FeatureSplit1.apk)
adb shell pm install-commit session

命令示例

adb shell pm install-create
# Success:created install session [1237281889]
adb shell pm install-write  1237281889 base.apk /data/local/tmp/FeatureSplitBase.apk
adb shell pm install-write  1237281889 base1.apk /data/local/tmp/FeatureSplit1.apk
adb shell pm install-write  1237281889 base2.apk /data/local/tmp/FeatureSplit2.apk
adb shell pm install-commit 1237281889
gMan1990 commented 3 years ago

Android dynamic deployment one: Google native Split APK analysis