目录
1、编译
1.1 正常编译
- repo sync -c -j16 同步代码(synch同步)
同步代码报错时:
1.快速找到第一个报错: repo sync -c -j16 -j1 --fail-fast
2.云端与本地不兼容报错需要强制更新一下某个文件(报错会提示强制同步对应文件):
repo sync --force-sync base/security/deviceauth
- 同步代码大面积失败时,环境重置
1.安装依赖包:
unix_time=`date '+%s'`;for one_tools in `curl -s -k https://gitee.com/landwind/openharmony_oneclick_env_init/raw/master/apt_install.list`;do echo "apt-get install -y ${one_tools}">>/tmp/openharmony_deps_${unix_time}.sh; done;sudo apt-get update;sudo bash -x /tmp/openharmony_deps_${unix_time}.sh
2.删除out: rm -rf out
3.重置工作区,删除所有修改(记得备份你改的代码):
repo forall -c "pwd;git reset --hard; git clean -fd"
4.更新最新代码:
repo sync -c -j8; repo forall -c "pwd;git lfs install;git lfs pull"
5.执行prebuilts下载脚本: bash build/prebuilts_download.sh
- 环境重置失败时,全部重置
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
(注:manifest清单,里面的.xml文件记录了所有文件的路径)
repo sync -c -j16
-----------一次性操作
repo forall -c 'git lfs pull'
bash build/prebuilts_download.sh
(注:代码同步后编译报错插件问题,说明插件有更新,执行一次更新插件)
./build/prebuilts_download.sh --no-check-certificatie -skip-ssl
- 同步代码成功时,编译【在master目录下】
一般情况下用这个命令就够了:
./build.sh --product-name rk3568 --ccache
更多功能使用:
./build.sh --export-para PYCACHE_ENABLE:true --product-name rk3568 --ccache --build-target make_all --build-target make_test
(注:其中 --build-target make_test 打印测试日志,目前阶段可以不加)
64位编译:
./build.sh --product-name rk3568 --ccache --build-target make_all --build-target make_test --target-cpu arm64 --gn-args enable_notice_collection=false
注:有时编译的时候三方库会出现未识别的标识符,直接删掉该目录或注释对应问题行,重新同步代码
- 编译失败时,使用三板斧
1.删除out, rm -rf out
2.更新工具链:./build/prebuilts_download.sh
3.更新二进制:repo forall -c "git lfs pull"
1.2 编译指定目录
./build.sh --product-name rk3568 --export-para BUILD_AOSP:false --export-para PYCACHE_ENABLE:true --build-target ability_runtime_test
(注:这里指定的目录是ability_runtime_test)
2、hdc工具
2.1 安装hdc工具
1.hdc的版本和设备版本保持一致,可自己编译最新hdc工具:
./build.sh --product-name ohos-sdk --ccache
2.源码根目录执行生成的hdc工具直接copy到本地路径(可将hdc_std.exe改为hdc.exe方便点),加入环境变量
- 冷知识:
win中到对应目录下的路径框输入cmd,cmd会直接进入当前路径
2.2 烧写部分文件
部分文件指修改后重新编译的那部分:
1.进入cmd:win+r
2.给hdc权限(经常会没有权限):hdc shell mount -o remount,rw /
3.修改完编译好,推对应的so包:hdc file send XXX\libabilityms.z.so /system/lib/
例:把libabilityms.z.so放到D盘下面,XXX就是D:\hdc_file,注意win中是\,linux中是/
4.设备重启
注:有时编译通过,但是刷机会卡在开机界面,这个时候需用编译失败三板斧重新编译
2.3 全部重新烧写
1.更新镜像config文件
2.更改镜像其他配置文件,把路径换了
3、打印日志
- hdc介绍及命令
鸿蒙设备连接器——HDC-开源基础软件社区-51CTO.COM
1.源文件添加日志,可用HILOG_ERROR()等 -- 格式符%{public}s 其中public可见,s表示string
2.源文件修改完编译好,推这个so包就行了,cmd推送命令
hdc file send XXX/libabilityms.z.so /system/lib/
3.收集hilog日志
hdc shell 进入设备(注:hdc在win中,不在shell中)
hilog -w start 启动日志落盘(把log保存成文件)
ls /data/log/hilog 查看日志
exit 退出
4.退出shell后,把设备中文件/data/log/hilog/* 拷贝到D盘下面,注意必须全名
hdc file recv /data/log/hilog/*001.gz D:\
5.使用notepad++打开进行查看
4、shell中一些常用命令
4.1 git
什么是git? 文件版本管理工具
什么是repo? git们的管家,执行repo就是执行了N个不同的git命令
git status 查看上次的状态(status)【必须进入到对应的小目录下】
本地同步时保留修改:
git stash 将本地的修改存放(stash)到栈 【进入到对应的小目录】
repo sync -c -j16 同步代码到本地
git stash pop 将栈的保存替换到本地,并清空栈
4.2 其他搜索命令
find -name *.hap | grep -E setting 搜索所有hap包中带setting的文件
history | grep -E ./build.sh 查看历史命令中带./build.sh的命令
4.3 配置bash快捷命令
vim ~/.bash_aliases
//把下面这些复制,保存(可根据自己需要进行配置)
alias 0='cd ~/OpenHarmony/master'
alias 1='cd ~/OpenHarmony/master/foundation/ability/ability_runtime'
alias 10='repo sync -c -j16'
alias 11='./build.sh --product-name rk3568 --ccache'
alias ..='cd ..'
alias ...='cd ../..'
alias ....='cd ../../..'
alias .....='cd ../../../..'
alias ......='cd ../../../../..'
//执行生效
source ~/.bash_aliases
5、IDE相关
5.1 本地IDE新增接口(OHOS还未更新接口的定义)
1、找到新增接口:码云->OpenHarmony->interface_sdk-js,点击Pull Requests->文件,可以看到里面【对应文件】新增的接口及其内容,注意本地IDE的SDK路径要与【对应文件】的路径保持一致!!!
2、找到对应API路径:C:\Users\xuzheheng\AppData\Local\OpenHarmony\Sdk\ets\3.2.2.5\api
路径 = 本地IDE的SDK路径 + 开发语言 + 开发版本
-
IDE点击Tools->SDK Manager查看SDK路径
-
查看开发语言和版本 - 在External Libraries下能看到eTs-3.2.2.5。
3、在上述路径新建同名的文件夹,将新增接口的内容填充进去,生成对应的HAP包
4、关于接口的使用参考:
https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-application-applicationContext.md
其中import时要注意去掉./这些。
6、应用开发工具使用
- 卸载文件:
hdc shell 进入shell
bm dump -a 显示所有文件
bm uninstall -n com.example.amsstageapplication 卸载对应文件“com.example.amsstageapplication”
- 安装文件:
hdc file send .\sign-normal.hap /data/ 把对应的hap包发送到板子/data/中
hdc shell 进入shell
cd /data 进入hap目录
bm install -p sign-normal.hap 在hap包所在的目录中安装
-
通过签名工具安装文件(推荐):
1、install–basic.bat使用用notepad++打开后,-inputFile后面改成生成的hap包地址(本地绝对地址)
2、配置好脚本后执行,给编译好的hap包签名并推包进入板子
3、然后点击install–basic.bat执行
其中.hap包就是编译成功的包。注意在build-default-outputs-default目录下