自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

HarmonyOS API Version 六關(guān)鍵差異點(diǎn)解讀

開(kāi)發(fā) 前端 OpenHarmony
不少開(kāi)發(fā)者表示希望看到一份完整的API差異說(shuō)明,這次,它來(lái)了,就讓我們來(lái)完整了解這份API差異報(bào)告吧。

[[412407]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

之前,我們?yōu)楦魑婚_(kāi)發(fā)者帶來(lái)首份API差異報(bào)告,收到眾多開(kāi)發(fā)者的熱捧。不少開(kāi)發(fā)者表示希望看到一份完整的API差異說(shuō)明,這次,它來(lái)了,就讓我們來(lái)完整了解這份API差異報(bào)告吧。

首先是版本信息說(shuō)明。目前發(fā)布HarmonyOS SDK 2.2.0.1(API Version 6 Beta 1),相較上一版本HarmonyOS SDK 2.1.1.21(API Version 5),SDK的變更主要體現(xiàn)在兩個(gè)方面,分別是Java API變更(API 6 -> API 5)和JS API變更(API 6 -> API 5)。下面讓我們正式進(jìn)入差異報(bào)告解讀。

一、JS API變更(API 6 -> API 5)

1. 新增提供功能子系統(tǒng)的API

相較于 JS API Version 5 ,JS API Version 6新增API如下表所示:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

2. 變更差異

JS API Version 6,新增了較多原子化服務(wù)相關(guān)的接口,本文列舉了部分新增接口。

更多詳細(xì)的更新內(nèi)容請(qǐng)?jiān)L問(wèn)官網(wǎng)鏈接:https://developer.harmonyos.com/cn/docs/documentation/doc-releases/apidiff-js-api-6-phone-component-0000001170697425

(1)JS UI框架子系統(tǒng)

新增了媒體、畫(huà)布、柵格組件,如下表所示:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

(2) 泛sensor子系統(tǒng)

新增了方向傳感器及陀螺儀傳感器的訂閱、取消訂閱接口,如下表所示:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

(3)文件子系統(tǒng)

原文件存儲(chǔ)“@system.file”接口,從API Version 6開(kāi)始不再維護(hù),推薦使用新接口’@ohos.fileio’進(jìn)行文件管理,新增部分接口如下表:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

(4)網(wǎng)絡(luò)子系統(tǒng)

原數(shù)據(jù)請(qǐng)求’@system.fetch’,從API Version 6開(kāi)始不再維護(hù),推薦使用新接口’@ohos.net.http’發(fā)起http數(shù)據(jù)請(qǐng)求。新增部分接口如下表:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

(5)分布式管理子系統(tǒng)

原數(shù)據(jù)存儲(chǔ)’@system.storage’,從API Version 6開(kāi)始不再維護(hù),推薦使用新接口’@ohos.data.storage’進(jìn)行數(shù)據(jù)管理。新增部分接口如下表:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

二、 Java API變更(API 6 -> API 5)

1. 基礎(chǔ)能力增強(qiáng)

(1)Intent新增MissionTop啟動(dòng)flag

