日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā):從零開(kāi)始開(kāi)發(fā)HarmonyOS應(yīng)用

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

創(chuàng)新互聯(lián)是專業(yè)的網(wǎng)站建設(shè)公司,提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì)等網(wǎng)站開(kāi)發(fā)一體化解決方案;包括HTML5,小程序開(kāi)發(fā),網(wǎng)站定制,企業(yè)網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開(kāi)發(fā),響應(yīng)式網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè),軟件開(kāi)發(fā),軟文平臺(tái),網(wǎng)站營(yíng)銷。歡迎做網(wǎng)站的企業(yè)前來(lái)合作洽談,創(chuàng)新互聯(lián)將竭誠(chéng)為您服務(wù)!

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

https://harmonyos./#zz

2020年9月10日,HarmonyOS 2.0的發(fā)布對(duì)于IT界來(lái)說(shuō)又是一件翹首以盼的大事。發(fā)布會(huì)上,華為消費(fèi)者業(yè)務(wù)軟件部總裁王成錄為開(kāi)發(fā)者帶來(lái)了一個(gè)全面升級(jí)的華為鴻蒙版本,各方面能力的大幅提升,完整的應(yīng)用開(kāi)發(fā)生態(tài),超級(jí)終端的全場(chǎng)景生態(tài),即將開(kāi)啟移動(dòng)生態(tài)的下一下新紀(jì)元。

在參加完鴻蒙2.0的發(fā)布會(huì)后,又周轉(zhuǎn)于9月11日華為聯(lián)合南北向業(yè)務(wù)合作伙伴以及應(yīng)用生態(tài)合作伙伴共同主持的各技術(shù)分論壇活動(dòng)。作為一名從事移動(dòng)應(yīng)用相關(guān)產(chǎn)業(yè)近十余年的工作者,自然是對(duì)華為鴻蒙2.0提供的完整的應(yīng)用開(kāi)發(fā)生態(tài)更為感興趣。

《從零開(kāi)始開(kāi)發(fā)HarmonyOS應(yīng)用》是華為展示的第一個(gè)鴻蒙應(yīng)用示例,示例簡(jiǎn)單的介紹了多設(shè)備自適應(yīng)布局、輸入事件處理、和跨設(shè)備流轉(zhuǎn)。

1 創(chuàng)建應(yīng)用工程

使用 DevEco Studio 創(chuàng)建應(yīng)用工程,在菜單欄打開(kāi)“File>New>New Project”,在彈出的對(duì)話框中選擇java工程模板。

選擇好模板之后點(diǎn)擊“Next”,在下一個(gè)界面中指定“Project Name”和“Package Name”,然后點(diǎn)擊“Finish”即可建立工程。

 一個(gè)建立好的工程包含以下目錄:

2 設(shè)計(jì)用戶界面

在Java UI框架中,提供了兩種編寫(xiě)布局的方式:在XML中聲明UI布局和在代碼中創(chuàng)建布局。這兩種方式創(chuàng)建出的布局沒(méi)有本質(zhì)差別,此例主要通過(guò)XML的方式編寫(xiě)應(yīng)用的頁(yè)面。

2.1 XML編寫(xiě)頁(yè)面

2.1.1 新建XML頁(yè)面

在“Project”窗口,打開(kāi)“entry > src > main > resources > base”,右鍵點(diǎn)擊“base”文件夾,選擇“New > Directory”,命名為“l(fā)ayout”。

右鍵點(diǎn)擊“l(fā)ayout”文件夾,選擇“New > File”命名為“main_layout.xml”。

在“l(fā)ayout”文件夾下可以看到新增了“main_layout.xml”文件。

2.1.2 編寫(xiě)XML代碼

這個(gè)示例中自適應(yīng)布局的實(shí)現(xiàn),主要是基于AdaptiveBoxLayout新的布局樣式,它可以將布局在橫豎屏設(shè)備上進(jìn)行自適應(yīng)分布排列。開(kāi)發(fā)者可以將布局代碼寫(xiě)在“main_layout.xml”文件,關(guān)于布局代碼怎樣實(shí)現(xiàn)可以參考https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-layout-xml-0000000000500395。

