Play 核心库可让您在本地测试应用是否能够执行以下操作,而无需连接到 Play 商店:

请求并监控模块的安装。

处理安装错误。

本页介绍了如何将应用的拆分 APK 部署到测试设备,以便 Play 核心自动使用这些 APK 模拟从 Play 商店请求、下载和安装模块。

虽然您不需要对应用的逻辑进行任何更改,但需要满足以下要求:

下载并安装最新版 bundletool。您需要使用 bundletool 从 app bundle 构建一组新的可安装 APK。

确保您的应用使用的是 Play 核心 1.7.2 或更高版本。如需了解详情,请参阅在您的项目中添加 Play 核心库。

注意:Play 核心库目前不支持模块卸载或推迟安装。如需测试此功能,不妨考虑使用内部应用分享。

构建一组 APK

您应构建应用的拆分 APK(如果您尚未执行此操作),具体操作步骤如下:

使用以下某种方法为您的应用构建 app bundle:

使用 Android Studio 和 Android Plugin for Gradle 构建 Android App Bundle 并为其签名。

使用 bundletool 针对所有设备配置生成一组 APK,具体命令如下:

bundletool build-apks --local-testing

--bundle my_app.aab

--output my_app.apks

--local-testing 标记包含 APK 清单中的元数据,告知 Play Core 库使用本地拆分 APK 测试功能模块的安装,而无需连接到 Play 商店。

将应用部署到设备

使用 --local-testing 标记构建一组 APK 后,应使用 bundletool 安装应用的基础版本,并将其他 APK 转移到设备的本地存储空间。您可以使用以下命令执行这两项操作:

bundletool install-apks --apks my_app.apks

现在,当您启动应用并完成下载和安装功能模块的用户流时,Play 核心库会使用 bundletool 转移到设备本地存储空间的 APK。

模拟网络连接错误

为了模拟从 Play 商店安装模块的过程,Play 核心库使用 SplitInstallManager 的替代方法(名为 FakeSplitInstallManager)来请求模块。当您将 bundletool 与 --local-testing 标记一起使用来构建一组 APK 并将其部署到测试设备时,它包含元数据,指示 Play 核心库自动切换应用的 API 调用以调用 FakeSplitInstallManager,而不是 SplitInstallManager。

FakeSplitInstallManager 包含一个布尔标记,当应用下次请求安装模块时,您可以启用该标记来模拟网络连接错误。如需在测试中访问 FakeSplitInstallManager,您可以使用 FakeSplitInstallManagerFactory 获取它的实例,如下所示:

Kotlin

// Creates an instance of FakeSplitInstallManager with the app's context.

val fakeSplitInstallManager = FakeSplitInstallManagerFactory.create(context)

// Tells Play Core Library to force the next module request to

// result in a network error.

fakeSplitInstallManager.setShouldNetworkError(true)Java

// Creates an instance of FakeSplitInstallManager with the app's context.

FakeSplitInstallManager fakeSplitInstallManager =

FakeSplitInstallManagerFactory.create(context);

// Tells Play Core Library to force the next module request to

// result in a network error.

fakeSplitInstallManager.setShouldNetworkError(true);