Intent中新增了應(yīng)用通過(guò)missionTop模式啟動(dòng)的字段FLAG_ABILITY_MISSION_TOP。如果啟動(dòng)ability的現(xiàn)有實(shí)例已經(jīng)位于任務(wù)堆棧的頂部,則將重用該實(shí)例。否則,將創(chuàng)建新的ability實(shí)例。相關(guān)使用代碼如下:

  1. Intent intent = new Intent(); 
  2. Operation operation = new Intent.OperationBuilder() 
  3.         .withDeviceId(""
  4.         .withBundleName("com.demoapp"
  5.         .withAbilityName("com.demoapp.XxxAbility"
  6.         .withFlags(Intent. FLAG_ABILITY_MISSION_TOP) 
  7.         .build(); 
  8. intent.setOperation(operation); 
  9. startAbility(intent);  

(2)Intent新增文件打開(kāi)相關(guān)Action和Entity

Class ohos.utils.IntentConstants中新增了Action和Entity,用于文件打開(kāi),如下所示:

  1. String ACTION_EDIT_DATA = "ability.intent.EDIT_DATA"
  2. String ACTION_SELECT = "ability.intent.SELECT"
  3. String ACTION_SEND_DATA = "ability.intent.SEND_DATA"
  4. String ACTION_SEND_MULTIPLE_DATA = "ability.intent.SEND_MULTIPLE_DATA"
  5. String ACTION_SCAN_MEDIA_FILE = "ability.intent.SCAN_MEDIA_FILE"
  6. String ACTION_VIEW_DATA = "ability.intent.VIEW_DATA"
  7. String ENTITY_BROWSABLE = "entity.system.browsable"

開(kāi)發(fā)者需要打開(kāi)文件相關(guān)應(yīng)用時(shí),在Intent中設(shè)置對(duì)應(yīng)Action,代碼如下所示:

  1. Intent intent = new Intent(); 
  2. Operation operation = new Intent.OperationBuilder() 
  3.         .withDeviceId(“”) 
  4.         .withAction(IntentConstants.ACTION_EDIT_DATA) 
  5.         .withEntities(IntentConstants.ENTITY_BROWSABLE) 
  6.         .build(); 
  7. intent.setOperation(operation); 
  8. startAbility(intent); 

(3)FA流轉(zhuǎn)新增回調(diào)方法

Class ohos.aafwk.ability.continuation.IContinuationDeviceCallback 下新增了兩個(gè)方法,onConnected ( ContinuationDeviceInfo deviceInfo )和onDisconnected ( String deviceId )。用于在FA主動(dòng)流轉(zhuǎn)時(shí),在選擇設(shè)備列表選擇設(shè)備的回調(diào)中,新增設(shè)備名稱(chēng)參數(shù),讓?xiě)?yīng)用區(qū)分流轉(zhuǎn)的具體設(shè)備。其中ContinuationDeviceInfo中包含deviceId,deviceType,deviceName(新增)字段,開(kāi)發(fā)者可以根據(jù)需要獲取。

JAVA API 6 廢棄原有回調(diào)方法onDeviceConnectDone(StringdeviceId, String deviceType),onDeviceDisconnectDone(StringdeviceId);

2. 卡片服務(wù)能力強(qiáng)化

(1)實(shí)現(xiàn)卡片服務(wù)克隆

由于沒(méi)有卡片克隆功能,以往將卡片從舊設(shè)備遷移到新設(shè)備時(shí),系統(tǒng)默認(rèn)創(chuàng)建一個(gè)新的卡片,卡片原本攜帶的數(shù)據(jù)將不能克隆到新設(shè)備。本次更新,為卡片管理服務(wù)FMS適配了克隆接口,實(shí)現(xiàn)卡片的克隆。

(2)獲取卡片狀態(tài)

小藝建議是HarmonyOS2上一款主動(dòng)推薦當(dāng)下所需服務(wù)和應(yīng)用的智慧化助手,在卡片智能推薦中,當(dāng)卡片的狀態(tài)未完成之前,可能會(huì)給消費(fèi)者推薦一張空白卡片,這樣對(duì)于消費(fèi)者來(lái)說(shuō)毫無(wú)意義。本次版本更新,Class ohos.aafwk.ability.Ability中新增了onAcquireFormState(Intent)方法,提供獲取卡片狀態(tài)功能,通過(guò)調(diào)用onAcquireFormState,詢(xún)問(wèn)卡片狀態(tài)是否ready。只有卡片狀態(tài)ready的情況下,才會(huì)顯示在小藝建議推薦位。

(3)設(shè)置下一次卡片刷新時(shí)間

以往的卡片刷新,以30min作為一個(gè)基礎(chǔ)值,按照30*N(N=1、2、3、4…)來(lái)設(shè)置更新頻率。這無(wú)法滿(mǎn)足某些應(yīng)用如基金、航班類(lèi)的卡片刷新需求,因?yàn)閼?yīng)用希望能在某些時(shí)間段動(dòng)態(tài)的設(shè)置下次卡片的刷新時(shí)間。