如果布局中引用到圖片資源,需要將圖片放到 “resources>base>media ”。

2.2加載XML布局

在“Project”窗口中,選擇“entry > src > main > java > com.huawei.example.helloworld > slice”,打開(kāi)“MainAbilitySlice.java”文件。重寫(xiě)onStart()方法加載XML布局,示例代碼如下:

 
 
 
 
  1. 1.package com.huawei.example.helloworld.slice; 
  2. 2.import com.huawei.example.helloworld.ResourceTable; 
  3. 3.import ohos.aafwk.ability.AbilitySlice; 
  4. 4.import ohos.aafwk.content.Intent; 
  5. 5.  
  6. 6.public class MainAbilitySlice extends AbilitySlice { 
  7. 7.  
  8. 8.    @Override 
  9. 9.    public void onStart(Intent intent) { 
  10. 10.        super.onStart(intent); 
  11. 11.        super.setUIContent(ResourceTable.Layout_main_layout); // 加載XML布局 
  12. 12.    } 
  13. 13.  
  14. 14.    @Override 
  15. 15.    public void onActive() { 
  16. 16.        super.onActive(); 
  17. 17.    } 
  18. 18.  
  19. 19.    @Override 
  20. 20.    public void onForeground(Intent intent) { 
  21. 21.        super.onForeground(intent); 
  22. 22.    } 
  23. 23.} 

應(yīng)用運(yùn)行效果如圖所示:

3 輸入事件處理

輸入事件包括兩種,一種是觸控事件,一種是按鍵事件。

3.1 觸控事件

組件的一個(gè)重要作用是當(dāng)用戶點(diǎn)擊組件時(shí),會(huì)執(zhí)行相應(yīng)的操作或者界面出現(xiàn)相應(yīng)的變化。用戶點(diǎn)擊組件時(shí),組件對(duì)象將收到一個(gè)點(diǎn)擊事件。開(kāi)發(fā)者可以自定義響應(yīng)點(diǎn)擊事件的方法。例如,通過(guò)創(chuàng)建一個(gè)Component.ClickedListener對(duì)象,然后通過(guò)調(diào)用setClickedListener將其分配給組件。示例代碼如下:

 
 
 
 
  1. 1. //1.先導(dǎo)入ohos.agp.components.Image 
  2. 2. //2.從定義的xml中獲取Image對(duì)象 
  3. 3. Image remote = (Image) findComponentById(ResourceTable.Id_remote); 
  4. 4. //3.為Image設(shè)置點(diǎn)擊事件回調(diào) 
  5. 5. remote.setClickedListener(component -> { 
  6. 6.     //4.此處添加點(diǎn)擊按鈕后的事件處理邏輯 
  7. 7.      migrateAbility(); 
  8. 8. });? 

 3.2 按鍵點(diǎn)擊事件

當(dāng)設(shè)備按鍵按下時(shí),相應(yīng)的Ability對(duì)象將收到一個(gè)KeyEvent事件。開(kāi)發(fā)者可以自定義響應(yīng)點(diǎn)擊事件的方法。

一個(gè)示例代碼如下:

 
 
 
 
  1. 1.public boolean onKeyEvent(Component component, KeyEvent keyEvent) { 
  2. 2.    if (keyEvent.isKeyDown() 
  3. 3.            && keyEvent.getKeyCode() == KeyEvent.KEY_DPAD_CENTER 
  4. 4.            && component.getId() == ResourceTable.Id_remote) { 
  5. 5.        continueAbility(); 
  6. 6.        return true; 
  7. 7.    } 
  8. 8.    return false; 
  9. 9.} 

 4 跨設(shè)備流轉(zhuǎn)

4.1 申請(qǐng)權(quán)限

