Android中运行免安装app,适用于免安装应用的 CTS

免安装应用是 Android 10 的一项重要功能,因此必须确保这些应用能够正常运行。免安装应用是隐式安装的,因此它们仅具有有限的功能,并需要在限制更多的安全沙盒中运行。由于这些限制普遍存在,因此系统的任何部分都存在无法正常运行免安装应用的风险。为此,我们创建了一个 CTS 测试子集来确保免安装应用允许的行为运作正常。核心理念就是,尽可能少地隔离要移植的测试,以此来最大限度地限制 CTS 大小的增长。在免安装应用模式下运行 CTS,意味着将测试 APK 作为免安装应用进行安装并运行测试。

免安装应用限制

免安装应用并非由用户安装,因此它们需要在受限沙盒中运行,并受到以下限制:只能拥有特定权限。

无法看到其他应用,除非这些应用已标记为对免安装应用可见。

只能访问特定的系统设置。

只能访问特定的系统属性。

无法公开服务/提供程序。

可以按照与广播有关的特殊规则收发消息。

此外,免安装应用还必须选择允许新的安全沙盒添加更多限制。免安装应用的这类特殊行为广泛存在于整个平台上,因此需要有一种方法来验证免安装应用是否能在生态系统中的所有设备上按预期运行。

在免安装应用模式下运行的测试

并非所有 CTS 模块都包含适用于免安装应用的测试。如果模块所测试的功能需要和系统服务器进行交互,那么这些测试就应该在免安装应用模式下运行。例如,OpenGL 测试不会和系统服务器进行交互,因此无需在免安装应用模式下运行,而无障碍功能测试需要和系统服务器进行交互,因此需要在免安装应用模式下运行。

用户除了需要确定哪些模块适用之外,还需要确定这些模块中的哪些测试是相关的。例如,测试可插拔架构(例如 AccessibilityService)的服务特定行为不适用于免安装应用模式,因为免安装应用无法向其他应用(包括平台)公开服务,而验证应用端行为的测试则适用于免安装应用模式。再比如,如果某个免安装应用无法拥有某项权限,则可通过测试来验证此权限背后的行为是否可在免安装应用模式下运行。有一组仅适用于免安装应用的测试,可用于验证与此类应用的行为方式(例如,不公开服务或看不到其他应用)有关的规则。通常情况下,这些测试已经编写好,且不需要移植。

免安装模式下的测试失败情况

如果测试因验证免安装应用无法访问的功能而失败,则表示该测试不适合在免安装应用模式下运行。您可以使用 @AppModeFull 注释测试,将其标记为仅可在完整应用模式下运行。您可以在类级别应用此注解,以排除类中的所有测试。

如果测试因免安装应用可以访问的某项功能被破坏而失败,请提交错误。

问题排查

如果您的测试失败并且系统显示“Failed to install MyCtsModule.apk on DEVICE. Reason: '-116'”消息,请在 logcat 上查找 PackageManager 消息。例如,如果系统显示“Can't replace Full App with Instant App: your_app”消息,则 adb 会先卸载您的应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android SDK是一个开发工具包,用于创建Android应用程序。它提供了丰富的API和工具,帮助开发者构建高质量的Android应用程序。 Android SDK不需要安装,可以直接使用。它是一个独立的开发环境,可以在不同的操作系统上运行,如Windows、Mac和Linux。开发者只需下载并解压缩Android SDK包,然后设置环境变量,即可开始使用。 Android SDK包含了一些重要的组件,如Android平台工具、Android SDK构建工具和Android系统镜像。在设置环境变量后,开发者可以通过命令行界面或图形化界面来执行各种操作,如创建新的项目、编译和调试应用程序。 使用Android SDK进行开发有以下几个优点: 1. 多平台支持:Android SDK可以在不同的操作系统上运行,方便开发者使用自己熟悉的操作系统进行开发。 2. 完整的开发环境:Android SDK提供了一套完整的开发环境,包括编译器、调试器和模拟器等工具,帮助开发者高效地开发和测试应用程序。 3. 丰富的API和文档:Android SDK提供了丰富的API和详细的文档,开发者可以轻松地使用各种功能和服务,如界面设计、数据存储和网络通信等。 4. 社区支持:Android SDK有一个庞大的开发者社区,开发者可以在其分享经验、解决问题和交流思想,获得帮助和支持。 总而言之,Android SDK是一个功能强大且易于使用的开发工具包,可以帮助开发者快速构建优秀的Android应用程序。它的安装特性让开发者能够更加方便地使用和管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值