公共基础库开发指导
接口说明
表 1 文件操作接口说明
int UtilsFileWrite(int fd, const char *buf, unsigned int len) |
|
文件操作使用示例:
// open && write
char fileName[] = "testfile";
static const char def[] = "utils_file_operation implement.";
int fd = UtilsFileOpen(fileName, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0);
printf("file handle = %d\n", fd);
int ret = UtilsFileWrite(fd, def, strlen(def));
printf("write ret = %d\n", ret);
// seek
ret = UtilsFileSeek(fd, 5, SEEK_SET_FS);
printf("lseek ret = %d\n", ret);
// read && close
char buf[64] = {0};
int readLen = UtilsFileRead(fd, buf, 64);
ret = UtilsFileClose(fd);
printf("read len = %d : buf = %s\n", readLen, buf);
// stat
int fileLen = 0;
ret = UtilsFileStat(fileName, &fileLen);
printf("file size = %d\n", fileLen);
// delete
ret = UtilsFileDelete(fileName);
printf("delete ret = %d\n", ret);
表 2 KV存储接口说明
int UtilsGetValue(const char* key, char* value, unsigned int len) |
|
KV存储使用示例:
// set
char key[] = "rw.sys.version_100";
char value[] = "Hello kv operation implement!";
int ret = UtilsSetValue(key, value);
printf("UtilsSetValue set ret = %d\n", ret);
// get
char temp[128] = {0};
ret = UtilsGetValue(key, temp, 128);
printf("UtilsGetValue get ret = %d, temp = %s\n", ret, temp);
// delete
ret = UtilsDeleteValue(key);
printf("UtilsDeleteValue delete ret = %d\n", ret);
开发步骤
LiteOS-A内核(Hi3516、Hi3518平台)KV存储的native应用开发步骤:
-
基于AbilityKit开发KV存储的native应用。
-
基于KV存储提供的接口编写用户程序,并编译出so(libLauncher.so)文件。
// set char key[] = "rw.sys.version_100"; char value[] = "Hello kv operation implement!"; int ret = UtilsSetValue(key, value); printf("UtilsSetValue set ret = %d\n", ret); // get char temp[128] = {0}; ret = UtilsGetValue(key, temp, 128); printf("UtilsGetValue get ret = %d, temp = %s\n", ret, temp); // delete ret = UtilsDeleteValue(key); printf("UtilsDeleteValue delete ret = %d\n", ret);
-
编写config.json文件,内容如下:
{ "app": { "bundleName": "com.huawei.launcher", "vendor": "huawei", "version": { "code": 1, "name": "1.0" } }, "deviceConfig": { "default": { "reqSdk": { "compatible": "zsdk 1.0.0", "target": "zsdk 1.0.1" }, "keepAlive": false }, "smartCamera": { "reqSdk": { "compatible": "zsdk 1.0.0", "target": "zsdk 1.0.1" }, "keepAlive": false } }, "module": { "package": "com.huawei.launcher", "name": ".MyHarmonyAbilityPackage", "deviceType": [ "phone", "tv","tablet", "pc","car","smartWatch","sportsWatch","smartCamera" ], "distro": { "deliveryWithInstall": true, "moduleName": "Launcher", "moduleType": "entry" }, "abilities": [{ "name": "MainAbility", "icon": "res/drawable/phone.png", "label": "test app 1", "launchType": "standard", "type": "page" }, { "name": "SecondAbility", "icon": "res/drawable/phone.png", "label": "test app 2", "launchType": "standard", "type": "page" }, { "name": "ServiceAbility", "icon": "res/drawable/phone.png", "label": "test app 2", "launchType": "standard", "type": "service" } ] } }
-
生成hap包。
- 按照如下目录结构存放文件,res/drawable下面放置资源文件:
- 将上述文件打包生成zip包,修改后缀为.hap,例如Launcher.hap
-
-
连接单板,通过串口向单板发送安装KV存储native应用的命令。
./nfs/dev_tools/bin/bm install -p /nfs/Launcher.hap
-
通过串口向单板发送运行KV存储native应用的命令。
./nfs/dev_tools/bin/aa start -p com.huawei.launcher -n ServiceAbility