Android 的企业功能为组织提供了安全、灵活和统一的 Android 移动平台,它结合了设备、应用程序和管理功能。Android 应用默认情况下与 Android 的企业功能兼容。但是,您可以使用其他功能来使您的应用在托管的 Android 设备上获得最佳效果
- 工作配置文件兼容性 — 修改您的 Android 应用,使其在托管设备上具有最佳功能。
- 托管配置 — 修改您的应用以允许 IT 管理员选择为您的应用指定自定义设置。
- 专用设备 — 优化您的应用,以便可以将其作为信息亭部署到 Android 设备上。
- 单点登录 (SSO) — 简化在托管 Android 设备上登录不同应用的用户的登录过程。
先决条件
- 您已创建 Android 应用。
- 您已准备好修改您的应用,使其最适合组织。
- 最低版本:Android 5.0 棒棒糖;建议版本:Android 6.0 棉花糖及更高版本。
注意:Android 的企业功能内置于大多数 Android 5.0 设备中;但是,Android 6.0 及更高版本提供了更多功能,尤其是在专用设备方面。
工作配置文件
您可以通过工作配置文件管理用户的业务数据和应用程序。工作配置文件是与 Android 设备上的主要用户帐户关联的托管公司配置文件。工作配置文件安全地将工作应用和数据与个人应用和数据隔离开来。此工作配置文件与您的用户控制的个人配置文件位于单独的容器中。这些单独的配置文件允许组织管理他们关心的业务数据,但将用户设备上的所有其他内容都保留在用户的控制之下。要深入了解最佳实践,请参阅工作配置文件指南。有关这些最佳实践的概述,请参见下文。
工作配置文件的关键功能
- 独立且安全的配置文件
- 用于应用程序分发的托管 Google Play
- 单独的带徽章的工作应用程序
- 管理员控制的仅配置文件管理功能
Android 5.0+ 上的工作配置文件优势
- 完全设备加密
- 当设备上同时存在个人配置文件和工作配置文件时,一个 Android 应用程序包 (APK) 用于两个配置文件
- 设备策略控制器 (DPC) 仅限于工作配置文件
- 通过DevicePolicyManager 类进行设备管理
工作配置文件注意事项
防止意图在配置文件之间失败
很难确定哪些意图可以在配置文件之间传递,哪些意图会被阻止。唯一确定方法是进行测试。在您的应用启动活动之前,您应该通过调用Intent.resolveActivity()
来验证请求是否已解决。
- 如果返回
null
,则请求未解决。 - 如果返回其他值,则表明意图已解决,可以安全地发送意图。
注意:有关详细的测试说明,请参阅防止意图失败。
跨配置文件共享文件
一些开发者使用 URI 来标记 Android 中的文件路径。但是,由于存在工作配置文件时存在单独的文件系统,我们建议
使用 内容 URI |
|
不要使用 文件 URI |
|
下一步:您的应用支持托管配置文件后,请在工作配置文件中进行测试。请参阅测试您的应用。
实现托管配置
托管配置是一组指令,IT 管理员可以使用这些指令以特定方式管理其用户的移动设备。这些指令是通用的,适用于任何 EMM,允许管理员远程配置用户手机上的应用程序。
如果您正在为企业或政府开发应用,您可能需要满足您所在行业的特定要求。使用托管配置,IT 管理员可以远程指定设置并强制执行其用户 Android 应用的策略;例如
- 配置应用是否可以通过蜂窝/3G 或仅通过 Wi-Fi 同步数据
- 允许或阻止网页浏览器上的 URL
- 配置应用的电子邮件设置
- 启用或禁用打印
- 管理书签
实现托管配置的最佳实践
设置托管配置指南是有关如何构建和部署托管配置的信息的关键来源。查看此文档后,请参阅以下建议以获取其他指导。
首次启动应用时
启动应用程序后,您可以在onStart()
或onResume()
中查看此应用是否已设置托管配置。此外,您可以了解您的应用程序是托管的还是非托管的。例如,如果getApplicationRestrictions()
返回
- 一组特定于应用程序的限制——您可以静默配置托管配置(无需用户输入)。
- 一个空捆绑包——您的应用程序的行为就像非托管一样(例如,应用程序在个人配置文件中的行为)。
- 一个包含单个键值对的捆绑包,其中
KEY_RESTRICTIONS_PENDING
设置为 true——您的应用程序正在被管理,但 DPC 配置不正确。您应该阻止此用户使用您的应用,并将其引导至其 IT 管理员。
侦听托管配置的更改
IT 管理员可以随时更改托管配置以及他们希望对用户强制执行的策略。因此,我们建议您确保您的应用可以接受托管配置的新限制,如下所示
- 启动时获取限制——您的应用应该在
onStart()
和onResume()
中调用getApplicationRestrictions()
,并与旧限制进行比较,以查看是否需要更改。 - 运行时侦听——在您检查了新限制后,在正在运行的活动或服务中动态注册
ACTION_APPLICATION_RESTRICTIONS_CHANGED
。此意图仅发送到动态注册的侦听器,而不发送到应用清单中声明的侦听器。 - 未运行时注销——在
onPause()
中,您应该注销ACTION_APPLICATION_RESTRICTIONS_CHANGED
的广播。
专用设备
专用设备是用于单一用途的自助服务终端,例如数字标牌显示器、售票自助服务终端或收银机。
当 Android 设备配置为专用设备时,用户会看到一个锁定在屏幕上的应用程序,没有“主页”或“最近使用的应用”按钮来退出应用程序。专用设备还可以配置为显示一组应用程序,例如带有图书馆目录应用程序和 Web 浏览器的图书馆自助服务终端。
有关说明,请参阅专用设备。
使用 Chrome 自定义标签设置单点登录
企业用户通常在其设备上安装多个应用,他们更倾向于登录一次即可访问所有工作应用程序。通常,用户通过WebView登录;但是,这并非理想之选,原因如下:
- 用户通常需要使用相同的凭据多次登录。WebView 解决方案通常并非真正的单点登录 (SSO) 体验。
- 可能存在安全风险,包括恶意应用程序检查 Cookie 或注入 JavaScript® 以访问用户的凭据。即使是受信任的开发者,如果他们依赖于潜在的恶意第三方 SDK,也会面临风险。
解决这两个问题的方案是使用浏览器自定义标签而不是 WebView 来对用户进行身份验证。这确保身份验证
- 发生在安全环境(系统浏览器)中,主机应用无法检查内容。
- 具有共享 Cookie 状态,确保用户只需登录一次。
要求
自定义标签支持 API 级别 15(Android 4.0.3)及更高版本。要使用自定义标签,您需要支持的浏览器,例如 Chrome。Chrome 45 及更高版本将此功能实现为Chrome 自定义标签。
如何使用自定义标签实现 SSO?
Google 已开源一个使用自定义标签的 OAuth 客户端库,并将其贡献给 OpenID Foundation 的 OpenID Connect 工作组。要使用 AppAuth 库为 SSO 设置自定义标签,请参阅GitHub 上的文档和示例代码。
测试您的应用
开发完应用后,您需要对其进行测试——在工作配置文件中和在完全托管的设备上进行测试。请参阅以下说明。
使用 Test DPC 测试您的 Android 应用
我们提供 Test DPC 应用来帮助 Android 开发者在企业环境中测试其应用。使用 Test DPC,您可以设置 EMM 策略或托管配置值到设备上——就像组织使用 EMM 管理设备一样。要在设备上安装 Test DPC,请选择以下方法之一
- 从Google Play安装 Test DPC。
- 从GitHub构建源代码。
有关如何配置 Test DPC 的更多信息,请参阅以下说明和Test DPC 用户指南。
预配工作配置文件
要在工作配置文件中测试您的应用,您需要首先使用 Test DPC 应用在设备上预配工作配置文件,方法如下:
- 在设备上安装 Test DPC。
- 在 Android 启动器中,点击设置 Test DPC应用图标。
- 按照屏幕上的说明操作。
- 在设备上安装您的应用并测试其在工作配置文件中的运行情况。
Android 创建一个工作配置文件并在工作配置文件中安装 Test DPC 的副本。您可以使用此工作标记的 Test DPC 实例来设置工作配置文件中的策略和托管配置。要了解有关为开发设置工作配置文件的更多信息,请阅读开发者指南工作配置文件。
预配完全托管的设备
组织使用完全托管的设备,因为它们可以在设备上强制执行全面的管理策略。要预配完全托管的设备,请按照以下步骤操作
- 在设备上安装 Test DPC。
- 确认设备上没有其他用户或工作配置文件。
- 确认设备上没有帐户。
- 在终端中运行以下Android 调试桥(adb)命令
adb shell dpm set-device-owner com.afwsamples.testdpc/.DeviceAdminReceiver
- 完成设备所有者的预配后,您可以在该设备上测试您的应用。您应该特别测试托管配置和意图在此设备上的工作方式。
您也可以使用其他预配方法——请参阅Test DPC 用户指南。要了解 IT 管理员通常如何注册和预配 Android 设备,请阅读预配设备。
端到端测试
在完成上述环境中的应用测试后,您可能需要在端到端生产环境中测试您的应用。此过程包括客户在其组织中部署您的应用所需采取的步骤,包括
- 通过 Play 分发应用
- 服务器端托管配置
- 服务器端配置文件策略控制
您需要访问 EMM 控制台才能完成端到端测试。最简单的方法是从您的 EMM 请求测试控制台。获得访问权限后,请完成以下任务
- 使用新的 ApplicationId创建应用程序的测试版本。
- 声明一个托管 Google 域并将其绑定到您的 EMM。如果您已经拥有绑定到 EMM 的测试域,则可能需要取消绑定它才能使用您首选的 EMM 进行测试。请咨询您的 EMM 以了解具体的取消绑定步骤。
- 将您的应用程序发布到其托管 Google 域的专用频道。
- 使用 EMM 控制台和 EMM 应用程序来
- 设置工作设备。
- 分发您的应用程序。
- 设置托管配置。
- 设置设备策略。
此过程将因您的 EMM 而异。请咨询您的 EMM 文档以获取更多详细信息。恭喜!您已完成这些步骤并验证了您的应用对企业用户的良好运行。