OpenHarmony应用编译 - 如何在源码中编译复杂应用(3.2-Release) 原创 精华
概述
文档环境
开发环境:Windows 11
编译环境:Ubuntu 22.04
开发板型号:DAYU 200(RK3568)
系统版本:OpenHarmony-3.2-Release
涉及仓库:applications_launcher
功能简介
- 在OpenHarmony系统中预安装应用的hap包会随系统编译打包到镜像中,目前有两种编译预安装应用hap包的方式,一种为随系统编译时,编译应用源码生成hap包的方式,另一种是将已生成的hap包放入系统源码中,再进行打包的方式。后者需要开发者使用DevEco Studio或其它途径,把应用源码编译构建为hap包,再将hap放入系统源码中。
- 本文档以系统应用Launcher为例,带大家了解如何通过系统源码编译应用的方式来打包预安装应用。
3.2-Release系统编译Launcher
1. 删除或注释系统中默认的Launcher应用hap包编译方式。
文件位置:applications/standard/hap/BUILD.gn
2. 在applications/standard/launcher/product/phone目录中增加BUILD.gn文件。
内容如下:
说明:
- 此处把产物名称hap_name定义为Launcher_OS是为了区分原系统源码中默认的hap包名称,实际可以填写为Launcher。
- 因为launcher_hap中使用了其它har(common)中的资源,所以launcher_resources中的sources需要添加依赖的resources资源目录,在步骤3中launcher_settings_hap
中的配置也是如此。
3. 在applications/standard/launcher/feature/settings目录中增加BUILD.gn文件。
内容如下:
说明:
- 此处把产物名称hap_name定义为Launcher_Settings_OS是为了区分原系统源码中默认的hap包名称,实际可以填写为Launcher_Settings。
4. 因为系统编译只可读取json后缀的配置文件,所以需要把应用源码中的app.json5和module.json5文件复制,并改名为app.json和module.json文件。
(1)复制applications/standard/launcher/AppScope/app.json5文件为app.json。
(2)复制applications/standard/launcher/product/phone/src/main/module.json5文件为module.json。
(3)复制applications/standard/launcher/feature/settings/src/main/module.json5文件为module.json。
5. 在applications/standard/hap/ohos.build文件module_list中增加launcher_hap模块和launcher_settings_hap模块编译。
6. 修改预编译配置build/prebuilts_download_config.json文件,把launcher依赖增加到npm_install_path列表中。
7. 执行预编译指令。
可以在应用源码中看到应用内的依赖已经被正确的加载。
- 执行源码编译指令。如果以下2个目录产物正确,则说明应用源码编译方式修改成功。
(1)在out/rk3568/obj/applications/standard/launcher目录中,会生成2个hap的编译产物。
(2)在out/rk3568/packages/phone/system/app/com.ohos.launcher目录中,是实际系统环境中的hap包产物。
9. 烧录系统验证功能。
Launcher正常启动:
系统应用目录文件正确:
随系统编译感觉不太可靠,所以才有的后者吧
不错不错,挺好的