离线openHarmonySdk鸿蒙系统动态库的封装
1、下载DevEco Studio开发工具并安装好
https://developer.huawei.com/consumer/cn/download/
2、 下载需要版本的openHarmonySdk
File->Settings->OpenHarmonySdk
3、创建NativeC++工程
默认工程是华为harmonySdk开发环境,我们这里配置openHarmonySdk开发环境,配置如下:
假设项目名为:MyApplication15
3、讲代码文件复制到entry->src->cpp文件下
4、在CmakeList文件中添加需要用到的所有c/cpp文件
5、entry/buil-profile.json5配置
如上主要修改"abiFilters": [“arm64-v8a”,“armeabi-v7a”]
6、buil-profile.json5配置(主目录下的文件,注意和步骤5区分)
在这里,将需要用的sdk版本好修改(这里为12),以及对"runtimeos"修改为openHarmony
7、local.properites目录配置
sdk.dir=D:/Program Files/Huawei/OpenHarmonySDK #步骤2在线下载的路径可配置
hwsdk.dir=D:/Program Files/Huawei/DevEco Studio/sdk #安装软件自动生成的
添加下载SDK的位置,注意分为华为鸿蒙SKD和open鸿蒙SDK,两个是不一样的,默认创建工程是华为鸿蒙,现在我们所有配置是open鸿蒙SDK。
8、File->Project Struct->BaseInfo
查看版本配置是否我们选择的:
9、进行编译得到动态库,如下entry->build->intermediates->libs->default
10、离线主机配置
(1)将DevEco Studio正常安装
(2)将步骤2下载的openHarmonySdk拷贝到目标主机
(3)将工程直接拷贝到目标主机,保持路径一致,默认是在C盘,如下
(4)打开项目,对1-8步骤的配置进行检查,没有问题后编译即可
注:鸿蒙系统和安卓接封装类似,函数接口都要按照规定的方式进行转换,转换的接口代码在entry->src->cpp->napi_init.cpp文件中实现,如果没有转换,则需要动态库调用者实现转换,转换的方法根据规则实现,如下为默认的加法(double类型)函数转换:
static napi_value Add(napi_env env, napi_callback_info info)
{size_t argc = 2;napi_value args[2] = {nullptr};napi_get_cb_info(env, info, &argc, args , nullptr, nullptr);napi_valuetype valuetype0;napi_typeof(env, args[0], &valuetype0);napi_valuetype valuetype1;napi_typeof(env, args[1], &valuetype1);double value0;napi_get_value_double(env, args[0], &value0);double value1;napi_get_value_double(env, args[1], &value1);napi_value sum;napi_create_double(env, value0 + value1, &sum);return sum;}