关于harmonyos:HarmonyOSHAP唯一性校验逻辑
HAP是利用装置的根本单位,在DevEco Studio工程目录中,一个HAP对应一个Module。利用打包时,每个Module生成一个.hap文件。 利用如果蕴含多个Module,在利用市场上架时,会将多个.hap文件打包成一个.app文件(称为Bundle),但在云端散发和端侧装置时,依然是以HAP为根本单位。 为了可能失常散发和装置利用,须要保障一个利用装置到设施时,Module的名称、Ability的名称不反复,并且只有一个Entry类型的Module与指标设施绝对应。 DevEco Studio会在编译构建时,对HAP进行上述唯一性校验,如果校验不通过,将会编译失败或给出告警。 阐明以后仅在API 8的工程中,针对distrofilter进行打包校验。Module校验逻辑校验目标:同一指标设施上Module惟一。 1.校验Module的Name。如果多个Module的Name不同,则校验通过。如果Name雷同,持续校验deviceType。 2.校验设施类型deviceType。如果deviceType不相交,则校验通过。如果deviceType相交,持续校验distroFilter。 deviceType不相交是指两个Module的deviceType中配置了齐全不同的设施,例如: //Module1和Module2配置了齐全不同的设施,deviceType不相交。//Module1{ "deviceType": ["TV", "tablet"]}//Module2{ "deviceType": ["car", "router"]}deviceType相交是指两个Module的deviceType中蕴含了雷同的设施,例如: //Module1和Module2因为都蕴含“tablet”设施,导致deviceType相交。//Module1{ "deviceType": ["TV", "tablet"]}//Module2{ "deviceType": ["car", "tablet"]}3.校验散发规定distroFilter。如果distroFilter不相交,则校验通过。如果distroFilter相交,则无奈保障Module唯一性,校验失败,打包失败。 distroFilter中蕴含属性apiVersion、screenShape、screenWindow、screenDensity和countryCode。相交的相干含意如下: distroFilter不相交:如果两个distroFilter中任意一个属性不相交,则两个distroFilter不相交。distroFilter相交:如果两个distroFilter中所有属性都相交,则两个distroFilter相交。例如,两个Module中的apiVersion、screenShape、screenWindow、screenDensity都相交,但countryCode不相交,则能够辨别两个Module,校验通过。 //Module1和Module2的两个distroFilter中,countryCode不相交,则两个distroFilter不相交。//Module1{ "distroFilter": { "apiVersion" : { "policy": "include", "value": [8,9] }, "screenShape": { "policy": "include", "value": ["rect"] }, "screenWindow": { "policy": "include", "value": ["454*454", "466*466"] }, "screenDensity": { "policy": "include", "value": ["ldpi", "xldpi"] }, "countryCode": { "policy": "include", "value": ["CN", "HK"] } }}//Module2{ "distroFilter": { "apiVersion" : { "policy": "include", "value": [8,9] }, "screenShape": { "policy": "include", "value": ["rect"] }, "screenWindow": { "policy": "include", "value": ["454*454", "466*466"] }, "screenDensity": { "policy": "include", "value": ["ldpi", "xldpi"] }, "countryCode": { "policy": "include", "value": ["USA", "UK"] } }}Ability校验逻辑校验目标:同一指标设施上Ability惟一。 ...