#创作者激励#OpenHarmony full-SDK编译替换,看这一篇就够了 原创
OpenHarmony full-SDK编译替换,看这一篇就够了
【本文正在参加2023年第一期优质创作者激励计划】
坚果,润开鸿技术专家,华为HDE,InfoQ签约作者,OpenHarmony布道师,多个平台的专家博主。
@TOC
full-SDK是提供OpenHarmony全量接口的SDK,包含了系统应用所需要的高权限API,用于厂商开发应用。
今天要用到full SDK ,但是从OpenHarmony3.2Beta5版本开始,不在随版本提供full-SDK。这个时候就需要我们自己编译了。
下载和编译
我们可以在自己的虚拟机环境里,新建一个fullsdk的目录
mkdir fullsdk
然后cd进入
cd fullsdk
这个时候就可以下载代码了
1.初始化manifest:
repo init -u https://gitee.com/openharmony/manifest.git -b $manifest_branch --no-repo-verify --repo-url=https://gitee.com/oschina/repo --no-clone-bundle
$manifest_branch:选择想要的分支,我这里选择的master分支
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify --repo-url=https://gitee.com/oschina/repo --no-clone-bundle
2.根据上面下载的manifest仓进行下载代码:
repo sync -c -d --force-sync
3.预编译
yes y | apt install libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev && rm -rf prebuilts/clang/ohos/darwin-x86_64/clang-480513 && rm -rf prebuilts/clang/ohos/windows-x86_64/clang-480513 && rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513 && bash build/prebuilts_download.sh -ndk && apt-get update -qqy && apt-get install doxygen -y --force-yes
上面的命令也可以分开执行
如果出现权限问题,可以加sudo
sudo apt install libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
rm -rf prebuilts/clang/ohos/darwin-x86_64/clang-480513
rm -rf prebuilts/clang/ohos/windows-x86_64/clang-480513
rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513
rm -rf prebuilts/clang/ohos/linux-x86_64/clang-480513
bash build/prebuilts_download.sh -ndk
执行
repo forall -c 'git lfs pull'
如果出现权限问题,可以加sudo
sudo apt-get update -qqy
如果出现权限问题,可以加sudo
sudo apt-get install doxygen -y --force-yes
这个时候是可以编译成功的
4.编译
./build.sh --product-name ohos-sdk
5.导出
编译成功后导出即可
这个时候就可以继续后面 的替换步骤了
打开DevEco Studio——>Tools——>OpenHarmony SDK Manager,查看本地SDK安装路径。发现在D:\Program\OpenHarmony\Sdk下,版本为3.2.10.6。
替换SDK
1.确认下载的SDK版本是否为full-SDK
2.检查下载文件名是否包含full-SDK字样
3.检查api中是否包含系统API
(@ohos.app.ability.abilityManager.d.ts、@ohos.app.form.formInfo.d.ts、@ohos.bluetooth.d.ts等)
注:系统api判定标准以发布api指导文档为主。
4.替换SDK
替换SDK,以public-SDK-3.x.x.x版本为例。
以windows为例:
a.解压已下载的full-SDK文件:ets-windows-3.x.x.x-Release.zip
b.替换SDK文件
5.备份本地SDK
备份本地SDK(复制并重命名ets目录下版本信息目录名,或者将ets目录拷贝至其他本地路径)
打开获取到的本地已安装SDK文件路径并进行备份。
注:备份版本信息目录名称只要与其下oh-uni-package.json
配置文件的version字段不一致即可,如下图所示,备份3.2.10.6版本sdk
oh-uni-package.json
文件配置信息如下,其中,apiVersion
的值以SDK对应的API version为准,version
的值以SDK文件的版本号为准:
{
"apiVersion": "9",
"displayName": "Ets",
"meta": {
"metaVersion": "3.0.0"
},
"path": "ets",
"releaseType": "Beta5",
"version": "3.2.10.6"
}
6.删除原SDK
删除原SDK(3.x.x.x)目录中的所有文件(否则可能会导致文件无法全部覆盖)
7.拷贝full-SDK至本地SDK路径
将下载的full-SDK文件包中ets
目录下的所有文件替换至本地SDK路径下ets\3.x.x.x
目录中
8.修改oh-uni-package.json
配置文
修改oh-uni-package.json
配置文件的version字段为当前SDK版本号
9.下载node_modules依赖包
在3.x.x.x\build-tools\ets-loader
目录中打开cmd/powerShell窗口,输入命令npm install
下载node_modules依赖包
10.验证系统API接口
然后就可以使用了
下载代码容易EOF,下载了几天也没下完。。。有其他下载方式吗
每日构建
666
每日构建上下载的sdk,npm install后代码build不通过