首页
学习
活动
专区
圈层
工具
发布

浅谈Android App Bundle

App Bundles 将一个 apk 拆分成多个 apk,我们的 apk 一般会被拆分为如下几个部分: Base Apk:首次安装的apk,公共代码和资源,所以其他的模块都基于Base Apk; Configuration...APKs:native libraries 和适配当前手机屏幕分辨率的资源; Dynamic feature APKs:不需要在首次安装就加载的模块。...bundletool 本地命令行工具 2、将 App Bundle 生成 一组apk文件 //app bundle 为应用支持的所有设备配置生成一组 APK java -jar bundletool...3、 将apks文件安装到手机(bundletool 可以将其中适当的 APK 组合部署到已连接的设备) bundletool install-apks --apks=/MyApp/my_app.apks...4.4(API 级别 20)或更低版本,bundletool 会查找兼容的多 APK 并将其部署到您的设备 其它 bundletool 的使用可参考: 官方文档介绍 参考文档: Android App

2.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    谷歌弃用APK包格式,转而使用AAB格式

    但在这种情况下,应用开发者便承受太多:不仅要开发应用,还要管理许多 APK 以支持大量设备。 因此为了省时省力,大多数开发者都会选择构建一个通用 APK,即包含语言包、代码等在内的所有资源。...不论用户身处何处、使用何种规格的设备,只需下载这个通用 APK 即可,这就造成APK包大的问题。...其次,AAB 的 Play Feature Delivery 功能可自定义将哪些功能模块交付给哪个设备,支持安装时交付、按条件交付和按需交付等三种模式。...为此,谷歌已经开发了一个名为 bundletool 的开源工具,允许开发人员从 AAB 包中创建 APK,因此想在第三方商店中发布 Android 应用程序的开发人员可以手动导出其应用的 APK 版本。...转化的命名如下: abb转apk java -jar bundletool-all-1.7.0.jar build-apks --bundle=app.aab --output=finalapp.apks

    3K40

    小知识 | 善用Mac自动化,少掉头发多喝茶

    build-apks --bundle=" & thePath & " --output=" & apksPath # 暂停10s是因为我不知道如何等待上个命令执行完,找不到相关,只能硬性暂停...delay (10) do script "bundletool install-apks --apks=" & apksPath activate end tell end run 更多场景...… 配置教程 以双击安装Apk为例子: command+空格 搜索自动操作,进入后选应用程序,然后选取。...; ok,即可实现双击安装apk 到设备。...说这些主要就是想,在今后乃至未来,这种工具化的小组件会越来越多,而这些小组件离 普通用户 也会越来越近,而善用这些小组件,可以为我们省下不少时间,作为开发者,我们完全参与其中,写一些常见的组件,或者在一定程度上

    1.7K10

    Android App瘦身新姿势——Android App Bundle

    App Bundles将一个apk拆分成多个apk,我们的apk一般会被拆分为如下几个部分: Base Apk:首次安装的apk,公共代码和资源,所以其他的模块都基于Base Apk; Configuration...APKs:native libraries 和适配当前手机屏幕分辨率的资源; Dynamic feature APKs:不需要在首次安装就加载的模块。...工具来测试你的.aab文件 下载地址:https://github.com/google/bundletool 解压出来就是一个jar包,以bundletool-all-0.6.0.jar为例子 bundletool-all...出来就是如下的内容: 从打包出来的东西,更印证了我们前面所说的原理 5.app的签名上传google play 6.将你的包上传到google console 兼容性问题 Api 模块化...Enable on-demand: 是否启用按需下载,如果不启用,会直接打进Apk Fusing:熔断操作,是否安装到不支持按需下载的设备中 Module title: 模块标题 对于动态组件的一些使用场景

    1.8K10

    如何获得更小的应用文件尺寸?来了解下 Android App Bundle

    方便强大的 bundletool Bundletool 是一个用于处理 Android App Bundle 的命令行工具。...使用 bundletool,您可以构建 Android App Bundle,提取连接的设备配置,生成 APK Set 文件 (.apks),从 APK Set 文件中提取或安装 APK,以及验证应用束...Bundletool 的 GitHub 地址: github.com/google/bund… 使用 bundletool ?...使用 bundletool help 获取有关命令的详细信息,例如标识符和其他选项。 在以下示例中,我们将找到已连接设备的配置,构建 APK,并为连接的设备安装 APK。 ?...动态功能模块 动态功能模块让您可以将特定的功能移动到单独的模块中。我们使用了动态交付技术,根据需要向用户提供这些功能。动态功能模块需要您的仔细考量,以及付出一些工作量进行实际的拆分。

    2.9K20

    在功能模块中使用导航 | MAD Skills

    现在我将使用 bundletool 来测试功能模块,您也可以使用 Play 控制台来测试功能模块。...如果您想了解更多关于如何使用 bundletool 和 Play 控制台来测试功能模块安装的内容,请查看这个 视频。 我也想测试当模块无法安装时会发生什么。...这时当我再次运行应用并导航到 coffeeList 页面时,将会显示一条通用错误信息。 △ 通用错误信息 至此,功能模块的设置已经完成,是时候打磨用户体验了。...当功能模块处于下载过程时,向用户显示自定义反馈信息或者显示一条更有意义的报错信息而不是通用的信息会不会更好?...△ 自定义 progressFragment 类似地,我可以使用 bundletool 测试应用以查看当咖啡模块正在下载时,进度条会如何工作。 小结 感谢大家!

    94810

    JS通用模块写法

    模块化这个问题并非一开始就存在,WWW 刚刚问世的时候,html,JavaScript,CSS(JS 和 CSS 都是后来在网景被引进浏览器的)都是极其简单的存在,不需要模块化。...,在最新版的 ECMA-262(ES6)文档中强调 JavaScript 是通用编程语言而不是脚本语言。...脚本语言,比如 shell 并不是用来完成复杂功能的,只是用来做一些自动化控制,是不需要模块化的。而用于构建复杂系统通用编程语言(比如 Java)一般都有模块的实现。...require 用于引入一个模块 exports 对外暴露模块的接口,可以是任何类型 module 是这个模块本身的对象 用 require 引入时获取的是这个模块对外暴露的接口(exports) Node.js...,所以两者可以通用。

    2.8K10
    领券