#鸿蒙学习大百科#ArkTS有全局强制切换线程执行吗? 以及相对应调度的接口吗?
Worker通过PostMessage往父线程抛任务。TaskPool通过sendData往父线程发消息,触发任务。下面是PostMessage和sendData接口代码。PostMessage接口代码:import{worker}from'kit.ArkTS';constworkerInstancenewworker.ThreadWorker("entryetsworkersworker.ets");letbuffernewArrayBuffer(8);workerInstance.postMessage(buffer,[buffer]);sendData接口代码:import{taskpool}from'kit.ArkTS';ConcurrentfunctionConcurrentFunc(num:number):number{letres:numbernum10;taskpool.Task.sendData(res);returnnum;}
#鸿蒙学习大百科#多个研发小组同时进行,如何能够确保HSP版本号都是一致?
如果多个小组分别开发模块的情况下,HSP和宿主HAP一起安装时,校验非常严格,包名、版本号、sdk版本号、releaseType这些全部需要一致。可以通过打包工具:版本归一指令(versionNormalize),将多个HAP、HSP的版本统一。参考代码:javajarpath\apppackingtool.jarmodeversionNormalizeinputlist1.hap,2.hspversioncode1000001versionname1.0.1outpathpath\out\
#鸿蒙学习大百科#在系统安全能力方面,哪些是自有,哪些需要进一步适配?
应用沙箱隔离、权限管理、App签名、代码签名、应用加密、数据分级标签、SELinux、Capability、CFI、堆栈保护、安全启动、系统OTA升级安全、内核完整性保护、MAC随机化、安全芯片管理框架、TEE这些是系统机制。混淆加固(默认开启)、EL1EL2类文件加密、EL3EL4类文件加密、DLP数据版权保护、密码自动填充、FIDOIFAA、人脸认证、分布式认证、指纹认证、PIN认证、密码自动填充、FIDOIFAA、设备风险查询、开发者实名、申请开发者证...
#鸿蒙学习大百科#HAR包可以用很多帐号上传吗?如果新建包怎么搞?
一般情况下,HAR包只能由第一任作者上传。如果是新建包,能够多帐户上传,那么需要在模块级ohpackage.json5文件的name字段,配置<group><package>类型的值。如果带有<group>类型的值的包则需要在仓上先新建组织,再添加用户进组织才能上传。
#鸿蒙学习大百科#想要在我的应用中,获取到其他应用HAP包信息,怎么操作?
据了解,查询系统内其他应用信息的API暂时只提供给系统应用使用,可以这样操作:查询系统内指定应用信息需要获取normal级权限"ohos.permission.GETBUNDLEINFO",使用接口bundleManager.getApplicationInfo()。查询系统内所有应用信息需要获取systembasic级权限"ohos.permission.GETINSTALLEDBUNDLELIST",使用接口bundleManager.getAllApplicationInfo()。
#鸿蒙学习大百科#怎样把事件控制在某一个UIAbility实例中传递?
在UIAbility中使用EventHub订阅事件,EventHub模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。import{UIAbility}from'kit.AbilityKit';exportdefaultclassEntryAbilityextendsUIAbility{onForeground(){this.context.eventHub.on('myEvent',this.eventFunc);this.context.eventHub.emit('myEvent');this.context.eventHub.emit('myEvent',1);this.context.eventHub.emit('myEvent',1,2);}eventFunc(argOne:number,argTwo:number){console.log('eventFunciscalled,${argOne},${argTwo}');}}
#鸿蒙学习大百科#当程序运行时时候,无法获取resource路径怎么办?
就是没办法获得,因为应用以HAP形式进行安装,安装完成后不会解压HAP包。但是可以考虑使用$r或者$rawfile访问的方式获取资源文件,这种方式适合静态访问,程序运行时不改变资源路径。还可以使用ResourceManage访问的方式获取资源文件。这种方式适合动态访问,程序运行时可动态改变资源路径。
#鸿蒙学习大百科#想要一个应用数据持久化的存储,怎么操作?
想要实现应用数据持久化存储,可以用PersistentStorage类去实现。将特定标记的持久化数据链接到AppStorage中,并由AppStorage接口访问对应持久化数据。PersistentStorage持久化后的数据会生成本地xml文件保存,文件路径为dataappel2100base<bundleName>haps<hapName>filespersistentstorage。具体操作代码如下:AppStorage.link('varA');PersistentStorage.persistProp("varA","111");EntryComponentstructIndex{StorageLink('v...
#鸿蒙学习大百科#如何查询文件夹下所有文件名(包含子目录)?
import{common}from'kit.AbilityKit';importfsfrom'ohos.file.fs';EntryComponentstructIndex{privatecontextgetContext(this)ascommon.UIAbilityContext;build(){Row(){Column(){Text("Hello").fontSize(50).fontWeight(FontWeight.Bold).onClick(()>{letapplicationContextthis.context.getApplicationContext();letcacheDirapplicationContext.cacheDir;fs.listFile(cacheDir).then((filenames:Array<string>)>{cacheDir目录下的所有文件(包含子目录)console.log(""+filenames.toString())})})}.width('100%')}.height('100%')}}
#鸿蒙学习大百科#如何将文件进行移动?
import{common}from'kit.AbilityKit';importfsfrom'ohos.file.fs';EntryComponentstructIndex{privatecontextgetContext(this)ascommon.UIAbilityContext;build(){Row(){Column(){Text("Hello").fontSize(50).fontWeight(FontWeight.Bold).onClick(()>{letapplicationContextthis.context.getApplicationContext();letfilesDirapplicationContext.filesDir;letcacheDirapplicationContext.cacheDir;将fileDircache下的abc文件移动到cacheDir目录下fs.moveFile(filesDir+"cacheabc",cacheDir+"abc",0)})}.width('100%')}.height('100%')}}
#鸿蒙学习大百科#如何基于文件描述符打开文件流?
import{common}from'kit.AbilityKit';importfsfrom'ohos.file.fs';import{BusinessError}from'kit.BasicServicesKit';EntryComponentstructIndex{privatecontextgetContext(this)ascommon.UIAbilityContext;build(){Row(){Column(){Text("Hello").fontSize(50).fontWeight(FontWeight.Bold).onClick(()>{letapplicationContextthis.context.getApplicationContext();letcacheDirapplicationContext.cacheDir;fs.open(cacheDir+"...
#鸿蒙学习大百科#文件变动时间watchEvent.event 都有哪些情况?
监听事件发生后的回调。监听事件每发生一次,回调一次。0x1:INACCESS,文件被访问。0x2:INMODIFY,文件内容被修改。0x4:INATTRIB,文件元数据被修改。0x8:INCLOSEWRITE,文件在打开时进行了写操作,然后被关闭。0x10:INCLOSENOWRITE,文件或目录在打开时未进行写操作,然后被关闭。0x20:INOPEN,文件或目录被打开。0x40:INMOVEDFROM,监听目录中文件被移动走。0x80:INMOVEDTO,监听目录中文件被移动过来。0x100:INCREATE,监听...
#鸿蒙学习大百科#栅格系统默认将屏幕分为几类,分别是怎么区分的?
栅格系统默认断点将设备宽度分为xs、sm、md、lg四类,取值范围分别为:xs:[0,320)sm:[320,520)md:[520,840)lg:[840,+∞)单位为vp。如果不够用还可以启用xl,xxl两个断点。栅格系统以设备的水平宽度来区分不同的设备屏幕类别:xs最小宽度类型设备。sm小宽度类型设备。md中等宽度类型设备。lg大宽度类型设备。xl特大宽度类型设备。xxl超大宽度类型设备。