權(quán)限即系統(tǒng)用于控制第三方應(yīng)用或服務(wù)訪問(wèn)用戶敏感個(gè)人數(shù)據(jù)或操作敏感能力的授權(quán)方式,當(dāng)?shù)谌綉?yīng)用或服務(wù)嘗試訪問(wèn)用戶個(gè)人數(shù)據(jù)或操作敏感能力時(shí),系統(tǒng)通過(guò)彈窗的形式請(qǐng)求用戶授權(quán)。用戶可授權(quán)此應(yīng)用使用相關(guān)權(quán)限,后續(xù)也可取消此授權(quán)。例如打車類應(yīng)用為了定位,在獲取用戶的地理位置信息前需向用戶申請(qǐng),用戶同意此應(yīng)用使用,后續(xù)也可取消此授權(quán)。

當(dāng)使用“流轉(zhuǎn)”功能需要申請(qǐng)遷移權(quán)限D(zhuǎn)ISTRIBUTED_DATASYNC。

4.1.1 在config.json中聲明權(quán)限

 
 
 
 
  1. 1. "reqPermissions": [ 
  2. 2.  { 
  3. 3.   "name": "ohos.permission.DISTRIBUTED_DATASYNC" 
  4. 4.  } 
  5. 5. ] 

 4.1.2 在MainAbilitySlice.java中請(qǐng)求權(quán)限

 
 
 
 
  1. 1.private void migrateAbility() { 
  2. 2.    if (verifySelfPermission(SystemPermission.DISTRIBUTED_DATASYNC) 
  3. 3.            == IBundleManager.PERMISSION_GRANTED) { 
  4. 4.        this.continueAbility(); 
  5. 5.    } else { 
  6. 6.        requestPermission(SystemPermission.DISTRIBUTED_DATASYNC); 
  7. 7.    } 
  8. 8.} 

 4.2 跨設(shè)備流轉(zhuǎn)

僅continueAbility一行代碼即可完成應(yīng)用在設(shè)備之間流轉(zhuǎn),依托的還是鴻蒙OS的分布式軟總線、分布式數(shù)據(jù)庫(kù)的能力。在此基礎(chǔ)上將這些能力通過(guò)接口的形式提供開(kāi)發(fā)者。

事實(shí)上流轉(zhuǎn)并非“一行代碼可以完成”,如果開(kāi)發(fā)者想在流轉(zhuǎn)過(guò)程中做更多的事情,那么可以通過(guò)IAbilifyContinuation接口中的方法進(jìn)行實(shí)現(xiàn)。

IAbilityContinuation接口方法說(shuō)明如下:

接口名稱說(shuō)明

Ability以及AbilitySlice都需要實(shí)現(xiàn)IAbilityContinuation接口,并實(shí)現(xiàn)其中的方法。示例代碼如下 :

 
 
 
 
  1. 1. @Override 
  2. 2. public boolean onStartContinuation() { 
  3. 3.     return true; 
  4. 4. } 
  5. 5.  
  6. 6. @Override 
  7. 7. public boolean onSaveData(IntentParams intentParams) { 
  8. 8.     return true; 
  9. 9. } 
  10. 10.  
  11. 11. @Override 
  12. 12. public boolean onRestoreData(IntentParams intentParams) { 
  13. 13.     return true; 
  14. 14. } 
  15. 15.  
  16. 16. @Override 
  17. 17. public void onCompleteContinuation(int i) { 
  18. 18.  
  19. 19. }? 

 通過(guò)示例講解及代碼開(kāi)發(fā)過(guò)程解讀,新的布局管理,新的資源文件結(jié)構(gòu),預(yù)示更為簡(jiǎn)潔且功能更為強(qiáng)大的應(yīng)用開(kāi)發(fā)生態(tài)已經(jīng)誕生。相信豐富的系統(tǒng)API將帶給我們開(kāi)發(fā)者更多的便利及更強(qiáng)大的能力。

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

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

https://harmonyos./#zz


名稱欄目:鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā):從零開(kāi)始開(kāi)發(fā)HarmonyOS應(yīng)用
網(wǎng)站URL:http://m.5511xx.com/article/ccddgds.html