You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过ADB/CLI批量安装Android APKM文件?

解决方案

一、正确传递APK列表给adb install-multiple

你尝试的第一个命令在多数shell环境(Linux/macOS的bash/zsh、Windows PowerShell)下是可行的,但如果遇到文件名含空格或shell未正确通配展开的情况,可按以下方式处理:

Linux/macOS 环境

  • 无特殊字符的文件名:
    adb -s localhost:5555 install-multiple --user 0 *.apk
    
  • 含空格/特殊字符的文件名:
    find . -maxdepth 1 -type f -name "*.apk" -print0 | xargs -0 adb -s localhost:5555 install-multiple --user 0
    

Windows 环境

  • CMD 命令行:
    adb -s localhost:5555 install-multiple --user 0 *.apk
    
  • PowerShell:
    adb -s localhost:5555 install-multiple --user 0 (Get-ChildItem *.apk).FullName
    

注意:你用ls *.apk | adb ...的方式无效,因为adb install-multiple接收的是命令行参数而非标准输入,管道传递的内容无法被识别为安装文件。

二、直接通过CLI安装APKM文件

ADB本身不支持直接识别.apkm后缀的文件,也无法直接安装这类Split APK压缩包,但可以通过以下两种方式实现批量安装:

方式1:使用官方工具bundletool

bundletool是Google官方的Android App Bundle处理工具,支持直接安装APKM格式文件:

  1. 确保本地已安装Java环境(bundletool依赖Java)
  2. 执行以下命令安装单个APKM:
    bundletool install-apks --apks=app.apkm --device-id=localhost:5555
    
  3. 批量安装当前目录所有APKM:
    for apkm in *.apkm; do
      bundletool install-apks --apks="$apkm" --device-id=localhost:5555
    done
    

方式2:自动解压+安装脚本

如果不想额外安装工具,可通过脚本自动临时解压APKM、安装后清理文件:

Linux/macOS 脚本:

for apkm_file in *.apkm; do
  # 创建临时目录
  temp_dir=$(mktemp -d)
  # 解压APKM到临时目录
  unzip "$apkm_file" -d "$temp_dir"
  # 安装所有解压出的APK
  adb -s localhost:5555 install-multiple --user 0 "$temp_dir"/*.apk
  # 删除临时目录
  rm -rf "$temp_dir"
done

Windows PowerShell 脚本:

foreach ($apkmFile in Get-ChildItem *.apkm) {
  $tempDir = New-TemporaryFile | Remove-Item -Force | New-Item -ItemType Directory
  Expand-Archive -Path $apkmFile.FullName -DestinationPath $tempDir.FullName
  adb -s localhost:5555 install-multiple --user 0 (Get-ChildItem $tempDir.FullName *.apk).FullName
  Remove-Item $tempDir.FullName -Recurse -Force
}

内容的提问来源于stack exchange,提问作者P1000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:02:21