了解更多开源请访问:??????????????????????????????????????????????????在前面的章节中,我们使用fa模式来编写hap,而这次我们使用stage模式来创建HAP。注意:本章使用的是OpenHarmonyscreenshot的截图功能,因为截图权限是系统权限,所以需要在sdk中配置权限,方便hap的安装。介绍还是用的Dev-EcoStudio3.0,写的环境配置想改成SDK9,Model是Stage。程序结构MyApplication\entry\src\main.├─ets│├─Application│├─Component│├─controller│├─MainAbility│├─model│├─pages││├─index.ets││├─benchmarkTest.ets│└─subManualApiTest│├─res││└─image│└─Utils├─resources│├─base││├─element││├─media││└─profile│└─modulerawfile.json5└补充与SDK8相比,目录结构发生了一些变化。例如:添加了Application文件夹,改变了MainAbility的目录层次,原来的config.json变成了module.json5,添加了AppScope文件夹等。因此,添加页面的位置变成:"pages":"$profile:main_pages”在module.json5中,位置为:src/main/resources/base/profile/main_pages.json。src/main/resources/base/profile/main_pages.json{"src":["pages/index","pages/benchmarkTest",...]}修改bundleName所在位置为:MyApplication23\AppScope\app.json5.{"app":{"bundleName":"ohos.samples.myapplication","vendor":"example","versionCode":1000000,"versionName":"1.0.0","icon":"$media:app_icon","label":"$string:app_name","distributedNotificationEnabled":true}}性能测试这里的性能测试主要是了解调用函数接口时的耗时和可以传输的数据大小。所以写了相关的时间性能测试,稳定性能测试(避免时间意外)和带宽测试。时间性能测试:functiontest(func){letstart=newDate().getTime();//开始时间func();//执行待测函数letend=newDate().getTime();//接收时间console.log("Start:",Number(start),"ms")console.log("End:",Number(end),"ms")console.log("Spent:",Number(end-start),"ms")letmessage=""message+="Cost:"+Number(end-start)+"ms"+"\n"message+="Start:"+Number(start)+"ms;"+"End:"+Number(end)+"ms"+"\n"returnmessage//返回函数执行需要时间}添加截图功能查看本地d.ts位置添加@ohos.screenshotLocald.ts路径:C:\Users\xxx\AppData\Local\OpenHarmony\Sdk\ets\3.2.7.5\api\OpensourceHarmony系统源码文件位置:oh32/interface/sdk-js/api/@ohos.截图。d.ts,复制文件到本地路径,添加截图代码配置权限MyApplication23\entry\src\main\module.json5..."requestPermissions":[{"name":"ohos.permission.CAPTURE_SCREEN"},{"name":"ohos.permission.WRITE_MEDIA"},{"name":"ohos.permission.READ_MEDIA"}]此时由于权限问题,安装时会报错:prompt:Failedduetogrant请求权限失败。从错误日志看,安装失败的原因:由于未能授予请求的权限,安装失败。知道是权限问题,现在我们需要确认是哪个权限导致的。OpenHarmony涉及的权限级别,可以参考:查看应用权限级别。该文档列出了所有当前的OpenHarmony权限和权限级别。{"name":"ohos.permission.CAPTURE_SCREEN","grantMode":"system_grant","availableLevel":"system_core","provisionEnable":true,"distributedSceneEnable":false},{"name":"ohos.permission.WRITE_MEDIA","grantMode":"user_grant","availableLevel":"normal","provisionEnable":true,"distributedSceneEnable":true,"label":"$string:ohos_lab_write_media","description":"$string:ohos_desc_write_media"},{"name":"ohos.permission.READ_MEDIA","grantMode":"user_grant","availableLevel":"normal","provisionEnable":true,"distributedSceneEnable":true,"label":"$string:ohos_lab_read_media","description":"$string:ohos_desc_read_media"},如果权限级别值为:availableLevel:“system_core”/“system_basic”,需要在UnsgnedReleasedProfileTemplate.json中配置alcs字段,以及所需的高级权限位于acls中。具体方法如下:配置签名。路径为:“C:\Users\xxx\AppData\Local\OpenHarmony\Sdk\toolchains\3.2.7.5\lib\UnsgnedReleasedProfileTemplate.json”保存并更新自动签名。可以通过以下命令将测试结果本地发送到开发板。hdc_stdfilesend本地文件开发板目标路径从开发板拷贝文件到本地。hdc_std文件recv开发板文件本地目标路径总结OpenHarmony的蓝牙功能通过测试速度还是很快的,希望这个应用对社区的朋友有所帮助。了解更多开源知识,请访问:开源基础软件社区https://ost.51cto.com。
