开源鸿蒙终端工具Termony在模拟器里运行
摘要: 本文介绍了在Windows WSL中编译Termony时遇到的问题及解决方案。由于默认配置编译出的HAP包过大(1.4G),导致模拟器崩溃,通过修改build-hnp目录的Makefile精简工具列表(仅保留bash、gettext、busybox),并将目标平台设置为x86_64,最终生成46M的HAP包,成功在鸿蒙PC模拟器运行。关键步骤包括:调整环境变量(OHOS_ARCH)、手动清
前面在windows的wsl里面编译Termony时,用的是默认配置。编译出来的HAP包有1.4G,安装到模拟器直接崩掉了。因为Termony默认集成了七十多个工具,有非常丰富庞大的功能,因此编译出来的包比较大。
查看了build-linux.sh脚本,可以看到,编译这些工具,是通过make编译build-hnp各个子目录完成的。
build_termony_hnps() {
cd ${PROJ_BASE_HOME} && make -C build-hnp
}
查看build-hnp目录,里面的Makefile的PKGS变量定义了这些工具,可以通过修改PKGS来增删Termony包含的工具列表。
编译修改
通过修改build-linux.sh和Makefile,控制编译的目标平台和集成的工具列表。
目标平台
Termony可以支持arm64和x86_64,如果要目标平台是鸿蒙PC,则要设置OHOS_ARCH为x86_64。
# for x86_64, set OHOS_ARCH and OHOS_ABI to x86_64
#export OHOS_ARCH=aarch64
#export OHOS_ABI=arm64-v8a
export OHOS_ARCH=x86_64
export OHOS_ABI=x86_64
集成工具列表
为快速验证,修改默认集成的工具列表为bash、gettext、busybox这三个工具,目标是先在模拟器上能够把Termony安装上去。
环境变量
只需要设置TOOL_HOME环境变量,并不需要将OHOS_SDK_HOME里面的工具暴露到PATH环境变量。如果导出了toolchains目录,会导致编译失败。
注意clean
build-linux.sh脚本没有提供清理的功能,需要手动到build-hnp目录去清理。
什么情况下需要清理?比如,前面没有任何修改,默认编译了所有的工具,现在修改删减了一些,如果直接调用build-linux.sh -b,打包时仍会将之前编译好的工具打包进去。
如何清理?
Makefile里面clean是会删除sysroot目录。如果还想保留之前的工具,可以将sysroot备份一下,免得又要编译很久。
$ cd build-hnp
$ export OHOS_ARCH="x86_64"
$ make clean
编译
配置好上述步骤,编译就只是等待了。
$ cd Termony
$ ./build-linux.sh -b
安装
删减后的HAP包编译后只有几十M,安装起来无压力。
$ ls entry/build/default/outputs/default/entry-default-unsigned.hap -lh
-rwxrwxrwx 1 test test 46M Dec 9 18:03 entry/build/default/outputs/default/entry-default-unsigned.hap
在模拟器里面安装,不需要签名,可以直接安装。
$ hdc app install entry-default-unsigned.hap
运行
鸿蒙PC模拟器运行界面如下。

注意事项
- 注意清理
build-linux.sh没有清理功能,如果前面编译过arm64平台的hnp包,打包HAP时会打包进去。可以根据需要删除不需要的hnp包。 - 提示
config.h未找到
可以参考如下issue处理:config.h未找到
更多推荐



所有评论(0)