android检测本地是否安装,在本地测试模块的安装相关推荐

  1. Windows 11 Android subsystem无需美区ID和测试通道直接安装——Win11 安卓子系统安装小记

    Windows 11 Android subsystem 无需美区ID和测试通道直接安装--Win11 安卓子系统安装小记 文章目录 Windows 11 Android subsystem 无需美区 ...

  2. [转移]安装 BugZilla 时 Perl 模块的安装

    [转移]安装 BugZilla 时 Perl 模块的安装 转移自自己原来在YourBlog上的Blog,写于2004-3-11 13:05:48 看了Jackey的"Windows下BugZ ...

  3. 2022年Android官方模拟器安装Xposed教程+测试工具PatDroid安装教程

    碎碎念:截至笔者写此教程的2022.10.10,xposed官网貌似已经G了(?),网上有的教程已经过时,有的是针对奇怪的商用的Android模拟器的教程(以科研工作者的角度来说),在此环境下出一篇A ...

  4. CUDA安装失败-Nsight compute安装失败-如何测试CUDA是否安装成功?Reason: VS** was not found

    一.安装背景 CUDA11.1版本,本人的电脑显卡是GTX 1650,显存4GB:第一次安装前下载了vs2017版本并安装成功. 二.安装过程-如何一步步地解决错误? 第一次安装:精简安装,也就是把所 ...

  5. app功能性测试——安装卸载升级测试、交叉事件测试、通知推送测试

    安装卸载升级测试 1.安装 1) 软件安装各个选项的组合是否符合概要设计说明. 2) 软件安装向导的UI测试 3) 安装后没有生成多余的目录结构和文件. 4) 安装成功的情况(检查版本号是否正确)和安 ...

  6. tomcat9安装及其简单测试

    tomcat 9安装及其简单测试 1.安装 安装yum install -y wget 在官网下载tomcat 和jdk wget 下载地址(进行下载) 将下载的压缩包放到/usr/local mv ...

  7. swak4foam的安装(v7测试有效)

    hg clone http://hg.code.sf.net/p/openfoam-extend/swak4Foam swak4Foam cd swak4Foam ./AllwmakeAll 依次在& ...

  8. ESP32固件安装和基础测试

    ESP32固件安装和基础测试 ESP32- WORRM- 32 固件安装 使用软件ZTsoft安装固件 使用FLASH_DOWNLOAD安装固件 基础测试 使用ZTsoft点亮LED 使用Mind+点 ...

  9. 配置-Postgresql+Postgis安装+Django连接测试

    配置-Postgresql+Postgis安装+Django连接测试 VM虚拟机 安装centos7 min版本 1.配置网卡 cd /etc/sysconfig/network-scripts vi ...

最新文章

  1. 口罩巨头挑战“量子霸权”,3个月造出的『最强量子计算机』靠谱不?
  2. ASP.NET那点不为人知的事(四)
  3. Karma和Jasmine自动化单元测试——本质上还是在要开一个浏览器来做测试
  4. View和ViewGroup常用方法
  5. 树莓派学习笔记——GPIO功能学习
  6. Python中bytes和str区别详细介绍
  7. 计算机网络可以按哪些原则分类,计算机网络的分类
  8. mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  9. 关于gcc -o 的使用问题
  10. java tsp问题_蚁群算法(Java)tsp问题
  11. oracle mysql认证考试流程_报考oraclemysql认证的考试流程是哪些
  12. 【机器学习】一文理解BP神经网络 附代码
  13. 有关lodop.js和CLodop服务
  14. go 获取本机ip地址
  15. 微信公众平人数多服务器会崩溃吗,微信公众号平台推新功能 再也不怕文章崩溃...
  16. python - 文件操作函数练习
  17. P1240 诸侯安置 [dp]
  18. 川崎机器人 K-ROSET 仿真软件插件开发
  19. 面试复习-计算机基础
  20. 网络存储服务器拷贝文件夹,【群晖 DS218+ 2盘位 NAS网络存储服务器使用总结】配置|做工|指示灯|copy键_摘要频道_什么值得买...

热门文章

  1. 2022-2028年中国汽车零部件行业市场研究及前瞻分析报告
  2. CentOS6安装nodejs
  3. 初窥CSRF攻击方式以及Flask-WTF
  4. IntelliJ IDEA中用快捷键自动创建测试类
  5. 由于找不到PBSYS90.dll,无法继续执行代码。重新安装程序可能会解决此问题!
  6. 机房收费系统【VB版】——选择下机
  7. plt.figure()的使用
  8. 安装win下的Anaconda ----针对python3.6.4版本
  9. 函数的渐近的界阶的比较
  10. vue响应式给数组中的对象添加新属性