我使用新的Android App Bundle格式构建我的项目。通过APK文件,我可以将APK下载到我的设备上,打开它,并立即安装应用程序。aab格式),我的Nexus 5X运行Android 8.1无法打开该文件。有没有什么方法可以像apk一样方便地在设备上安装aab ?
当前回答
简短的回答:
不直接。
再答:
Android应用程序捆绑是谷歌Play Store上应用程序的默认发布格式。但Android设备需要.apk文件来安装应用程序。
Play Store或你正在安装的任何其他源将从包中提取apks,签名每个apks,然后将它们安装到特定的目标设备。
从。aab到。apk的转换是通过bundletool完成的。
你可以使用内部应用程序共享将应用程序的可调试构建上传到Play Store,并与测试人员共享。
其他回答
如果你有项目,你可以用android studio构建一个应用程序,或者直接将它推送到设备上,如果你运行调试或发布配置,设备连接并选择为目标,只要你在设备上启用开发模式adb,并在连接到你的机器时点击信任这台计算机。
但如果你想要在另一部手机上安装一款应用,你可以选择免费的在线服务,将play store链接转换为apk的直接下载。只需在设备上打开add debugging,并从终端打开adb install <path-to-apk>。
如果您有多个设备连接adb,您可以adb设备获得它们的标识符列表,adb install <path-to-apk> <device-id>也可以工作。或者,您可以根据自己的需要,利用adb在多台设备上同时做很多事情。甚至还有通过wifi进行adb的方法。
你需要从Android -sdk工具的adb来做这些事情,虽然安装了Android Studio,你会有一个本地安装,但它可能不在你的路径。然而,工作室终端可能有访问它,因为它将是你的IDE保存在首选项的sdk路径。如果没有,你可以下载一个独立的sdk,或者从它的首选项中找出哪个工作室正在使用
将adb从所述sdk的platform-tools目录中添加到您的路径(最好) 从您刚刚定位的绝对路径调用adb,并继续点击重新使用上一个命令,换出apk/设备 CD到adb目录,并将其与每个apks的完整路径一起使用(最简单)
MAC:
brew install bundletool
bundletool build-apks --bundle=app-release.aab --output=app-release.apks
bundletool install-apks --apks=app-release.apks
直接从设备上安装aab,我找不到办法。
但是有一种方法可以通过命令行安装它,使用以下文档
根据“@Albert Vila Calvo”的评论,他指出要使用HomeBrew安装捆绑工具,请使用brew install bundletool
您现在可以从aab文件中安装extract apks并将其安装到设备中
通过下一个命令提取apk文件
Java -jar bundletool-all-0.3.3.jar build-apks——bundle=bundle。艺术展——输出=应用。apk, ks = my-release-key。密钥库——ks-key-alias=别名——ks-pass=pass:密码
参数:
——bundle -> Android bundle .aab文件 ——output ->生成的apk文件的目标和文件名 ——ks ->用于生成Android Bundle的Keystore文件 ——ks-key-alias -> keystore文件的别名 ——ks-pass ->别名文件的密码(请注意密码值前的“pass”前缀)
然后你会有一个扩展名为.apks的文件 现在你需要把它安装到一个设备上
Java -jar bundletool-all-0.6.0.jar install-apks——adb=/android-sdk/platform-tools/adb——apks=app.apks
参数:
——adb -> adb文件路径 ——apks ->需要安装apks文件
无法安装应用程序包[NAME]。Aab直接到android设备,因为它是发布格式,但有办法从bundle中提取所需的apk并将其安装到您的设备,过程如下
从这里下载bundletool 在你的终端上运行这个,
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
最后一步将生成一个名为out_bundle_archive_set的文件。Apks,只需将其重命名为out_bundle_archive_set.zip并提取zip文件,跳转到文件夹out_bundle_archive_set > standalones,在那里您将看到所有Apks的列表
这里有来自android开发者的捆绑工具链接的参考
这在我的mac电脑上很管用。 你需要使用一个叫做bundletool的工具,如果还没有使用brew安装,你可以安装它
brew install bundletool
执行该命令解压apks文件并将其存储在所需的位置
bundletool build-apks --bundle=path/to/app-release.aab --output=/path/to/output/app.apks --local-testing
在连接的Android设备上安装
bundletool install-apks --apks=/path/to/output/app.apks
我已经在这里的gist中记录了完整的命令和输出https://gist.github.com/maheshmnj/6f5debbfae2b8183d94ca789d081f026
推荐文章
- 何时在Android中使用RxJava,何时使用Android架构组件中的LiveData ?
- 如何在Android项目中使用ThreeTenABP
- 指定的子节点已经有一个父节点。你必须先在子对象的父对象上调用removeView() (Android)
- 我的Android设备没有出现在adb设备列表中
- 在没有安装apk的情况下获取Android .apk文件的VersionName或VersionCode
- Fragment onResume() & onPause()不会在backstack上被调用
- 如何设置基线对齐为假提高性能在线性布局?
- 如何获得当前屏幕方向?
- 如何在Android中渲染PDF文件
- 我如何解决错误“minCompileSdk(31)指定在一个依赖的AAR元数据”在本机Java或Kotlin?
- 如何改变TextInputLayout的浮动标签颜色
- Android工作室如何运行gradle同步手动?
- 如何以编程方式在我的EditText上设置焦点(并显示键盘)
- 如果在片段和活动中同时定义,则不会在片段中调用onRequestPermissionsResult
- 方法setDrawerListener已弃用