应用免安装的限制、字段解释和怎样自测?

应用免安装的限制、字段解释和怎样自测?

HarmonyOS
2024-07-13 10:38:25
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
鱼弦CTO
2

### HarmonyOS 应用免安装的限制、字段解释和自测

在 HarmonyOS 中,应用免安装(Ability Kit) 是一种允许用户无需完整安装应用即可使用某些功能的机制。这为用户提供了便捷,同时也要求开发者遵循一定的限制和规范。

### 应用免安装的限制

  1. 功能受限:由于是免安装模式,应用不能访问某些系统资源和服务,例如后台服务、复杂的文件操作等。
  2. 存储受限:免安装应用只能使用有限的存储空间进行临时数据存储,通常这部分数据无法持久化。
  3. 权限受限:免安装应用不允许请求某些敏感权限,如读取短信、通话记录等。
  4. 生命周期受限:免安装应用的生命周期可能会比普通应用更短,因为系统会根据内存压力等因素随时回收相关资源。

### 字段解释

配置免安装应用主要需要编辑 ​​module.json​​ 文件,该文件用于定义应用模块的元信息。以下是一些重要字段及其解释:

#### module.json 示例

{
  "app": {
    "bundleName": "com.example.demo",
    "vendor": "example",
    "version": {
      "code": 1,
      "name": "1.0"
    }
  },
  "deviceType": [
    "phone",
    "tablet"
  ],
  "module": {
    "type": "entry",
    "name": "demo",
    "abilityType": "page",
    "abilities": [
      {
        "name": "MainAbility",
        "label": "Main Ability",
        "icon": "$media:icon",
        "description": "This is the main ability",
        "visible": true,
        "skills": [
          {
            "actions": [
              "action.system.home"
            ],
            "entities": [
              "entity.system.default"
            ]
          }
        ],
        "metadata": {
          "installFree": {
            "support": true
          }
        }
      }
    ]
  },
  "distribution": {
    "minAPIVersion": 5,
    "maxAPIVersion": 6
  }
}

#### 重要字段解释

  • ​installFree​​: 指定该能力是否支持免安装模式。
  • ​support​​: 设置为​​true​​ 表示支持免安装模式。
  • ​type​​: 模块类型,常见值包括 entryfeature
  • ​abilityType​​: 能力类型,常见值包括 page, service, 和 data
  • ​name​​: 能力名称。
  • ​label​​: 能力标签,用于显示在界面上的文字。
  • ​icon​​: 能力图标。
  • ​description​​: 能力描述。
  • ​visible​​: 是否可见,设置为 true 表示该能力会出现在启动器中。
  • ​skills​​: 定义该能力的技能,即它可以响应哪些动作和实体。

### 自测步骤

为了确保免安装应用能正确工作,需要进行多方面的测试,包括生命周期、权限管理、UI 响应等。

#### 自测准备

  1. 开发环境:确保已安装 HarmonyOS SDK,并配置好开发环境。
  2. 设备或模拟器:准备一台运行 HarmonyOS 的设备或模拟器。

#### 测试步骤

  1. 配置免安装属性:在 module.json 文件中配置 installFree 属性。
  2. 打包与部署:使用 DevEco Studio 打包项目。
// 在命令行中执行
hdc shell aafwk start -a action.system.home -b com.example.demo -m MainAbility
  1. 功能测试
  • 启动免安装应用后,检查 UI 元素是否正常显示。
  • 测试不同功能模块,确保每个模块都能在免安装模式下正常运行。
  1. 性能测试
  • 检查应用启动速度和流畅性,确保用户体验良好。
  • 使用 Profiler 工具监测应用内存占用情况,确保不会出现内存泄漏问题。
  1. 权限测试
  • 确保免安装应用不会请求敏感权限,如果有权限请求,则应合理处理或提示用户。
  1. 错误处理
  • 检查应用在异常情况下的表现,例如网络断开、内存不足等情况。
  • 确保应用能够正确捕获并处理异常,不会导致崩溃。

### 总结

通过严格遵守 HarmonyOS 应用免安装的限制和规范,并通过全面的自测,可以确保你的免安装应用在各种场景下都能正常运行,为用户提供良好的使用体验。如果你有更多问题或需求,请随时提问。

分享
微博
QQ
微信
回复
2024-07-13 11:15:40
在攒六便士

免安装的限制:免安装HAP大小限制10M。10M是针对所有要打进App的总大小,如果App内有多个HAP,是所有HAP加在一起的。分包时候,额外需要满足:每个文件的大小不能大于2M。

DeliveryWithInstall:配置应用可选安装功能。具体场景是,在应用市场下载安装时是否跟随应用一起安装。Entry模块的本字段允许设置为false。配置为True的HAP包也会被计算在免安装的10M限制中。

InstallationFree:标识当前Module是否支持免安装特性。Entry模块也支持免安装,但当应用的Entry类型Module的该字段配置为true时,该应用的Feature类型的该字段也需要配置为true。

自测:需要开发者自己写一个服务中心,mock一个服务中心处理免安装请求。

分享
微博
QQ
微信
回复
2024-07-13 16:56:25
相关问题
OpenIDUnionID长度限制要求
1784浏览 • 1回复 待解决
怎样查看应用沙箱中文件?
1450浏览 • 1回复 待解决
WorkerTaskPool线程数量是否有限制
1706浏览 • 1回复 待解决
怎样判断应用可以被卸载
307浏览 • 1回复 待解决
应用进程启用过程是怎样
1689浏览 • 1回复 待解决
HarmonyOS 第三方应用安装卸载广播
202浏览 • 0回复 待解决
怎样能把快应用完全关闭
7826浏览 • 1回复 待解决
怎样实现XML标签标签值解析?
155浏览 • 1回复 待解决
图片压缩指定宽高限制大小
620浏览 • 1回复 待解决
Access TokenRefresh Token长度限制要求
1809浏览 • 1回复 待解决
浏览器应用应该怎样拉起?
259浏览 • 2回复 待解决