如何在Android Studio本地测试Jetpack Navigation 2.3.0的Dynamic Feature delivery?
当然可以!完全不用每次都折腾Play Console内部应用共享,我整理了几个靠谱的本地测试方案,帮你省时间:
1. 用Android Studio自带的App Bundle Explorer快速测试
这是最直观的方式,不用敲命令:
- 先编译你的App Bundle:点击顶部菜单栏
Build->Build Bundle(s)/APK(s)->Build Bundle(s) - 编译完成后,右下角会弹出提示,点击「locate」找到生成的
.aab文件 - 右键这个文件,选择「Open with」->「App Bundle Explorer」
- 在打开的面板里,你可以:
- 点击「Install modules」选择安装基础包(base)和你要测试的动态模块,直接部署到连接的设备上
- 还能模拟按需加载的场景,比如先只装基础包,然后触发导航到动态模块的目的地,看应用是否能自动下载并加载模块
2. 用ADB命令手动控制模块安装
如果你喜欢更灵活的方式,ADB命令能帮你精准测试不同场景:
- 先安装基础APK:
adb install-base <你的base.apk路径> - 单独安装某个动态模块:
adb install-split <你的动态模块apk路径> - 测试按需加载时,可以先只装基础包,然后启动应用,触发导航到动态目的地,观察应用是否能正常触发模块下载流程(注意要确保设备能访问网络,或者你已经配置了本地模块源)
3. 配置Run/Debug Configuration直接调试
如果需要日常开发时快速调试,直接配置运行选项就行:
- 打开「Run/Debug Configurations」(顶部工具栏的下拉框里选「Edit Configurations...」)
- 选择你的主App模块,在「General」标签里,勾选「Deploy as app bundle」
- 往下找到「Installation options」,选择「Install selected modules」,然后勾选base包和你要测试的动态模块
- 点击「Apply」后,直接点击运行按钮,Android Studio会自动把选中的模块部署到设备上,还能断点调试动态模块里的代码
几个注意事项
- 测试设备需要是Android 8.0(API 26)及以上,因为动态交付是从这个版本开始支持的
- 确保你的项目已经正确配置了Dynamic Feature模块,Navigation的动态目的地配置无误(比如用
NavHostFragment.create(R.navigation.nav_graph)来加载包含动态目的地的导航图) - 如果要测试离线的按需加载,你需要在gradle里配置
onDemand属性,并确保模块已经提前安装到设备上
内容的提问来源于stack exchange,提问作者AK Ali
相关产品推荐
相关产品推荐

