OpenHarmony开发者论坛

标题: 打包hap的技巧(减小体积、命令行打包),以及如何创建API10的项目 [打印本页]

作者: westinyang    时间: 2023-10-26 15:07
标题: 打包hap的技巧(减小体积、命令行打包),以及如何创建API10的项目
[md]> 关于作者:[I'm westinyang](https://kaihongpai.feishu.cn/wiki/CqWLwJRadibxztkrIWZcogWxnXd)

# 打包hap的技巧

> 视频教程:https://www.bilibili.com/video/BV18u41177yx

## 减小打包体积

DevEcoStudio顶部菜单中的 `构建 - 编译` 中有两个选项,分别是 `编译Hap`和 `编译App`

![](data/attachment/forum/202310/26/150305kzuub8bb2zj5uun1.png "1.png")

- 前者生成的hap,实际上会包含用于调试的 `SourceMap` 文件,所以打包出来的体积会大一些
- 而后者生成的hap,是不包含的,打包体积能小很多,一般在分发应用的时候,建议使用这种方式
- 在实际测中,编译App生成的hap,打包的体积能比前者小30%左右,甚至在有些项目中,打包的体积可以减少50%左右

## 命令行打包

如果项目已经配置过了签名,后续不想用DevEcoStudio修改打包,例如一些简单的自动化场景,你想通过脚本自动修改项目的某处代码或配置并打包,你也可以通过命令行的方式来打包hap,在项目根目录中打开命令窗口,输入下面的命令,这等同于刚才在DevEcoStudio中的操作

- `hvigorw.bat assembleHap`
- `hvigorw.bat assembleApp`

另外,你也可以通过 `hvigorw.bat -h` 查看更多命令的使用方式

```
Usage: hvigor [taskNames...] <options...>

Options:
  -v, --version                     Show version of Hvigor.
  -e, --error                       Set log level to error.
  -w, --warn                        Set log level to warn.
  -i, --info                        Set log level to info.
  -d, --debug                       Set log level to debug.
  --stacktrace                      Print out the stacktrace for all exceptions.
  -p, --prop <value>                Define extra properties. (default: [])
  -m, --mode <string>               Specifies the mode in which the command is currently executed.
  -s, --sync                        Sync the information in plugin for other platform.
  --enable-build-script-type-check  Enable the build script hvigorfile.ts type check.
  --no-parallel                     Disable parallel building mode.
  --no-incremental                  Disable incremental building mode.
  --no-daemon                       Disable building with daemon process.
  --stop-daemon                     Shut down current project's daemon process.
  --stop-daemon-all                 Shut down all projects' daemon process.
  --status-daemon                   Show all daemon process's status of the project.
  -h, --help                        display help for command

Commands:
  version                           Show version of Hvigor.
  tasks                             Show all available tasks of specific modules.
  taskTree                          Show all available taskTree of specific modules.

Examples:
  hvigor assembleApp  Do assembleApp task

copyright 2023
```

# 如何创建API10的项目

> 视频教程:https://www.bilibili.com/video/BV1vu411J7oz

准确的说应该是:如何使用 DevEcoStudio 4.0 Beta2 创建 API10 的项目,因为等Release版的Studio发布后,应该就不需要这么做了

- 首先,你需要安装 DevEcoStudio 4.0 Beta2,[下载地址](https://gitee.com/openharmony/do ... 7%E5%85%B3%E7%B3%BB)
- 打开DevEcoStudio,选择新建项目,下一步,这里的SDK只能选择API9,我们不管他继续创建
- 由于API10的项目配置有所变化,所以我们需要手动修改配置
- 先打开模块下面的 `build-profile.json5`,删除 `runtimeOS`配置
- 再打开根目录的 `build-profile.json5`,把 `compileSdkVersion`和 `compatibleSdkVersion`这两行移动到 `products`里面,并把这两个值都改为 `10`
- 最后,在 `products`内加上 `runtimeOS`配置,点击 Sync Now 同步项目即可

![](data/attachment/forum/202310/26/150352fdl1qdq10e9odz6r.png "2.png")

# 持续关注

- 关于作者:[I'm westinyang](https://kaihongpai.feishu.cn/wiki/CqWLwJRadibxztkrIWZcogWxnXd)
- 哔哩哔哩:[个人主页](https://space.bilibili.com/74433635)
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5