Android 的企业功能为组织提供了一个安全、灵活且统一的 Android 移动平台,集设备、应用和管理于一体。Android 应用默认兼容 Android 的企业功能。不过,您可以使用其他功能,让您的应用在受管理的 Android 设备上发挥最佳性能。
- 工作资料兼容性—修改您的 Android 应用,使其在受管理设备上发挥最佳功能。
- 受管理配置—修改您的应用,允许 IT 管理员选择为您的应用指定自定义设置。
- 专用设备—优化您的应用,使其可以在 Android 设备上作为自助服务终端部署。
- 单点登录 (SSO)—简化用户在其受管理的 Android 设备上登录不同应用的流程。
前提条件
- 您已创建了一个 Android 应用。
- 您已准备好修改您的应用,使其最适用于组织。
- 最低版本:Android 5.0 Lollipop 推荐版本:Android 6.0 Marshmallow 及更高版本。
注意:Android 的企业功能内置于大多数 Android 5.0 设备中;但是,Android 6.0 及更高版本提供更多功能,尤其是在专用设备方面。
工作资料
您可以通过工作资料管理用户的业务数据和应用程序。工作资料是与 Android 设备上的主要用户帐号关联的受管理企业资料。工作资料可将工作应用和数据与个人应用和数据安全隔离。此工作资料位于一个独立于个人资料的容器中,个人资料由您的用户控制。这些独立的资料允许组织管理其关心的业务数据,而将用户设备上的所有其他内容保留在用户的控制之下。有关最佳实践的深入探讨,请参阅工作资料指南。有关这些最佳实践的概览,请参见下文。
工作资料的主要功能
- 独立且安全的资料
- 用于应用分发的受管理 Google Play
- 带有徽章的独立工作应用
- 由管理员控制的仅限资料的管理功能
Android 5.0+ 上的工作资料优势
- 完整设备加密
- 当设备上存在个人资料和工作资料时,一个 Android 应用程序包 (APK) 可用于两种资料
- 设备政策控制器 (DPC) 仅限于工作资料
- 通过 DevicePolicyManager 类进行设备管理
工作资料注意事项
防止 Intent 在资料之间失败
很难知道哪些 Intent 可以跨资料传递,哪些被阻止。唯一确定的方法是进行测试。在您的应用启动 Activity 之前,您应该通过调用 Intent.resolveActivity()
来验证请求是否已解析。
- 如果它返回
null
,则请求未解析。 - 如果它返回其他内容,则表示 Intent 已解析,并且可以安全地发送 Intent。
注意:有关详细的测试说明,请参阅防止 Intent 失败。
跨资料共享文件
有些开发者使用 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()
,并与旧限制进行比较,以查看是否需要更改。 - 运行时侦听—在检查新限制后,在您的正在运行的 Activity 或服务中动态注册
ACTION_APPLICATION_RESTRICTIONS_CHANGED
。此 Intent 仅发送给动态注册的侦听器,而不发送给在应用清单中声明的侦听器。 - 未运行时取消注册—在
onPause()
中,您应该取消注册ACTION_APPLICATION_RESTRICTIONS_CHANGED
的广播。
专用设备
专用设备是用于单一目的的自助服务终端设备,例如数字标牌显示器、票务打印自助服务终端或收银机。
当 Android 设备配置为专用设备时,用户会看到一个锁定在屏幕上的应用程序,没有主页或最近应用按钮可以退出该应用。专用设备还可以配置为显示一组应用程序,例如带有图书馆目录应用程序和网页浏览器的图书馆自助服务终端。
有关说明,请参阅专用设备。
使用 Chrome Custom Tabs 设置单点登录
企业用户设备上通常有多个应用,他们更喜欢一次登录即可访问所有工作应用程序。通常,用户通过 WebView 登录;但是,这并不理想,原因有以下几点
- 用户通常需要使用相同的凭据多次登录。WebView 解决方案通常不是真正的单点登录 (SSO) 体验。
- 可能存在安全风险,包括恶意应用程序检查 Cookie 或注入 JavaScript® 以访问用户的凭据。即使是受信任的开发者,如果他们依赖可能恶意的第三方 SDK,也可能面临风险。
解决这两个问题的方法是使用浏览器 Custom Tabs 而不是 WebView 对用户进行身份验证。这确保了身份验证
- 在主机应用无法检查内容的受安全保护的环境(系统浏览器)中进行。
- 具有共享的 Cookie 状态,确保用户只需登录一次。
要求
Custom Tabs 支持追溯到 API 级别 15 (Android 4.0.3)。要使用 Custom Tabs,您需要一个受支持的浏览器,例如 Chrome。Chrome 45 及更高版本将此功能实现为 Chrome Custom Tabs。
如何使用 Custom Tabs 实现 SSO?
Google 已开源一个使用 Custom Tabs 的 OAuth 客户端库,并将其贡献给 OpenID Foundation 的 OpenID Connect 工作组。要使用 AppAuth 库为 SSO 设置 Custom Tabs,请参阅 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
- 完成设备所有者配置后,您可以在该设备上测试您的应用。您应该特别测试受管理配置和 Intent 在该设备上的工作方式。
您还可以使用其他配置方法—请参阅 Test DPC 用户指南。要了解 IT 管理员通常如何注册和配置 Android 设备,请阅读配置设备。
端到端测试
在上述环境中完成应用测试后,您可能希望在端到端生产环境中测试您的应用。此过程包括客户在其组织中部署您的应用所需的步骤,其中包括
- 通过 Play 分发应用
- 服务器端受管理配置
- 服务器端资料政策控制
您需要访问 EMM 控制台才能完成端到端测试。最简单的方法是向您的 EMM 请求一个测试控制台。获得访问权限后,完成以下任务
- 使用新的 ApplicationId 创建应用的测试版本。
- 声明一个受管理的 Google 域并将其绑定到您的 EMM。如果您已经有一个绑定到 EMM 的测试域,您可能需要解除绑定才能使用您偏好的 EMM 进行测试。请咨询您的 EMM 以获取具体的解除绑定步骤。
- 将您的应用程序发布到其受管理 Google 域的私人渠道。
- 使用 EMM 控制台和 EMM 应用程序来
- 设置工作设备。
- 分发您的应用程序。
- 设置受管理配置。
- 设置设备政策。
此过程将因您的 EMM 而异。请查阅您的 EMM 的文档以获取更多详细信息。恭喜!您已完成这些步骤并验证了您的应用非常适用于企业用户。