应用模型
====

#### 概述

应用模型是系统为开发者提供的应用程序所需能力的抽象提炼，它提供了应用程序必需的组件和运行机制。借助应用模型，开发者可以基于一套统一的模型进行应用开发，使应用开发更简单、高效。

#### Admin组件的基础概念

[企业设备管理扩展能力](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/mdm-kit-term#enterpriseadminextensionability企业设备管理扩展能力)组件，是[MDM应用](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/mdm-kit-term#mdm应用)的必备组件。开发MDM应用时，需要定义一个[EnterpriseAdminExtensionAbility](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterpriseadminextensionability)类型的[ExtensionAbility](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-extensionability)组件用于激活MDM应用，该组件被激活后将作为独立的后台进程存在。

#### \[h2\]进程模型

MDM应用进程模型继承于普通应用[进程模型](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/process-model-stage#进程模型-1)，在普通应用模型基础上MDM应用会多一个独立的EnterpriseAdmin进程，MDM应用的Admin组件被激活后，EnterpriseAdmin进程会被创建，EnterpriseAdmin进程作为设备管理应用的后台进程，用于接收MDM应用的激活、取消激活等事件的回调。EnterpriseAdmin进程的生命周期不受到主进程的影响，由系统管理其生命周期。Admin组件的激活方式不同，EnterpriseAdmin进程的生命周期的[管理方式](#admin组件激活规格的差异)也不同。

**图1** MDM应用进程模型

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4/v3/qxyeMK67SlGBaEqXyKmS6Q/zh-cn_image_0000002633849244.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=863A3143B780B36130AA1AE9DFEA0638A45792DD072879429F2C56BC95DAC2C2)

#### \[h2\]EnterpriseAdmin进程的生命周期

Admin组件被激活后有独立的进程，支持系统状态变更回调。与应用的主进程分属不同的进程，进程的启停由[EDM](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/mdm-kit-term#enterprise-device-manager-edm企业设备管理)服务管理，应用处于后台时Admin进程也可以运行。

**图2** MDM应用处于前台并且已经激活时

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/be/v3/Oiata160RWSy7Ae-Na2hvw/zh-cn_image_0000002634009148.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=91EB8D86548057E31B7814D081C9FCA91E50F12B1251E326A39828E222D2B151)

**图3** 存在MDM应用的前台进程和EnterpriseAdmin进程

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/29/v3/BrWymXNXTFeOBBwBgbCr0A/zh-cn_image_0000002664208297.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=7BE7C57847BDDEF4E64B3EE35331A679253542C4B4371543155EB139133D9D51)

**图4** 应用主进程停止时，EnterpriseAdmin进程仍然运行

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/3/v3/5lRFmdylT6-EWNYeeLLEvg/zh-cn_image_0000002664328357.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=27CFF54A9E90C7DA11FD93898257E36D78B35988377658049D806F1353A15B3B)

**图5** EnterpriseAdmin进程支持系统事件回调

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/ad/v3/HTNdWfzIQRaSMgofEe5PIw/zh-cn_image_0000002633849246.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=D03962CA43F75E5AEC3991BA4A7B3303F9F1CA492F4A6CBD55E383FF6313A861)

*   onAdminEnabled：当MDM应用的Admin组件被激活时的事件回调。
*   onAdminDisabled：当MDM应用的Admin组件被取消激活时的事件回调。
*   onAppStart：应用启动的事件回调，回调的参数中包含应用包名。需要通过[adminManager.subscribeManagedEventSync](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagersubscribemanagedeventsync)接口注册MANAGED\_EVENT\_APP\_START事件才能收到此回调。
*   onAppStop：应用停止的事件回调，回调的参数中包含应用包名。需要通过[adminManager.subscribeManagedEventSync](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagersubscribemanagedeventsync)接口注册MANAGED\_EVENT\_APP\_STOP事件才能收到此回调。
*   onBundleAdded：应用安装事件回调，回调的参数中包含应用包名和用户ID。需要通过[adminManager.subscribeManagedEventSync](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagersubscribemanagedeventsync)接口注册MANAGED\_EVENT\_BUNDLE\_ADDED事件才能收到此回调。
*   onBundleRemoved：应用卸载事件回调，回调的参数中包含应用包名和用户ID。需要通过[adminManager.subscribeManagedEventSync](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagersubscribemanagedeventsync)接口注册MANAGED\_EVENT\_BUNDLE\_REMOVED事件才能收到此回调。
*   更多事件回调请参考[ManagedEvent](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#managedevent)。

#### \[h2\]Admin组件激活规格的差异

Admin组件有不同的激活方式，可以通过不同的接口，例如[adminManager.enableDeviceAdmin](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagerenabledeviceadmin23)，[adminManager.startAdminProvision](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagerstartadminprovision15)，激活后所具备的能力也有不同。详情如下表所示：

| 特性 | SDA | DA | BDA |
| :-- | :-- | :-- | :-- |
| 防卸载能力 | 禁止用户卸载 | 默认情况下用户可以卸载 | 禁止卸载 |
| MDM管控接口调用权限 | 支持所有public管控接口 | 支持所有public管控接口 | 支持申请ohos.permission.PERSONAL\_MANAGE\_RESTRICTIONS权限可调用的接口 |
| 角色支持数量 | 最多1个 | 最多10个 | 无数量限制 |

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/4a/v3/_Io1EvWKSbeJM7OoIX-w5w/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=2E136FC9F94B9C30E4230B4C07173A1E39A605232438F4956618B2BF1770CCFF)

1.BDA与其他Admin角色不能同时存在。

2.SDA和DA同时存在的数量加起来最多10个。SDA具备管理其他DA应用的能力（激活/去激活），而DA仅能对设备进行管控，无法管理其他DA应用。当MDM应用激活为SDA时，具备管控其他DA的能力，可以通过调用[adminManager.enableDeviceAdmin](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagerenabledeviceadmin23)接口激活其他DA应用，或调用[adminManager.disableDeviceAdmin](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-enterprise-adminmanager#adminmanagerdisabledeviceadmin23)接口去激活其他DA应用。

#### 管控接口授权原理

MDM应用的Admin组件需经企业授权方可生效。具体而言，企业需要通过调用MDM Kit接口进行Admin组件的激活。在此操作之前，该组件仅处于声明状态，不具备实际能力，Admin组件激活之后，在MDM应用的任意进程，都可以调用MDM管控接口。

#### \[h2\]管控接口权限校验机制

MDM管控接口使用[ACL授权](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-permission-mgmt-overview#权限机制中的基本概念)进行访问权限校验，同时会校验Admin组件的激活状态与激活类型。MDM应用调用MDM管控接口时须同时具备上述三个条件，否则调用会报错[9200001](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-enterprisedevicemanager#section9200001-应用没有激活成设备管理器)、[201](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-universal#section201-权限校验失败)或[9200002](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/errorcode-enterprisedevicemanager#section9200002-设备管理器权限不够)。

**图6** EDM服务校验逻辑

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/6d/v3/RSLGVcokTDKTvHHZ5B-KQQ/zh-cn_image_0000002634009150.png?HW-CC-KV=V1&HW-CC-Date=20260709T132449Z&HW-CC-Expire=86400&HW-CC-Sign=5007A5BAF1EA5E4B173A202AF85D28DA6199C22E5492DCF1F7ED129561AF34A4)