本次版本更新中,Class ohos.aafwk.ability.Ability中新增了setFormNextRefreshTime(long,long)方法,設(shè)置下次卡片刷新時(shí)間,用于卡片動(dòng)態(tài)定時(shí)刷新。設(shè)置的時(shí)間間隔最小是5min,每天最多設(shè)置50次。卡片管理服務(wù)根據(jù)提供方設(shè)置的時(shí)間更新定時(shí)器,定時(shí)器到點(diǎn)后,觸發(fā)卡片應(yīng)用的更新回調(diào)。

3. 新增沙盒文件分享

(1) FileAbility

ohos.data.file類(lèi)中新增了FileAbility能力,提供應(yīng)用沙盒文件分享的能力,用于沙盒內(nèi)文件的分享。獲取沙盒文件的流程如下所示:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

class FileAbility中封裝了獲取文件信息的方法。

  1. public class FileAbility extends Ability { 
  2.     public FileAbility() { 
  3.         throw new RuntimeException("Stub!"); 
  4.     } 
  5.     public void onStart(Intent intent) { 
  6.         throw new RuntimeException("Stub!"); 
  7.     } 
  8.     public String getType(Uri uri) { 
  9.         throw new RuntimeException("Stub!"); 
  10.     } 
  11.     public String[] getFileTypes(Uri uri, String mimeTypeFilter) { 
  12.         throw new RuntimeException("Stub!"); 
  13.     } 
  14.     public FileDescriptor openFile(Uri uri, String mode) { 
  15.         throw new RuntimeException("Stub!"); 
  16.     } 
  17.     public static Uri getUriViaFile(Context context, String Authority, File file) { 
  18.         throw new RuntimeException("Stub!"); 
  19.     } 
  20.     public static File getFileViaUri(Uri uri) { 
  21.         throw new RuntimeException("Stub!"); 
  22.     } 

(2)FileAbility開(kāi)發(fā)步驟

Step 1 聲明:

config.json中配置FileAbility類(lèi),指明ability類(lèi)型為data, 權(quán)限配置 grantPermission : true。

  1.   "name""ohos.data.file.FileAbility"
  2.   "icon""$media:icon"
  3.   "description""$string:myfileability_description"
  4.   "type""data"
  5.   "visible"true
  6.   "uri""dataability://ohos.data.file.FileAbility"
  7.   "grantPermission"true 

Step 2 配置轉(zhuǎn)換關(guān)系:

在hap包內(nèi)resources/rawfile/ 目錄下新建fileability.json的配置文件,用于配置File到Uri轉(zhuǎn)換關(guān)系,同時(shí)指明哪些文件目錄可以用來(lái)分享。配置轉(zhuǎn)換關(guān)系后,路徑會(huì)轉(zhuǎn)換為對(duì)應(yīng)name。fileability.json的配置文件如下所示:

  1.   "paths": [ 
  2.   { 
  3.     "tag" : "fileability-external-path"
  4.     "name" : "external_storage_root"
  5.     "path" : "."  
  6.   }, 
  7.   { 
  8.     "tag" : "fileability-files-path"
  9.     "name" : "files-path"
  10.     "path" : "." 
  11.   }, 
  12.   { 
  13.     "tag" : "fileability-cache-path"
  14.     "name" : "cache-path"
  15.     "path" : "." 
  16.   }, 
  17.   { 
  18.     "tag" : "fileability-external-files-path"
  19.     "name" : "external_file_path"
  20.     "path" : "." 
  21.   }, 
  22.   { 
  23.     "tag" : "fileability-external-cache-path"
  24.     "name" : "external_cache_path"
  25.     "path" : "." 
  26.   }, 
  27.   { 
  28.     "tag" : "fileability-root-path"
  29.     "name" : "root-path"
  30.     "path" : "" 
  31.    } 
  32.   ] 

Step 3沙盒文件分享:

發(fā)送側(cè)調(diào)用getUriViaFile()

  1. File photoFile = new File(getFilesDir(), "test.jpg"); 
  2. Uri uri = FileAbility.getUriViaFile(getContext(), "/ohos.data.file.FileAbility ", photoFile); 
  3.     Intent intent1 = new Intent(); 
  4.     intent1.addFlags(0x00000001); 
  5.     intent1.addFlags(Intent.FLAG_NOT_OHOS_COMPONENT); 
  6.     intent1.setUriAndType(uri, "image/png"); 
  7.  
  8.     ElementName element = new ElementName(""
  9.     "com.os1devp.intentapplication2""com.os1devp.intentapplication2.MainAbility"); 
  10.     intent1.setElement(element); 
  11.     startAbility(intent1); 

接收側(cè)調(diào)用DataAbility.open()獲取文件句柄,處理沙盒文件:

  1. DataAbilityHelper helper = DataAbilityHelper.creator(getContext()); 
  2. Uri intentUri = intent.getOperation().getUri(); 
  3. FileDescriptor fs = helper.openFile(intentUri, "r"); 

4. 新增后臺(tái)代理提醒

(1)原方案

如下圖所示,在原來(lái)的方案中,通過(guò)Timer類(lèi)實(shí)現(xiàn)定時(shí)提醒,需要在后臺(tái)拉起或者喚醒應(yīng)用,導(dǎo)致后臺(tái)應(yīng)用對(duì)系統(tǒng)資源的占用,影響前臺(tái)應(yīng)用的用戶(hù)體驗(yàn)。

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

(2)改進(jìn)方案

能不能實(shí)現(xiàn)一個(gè)后臺(tái)代理提醒的功能?統(tǒng)一托管所有提醒業(yè)務(wù),在應(yīng)用凍結(jié)或者退出之后,仍可進(jìn)行倒計(jì)時(shí)、日歷、鬧鐘的系統(tǒng)提醒?,F(xiàn)在,他來(lái)了!

如下圖所示,開(kāi)發(fā)者可以使用后臺(tái)代理提醒的能力。通過(guò)后臺(tái)代理實(shí)現(xiàn)定時(shí)提醒的同時(shí),實(shí)現(xiàn)對(duì)后臺(tái)應(yīng)用的嚴(yán)格管控,減少后臺(tái)應(yīng)用被拉起或者喚醒次數(shù),從而節(jié)省系統(tǒng)資源的開(kāi)銷(xiāo)。

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

(3)新增內(nèi)容

如何實(shí)現(xiàn)后臺(tái)代理功能?在本次API更新中, Package ohos.event.notification中新增了5大基礎(chǔ)類(lèi),包括ReminderHelper、ReminderRequest、ReminderRequestTimer、ReminderRequestCalendar、ReminderRequestAlarm,基礎(chǔ)類(lèi)之間的關(guān)系如下圖所示:

HarmonyOS API Version 6關(guān)鍵差異點(diǎn)解讀-鴻蒙HarmonyOS技術(shù)社區(qū)

Class ReminderHelper中封裝了代理通知基本操作,包括發(fā)布定時(shí)提醒類(lèi)通知、注冊(cè)提醒類(lèi)需要使用的實(shí)例,取消指定的提醒類(lèi)通知、取消當(dāng)前應(yīng)用設(shè)置的所有提醒。

Class ReminderRequest中封裝了通知提醒的基本方法,包括獲取設(shè)置的提醒時(shí)長(zhǎng)、獲取設(shè)置的延遲提醒次數(shù)、獲取提醒的標(biāo)題等。

Class ReminderRequestTimer,提醒類(lèi)子類(lèi),用于鬧鐘類(lèi)提醒。

Class ReminderRequestCalendar,提醒類(lèi)子類(lèi),用于日歷類(lèi)提醒。

Class ReminderRequestAlarm,提醒類(lèi)子類(lèi),用于倒計(jì)時(shí)提醒。

5. 新增支持continueAbility免安裝拉起FA

在以往的跨端遷移過(guò)程中,需要兩臺(tái)設(shè)備都安裝對(duì)應(yīng)的FA,否則將無(wú)法實(shí)現(xiàn)跨端遷移。本次更新,增強(qiáng)了continueAbility接口功能,在指定deviceId情況下,如果檢測(cè)到遠(yuǎn)端設(shè)備未安裝FA,遠(yuǎn)端設(shè)備的框架會(huì)自動(dòng)向HAG查詢(xún)、下載并安裝FA并將其拉起。

此外,IAbilityContinuation接口中還新增了異?;卣{(diào)函數(shù)及錯(cuò)誤碼,如下所示:

  1. public interface IAbilityContinuation { 
  2.     int ERR_ABILITY_QUERY_FAILED = -2; 
  3.     int ERR_CONTINUE_TIMEOUT = -8; 
  4.     int ERR_DEVICE_OFFLINE = -9; 
  5.     int ERR_INSTALL_FREE_NOT_SUPPORTED = -4; 
  6.     int ERR_NETWORK_UNAVAILABLE = -3; 
  7.     int ERR_PARAMETER_INVALID = -6; 
  8.     int ERR_PERMISSION_DENIED = -5; 
  9.     int ERR_REMOTE_DEVICE_INCOMPATIBLE = -7; 
  10.     int ERR_UNKNOWN = -1; 
  11.     int SUCCESS = 0; 
  12.     default void onFailedContinuation(int errorCode) { 
  13.         throw new RuntimeException("Stub!"); 
  14.     } 

6. 其他新增功能

(1)StartAbility()

Class ohos.aafwk.ability.Ability中新增了帶有回調(diào)參數(shù)的方法startAbility(Intent,IAbilityStartCallback), 作用是在對(duì)端Ability免安裝成功拉起后,回調(diào)開(kāi)發(fā)者。避免了Ability在對(duì)端設(shè)備啟動(dòng)過(guò)程中的盲目等待。

(2)getIconId()、getLabelId()

Class ohos.bundle.ApplicationInfo中新增了getIconId()、getLabelId()兩個(gè)方法,用于在feature沒(méi)有配置HomeAbility的情況下,獲取到應(yīng)用的label和icon。Label是應(yīng)用的標(biāo)簽,icon為應(yīng)用的圖標(biāo)。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2015-08-10 17:58:22

騰訊社交LBS

2020-04-27 15:08:59

網(wǎng)絡(luò)安全審查辦法網(wǎng)絡(luò)安全攻擊

2015-03-27 22:23:28

FreeSyncLiquidVR

2023-03-17 07:53:20

K8sAPIServerKubernetes

2015-08-18 16:44:38

數(shù)據(jù)中心

2011-04-12 08:55:38

IDF2011看點(diǎn)

2023-04-21 19:07:08

數(shù)字科技趨勢(shì)

2019-01-28 10:10:36

開(kāi)源技術(shù) 趨勢(shì)

2021-06-29 10:52:03

數(shù)據(jù)安全法風(fēng)險(xiǎn)治理安全風(fēng)險(xiǎn)

2021-08-17 14:03:29

關(guān)鍵信息基礎(chǔ)設(shè)施網(wǎng)絡(luò)安全信息安全

2009-12-07 15:28:31

IBM智慧的地球智慧的保險(xiǎn)

2024-09-23 17:19:56

2017-02-21 17:25:51

架構(gòu)六邊形架構(gòu)數(shù)據(jù)庫(kù)

2018-02-08 15:46:22

白皮書(shū)

2015-09-23 16:46:54

架構(gòu)監(jiān)控運(yùn)維自動(dòng)化

2025-01-09 10:30:40

2015-09-21 13:41:47

高可用監(jiān)控系統(tǒng)運(yùn)維自動(dòng)化

2023-11-19 20:16:43

RESTAPIPOST

2009-03-03 12:54:58

2022-12-29 16:58:31

ChatGPT模型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)