知方号

知方号

ADB命令安装使用APK

ADB命令安装使用APK

APK-Splits是谷歌为Android推出的应用分包技术,通过Play商店分发应用时,可根据不同的机型和CPU架构下载不同的资源文件,避免了把所有资源文件封装在一个APK包内,起到节省存储空间的作用。

1.如何判断应用程序是否使用了APK-Splits技术?

使用了APK-Splits技术的应用,一般会有两个或以上的APK文件,分别是base.apk和split_arm64v8a.xxhdpi.apk之类的,通常这些文件会放在一个压缩包内,其中base.apk是主程序,可以直接安装,但装好后打开APP会出现闪退的情况,这是因为缺少了split_arm64v8a.xxhdpi.apk这个资源文件,导致APP无法运行。

2.如何安装使用了APK-Splits技术的应用程序?

一般来说,国内大多数应用都是一个APK安装包封装了不同CPU架构和分辨率的资源文件,这种类型的应用程序都可以直接安装。需要使用ADB安装的APP多数是来自谷歌商店的游戏,但目前国内是无法访问谷歌商店的,所以有些人分享出的游戏安装包,安装之后无法正常运行。

下面通过Apple Music的安装来举例:首先电脑上安装 adb 工具,一般情况下安装手机自带的驱动会顺带安装,然后手机上打开开发者模式,开启USB调试和USB安装功能,具体开启方法可百度,不同手机的打开方法稍有不同。

开启了调试模式后,用数据线连接手机,会询问是否允许调试,选择是。接下来电脑使用 cmd 命令行或者 PowerShell运行 adb 命令即可。PS:Win+R 输入 cmd 点击运行可以开启cmd命令行,(Windows 10下面) Win+X 打开 PowerShell

输入以下命令,可以查看手机是否连接成功:(编写文章时使用的是Linux系统,所以演示的命令路径和教程略有不同)

adb devices

出现设备ID和device说明 adb 已经成功连接了手机,接下来可以进行安装。

首先把压缩包解压,例如我解压到桌面,则路径为C:/Users/[username]/Desktop/apple_music其中[username]是用户名,请替换成自己的用户名,对桌面的apple_music文件夹右键属性可以看到具体路径。

打开apple_music文件夹,发现有base.apk,split_config.arm64_v8a.apk,split_config.xxhdpi.apk三个APK文件。

接下来把这3个文件推送到手机临时目录里,命令如下:PS: 请把 “/path/to/apk” 替换成安装包的实际路径,”/data/local/tmp”为安卓手机的临时文件目录,无需改动。

adb push /path/to/apk/base.apk /data/local/tmpadb push /path/to/apk/split_config.arm64_v8a.apk /data/local/tmpadb push /path/to/apk/split_config.xxhdpi.apk /data/local/tmp

执行完这三条命令,安装所需的apk资源已经全部放置到手机内部,然后输入以下命令进入安卓手机的Shell命令行模式:

adb shell方法一:适用于手机上未安装BASE.APK的情况#创建一个安装进程pm install-create#此时会返回一个结果Success: created install session [1254958325]

把session id后面方括号里的数字记录下来,后面的命令相关的 session ID 都替换成这个。

#写入base.apkpm install-write 1254958325 base.apk /data/local/tmp/base.apk#写入split_config.arm64_v8a.apkpm install-write 1254958325 split_config.arm64_v8a.apk /data/local/tmp/split_config.arm64_v8a.apk#写入split_config.xxhdpi.apkpm install-write 1254958325 split_config.xxhdpi.apk /data/local/tmp/split_config.xxhdpi.apk#完成写入所有APK后,执行合并安装pm install-commit 1254958325

执行完合并安装命令后会返回Success,说明应用已经安装成功。

方法二:适用于手机上已经安装了BASE.APK,如桌面上已经有APPLE MUSIC但打开闪退的情况

PS:使用该方法需要知道应用的包名,如果不知道建议删除后再使用方法一进行安装教程示例的 Apple Music 包名为com.apple.android.music因为已经安装了主程序的包,所以只要补齐了资源包程序就能运行,大体和方法一致,只是创建安装进程时的命令加入的包名参数。

#创建该应用包名的安装进程pm install-create -r -p com.apple.android.music#此时会返回一个结果Success: created install session [529449747]#写入split_config.arm64_v8a.apkpm install-write 529449747 split_config.arm64_v8a.apk /data/local/tmp/split_config.arm64_v8a.apk#写入split_config.xxhdpi.apkpm install-write 529449747 split_config.xxhdpi.apk /data/local/tmp/split_config.xxhdpi.apk#把所有资源APK写入完成后,执行合并命令pm install-commit 529449747

执行完合并命令后会返回Success,说明应用已经安装资源文件,现在就可以使用APP了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。