成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

鴻蒙應用開發入門:進一步了解第一個例子里的細節

開發
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com/#zz

 [[360074]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

4.1 開發完第一個鴻蒙應用后,下面在了解一下完整的鴻蒙應用打包發布后應該是什么樣子:

一個完整的打包后應用結構如下圖所示,這里我們先了解結構,具體怎么打包很簡單只要前提是要簽名!


1. HAP的分類

HAP又可分為entry和feature兩種模塊類型:

1)entry:應用的主模塊。一個APP中,對于同一設備類型必須有且只有一個entry類型的HAP,可獨立安裝運行。

2) feature:應用的動態特性模塊。一個APP可以包含一個或多個feature類型的HAP,也可以不含。

2. HAP的組成

HAP是由代碼(Ability)、第三方庫、資源以及應用配置文件構成,只有包含Ability的HAP才能夠獨立運行。

1)Ability

Ability是應用所具備的能力的抽象,一個應用可以包含一個或多個Ability。Ability分為兩種類型:FA(Feature Ability)和PA(Particle Ability)。FA/PA是應用的基本組成單元,能夠實現特定的業務功能。FA有UI界面,而PA無UI界面。

2)庫文件

庫文件是應用依賴的第三方代碼形式,存放在libs目錄。

3)資源文件

應用的資源文件(字符串、圖片、音頻等)存放于resources目錄下

4)配置文件

配置文件 (config.json) 是應用的Ability信息,用于聲明應用的Ability,以及應用所需權限等信息

3. pack.info文件

描述應用軟件包中每個HAP的屬性,由IDE編譯生成,應用市場根據該文件進行拆包和HAP的分類存儲。

HAP的具體屬性包括:

1)delivery-with-install: 表示該HAP是否支持隨應用安裝。

2)name:HAP文件名。

3)module-type:模塊類型,entry或feature。

4)device-type:表示支持該HAP運行的設備類型。

4.2 config.json詳細細節

1. 應用的每個HAP的根目錄下都存在一個“config.json”配置文件,主要涵蓋以下三個方面:

1)應用的全局配置信息,包含應用的包名、生產廠商、版本號等基本信息。

2)應用在具體設備上的配置信息。

3)HAP包的配置信息,包含每個Ability必須定義的基本屬性(如包名、類名、類型以及Ability提供的能力),以及應用訪問系統或其他應用受保護部分所需的權限等。

2. config.json配置文件的內部結構

應用的配置文件“config.json”中由“app”、“deviceConfig”和“module”三個部分組成,缺一不可。

3. “config.json”文件約定

配置文件“config.json”采用JSON文件格式,由屬性和值兩部分構成:

1)屬性:屬性出現順序不分先后,且每個屬性最多只允許出現一次。

2)值:每個屬性的值為JSON的基本數據類型(數值、字符串、布爾值、數組、對象或者null類型)。

學習建議:根據官方文檔自己做一個思維導圖,做的過程中熟悉,用的時候查詢,我學習的時候做的,附件在后面,需要一個叫MindMaster的思維導圖工具打開。做完思維導圖系統地熟悉一遍這個配置項后,再在下面的練習中,把每個配置項目的意思備注后面,加深印象。

練習1:認一遍app部分,把說明注釋在第一個例子的app配置后面:

  1. "app": { //表示應用的全局配置信息,就像這樣,后面的自己做...... 
  2.   "bundleName""com.example.myapplication"
  3.   "vendor""example",  
  4.   "version": { 
  5.     "code": 1,  
  6.     "name""1.0"   
  7.   }, 
  8.   "apiVersion": {  
  9.     "compatible": 3,   
  10.     "target": 3  
  11.   } 
  12. }, 

 練習2:認一遍deviceConfig部分,把說明注釋在后面:

  1. "deviceConfig": {//表示應用在具體設備上的配置信息。 
  2.   "default": {  
  3.     "process""com.huawei.hiworld.example"
  4.     "directLaunch"false
  5.     "supportBackup"false
  6.     "network": { 
  7.       "usesCleartext"true
  8.       "securityConfig": { 
  9.         "domainSettings": {  
  10.           "cleartextPermitted"true,  
  11.           "domains": [ 
  12.             { 
  13.               "subDomains"true
  14.               "name""example.ohos.com" 
  15.             } 
  16.           ] 
  17.         } 
  18.       } 
  19.     } 
  20.   } 

 練習3:認一遍認一下module部分,把說明注釋在后面:

  1. "module": {//表示HAP包的配置信息。該標簽下的配置只對當前HAP包生效。 
  2.   "package""com.example.myapplication",  
  3.   "name"".MyApplication"
  4.   "reqCapabilities": [ 
  5.     "video_support"   
  6.   ], 
  7.   "deviceType": [ 
  8.     "tv" 
  9.   ], 
  10.   "distro": { 
  11.     "deliveryWithInstall"true
  12.     "moduleName""entry"
  13.     "moduleType""entry" 
  14.   }, 
  15.   "abilities": [ 
  16.     { 
  17.       "skills": [ 
  18.         { 
  19.           "entities": [ 
  20.             "entity.system.home" 
  21.           ], 
  22.           "actions": [ 
  23.             "action.system.home" 
  24.           ] 
  25.         } 
  26.       ], 
  27.       "orientation""landscape",  
  28.       "formEnabled"false
  29.       "name""com.example.myapplication.MainAbility"
  30.       "icon""$media:icon"
  31.       "description""$string:mainability_description"
  32.       "label""MyApplication"
  33.       "type""page"
  34.       "launchType""standard" 
  35.     }, 
  36.     { 
  37.       "orientation""landscape"
  38.       "formEnabled"false
  39.       "name""com.example.myapplication.Secondbility"
  40.       "icon""$media:icon"
  41.       "description""$string:secondbility_description"
  42.       "label""entry"
  43.       "type""page"
  44.       "launchType""standard" 
  45.     } 
  46.   ] 

 4.3 進一步了解資源目錄的細節

1. 資源文件的知識點

應用的資源文件都在resources目錄下,resources子目錄分兩大類目錄:具體的知識點,同樣我們做成思維導圖,見后面附件。

2. 資源文件的使用

base目錄與限定詞目錄中的資源文件:通過指定資源類型(type)和資源名稱(name)來引用。

1)Java文件引用資源文件的格式:

(1)普通資源:ResourceTable.type_name。

(2)系統資源,則采用:ohos.global.systemres.ResourceTable.type_name。

(3)目前支持的系統資源文件:

① ic_app:表示HarmonyOS應用的默認圖標,類型為媒體。

② request_location_reminder_title:表示“請求使用設備定位功能”的提示標題,類型為字符串。

③ request_location_reminder_content:表示“請求使用設備定位功能”的提示內容,類型為字符串。

示例一:在Java文件中,引用系統資源。

  1. ResourceManager rsManager = this.getResourceManager(); 
  2. try { 
  3.     String str = rsManager 
  4.             .getElement(ohos.global.systemres.ResourceTable. 
  5.                     String_request_location_reminder_title).getString(); 
  6.     Text text = (Text) findComponentById(ResourceTable.Id_text); 
  7.     text.setText(str); 
  8. } catch (Exception e) { 
  9.     terminateAbility(); 

 示例二:在Java文件中,引用string.json文件中類型為“String”、名稱為“app_name”的資源。

string.json的例子:

  1.     "color":[ 
  2.         { 
  3.             "name":"red"
  4.             "value":"#ff0000" 
  5.         }, 
  6.         { 
  7.             "name":"red_ref"
  8.             "value":"$color:red" 
  9.         } 
  10.     ] 
  11.  
  12. ohos.global.resource.ResourceManager resManager = getResourceManager(); 
  13. int color = resManager.getElement(ResourceTable.Color_red).getColor(); 

 示例四:在Java文件中,獲取profile中的文件內容。

  1. Resource resource = null
  2. try { 
  3.     Text text = (Text) findComponentById(ResourceTable.Id_text); 
  4.     resource = getResourceManager().getResource(ResourceTable.Profile_test1); 
  5.     InputStreamReader inputStreamReader = new InputStreamReader(resource, "utf-8"); 
  6.     BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
  7.     String lineTxt = ""
  8.     while((lineTxt = bufferedReader.readLine()) != null){ 
  9.         text.append(","+lineText); 
  10.     } 
  11. } catch (Exception e) { 
  12.      

 2)XML文件引用資源文件的格式:

(1)普通資源,$type:name

(2)系統資源,則采用:$ohos:type:name。

在XML文件中,引用 string.json文件中類型為“String”、名稱為“app_name”的資源,示例如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos" 
  3.     ohos:width="match_parent" 
  4.     ohos:height="match_parent" 
  5.     ohos:orientation="vertical"
  6.     <Text ohos:text="$string:app_name"/> 
  7. </DirectionalLayout> 

 9. rawfile目錄中的資源文件

通過指定文件路徑和文件名稱來引用。

在Java文件中,引用一個路徑為“resources/rawfile/”、名稱為“ttt.txt”的資源文件,示例如下:

  1. Resource resource = null
  2. try { 
  3.     Text text = (Text) findComponentById(ResourceTable.Id_text); 
  4.     resource = getResourceManager().getRawFileEntry("resources/rawfile/ttt.txt").openRawFile(); 
  5.     InputStreamReader inputStreamReader = new InputStreamReader(resource, "utf-8"); 
  6.     BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 
  7.     String lineTxt = ""
  8.     while((lineTxt = bufferedReader.readLine()) != null){ 
  9.         text.append(","+lineTxt ); 
  10.     } 
  11. } catch (Exception e) { 
  12.  

 文章配套視頻課程《鴻蒙手機應用開發入門》https://edu.51cto.com/course/26133.html

©著作權歸作者和HarmonyOS技術社區共同所有,如需轉載,請注明出處,否則將追究法律責任

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com/#zz

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2015-10-19 14:57:51

2009-12-28 10:08:07

OracleSQLDevelope開發框架

2011-07-27 12:58:43

Android MarAndroid應用商店

2011-07-29 15:02:22

LifeSize視頻協作

2020-12-10 20:00:04

數字貨幣比特幣區塊鏈

2023-09-01 18:20:43

Chrome代碼測試版

2019-03-22 10:20:39

加速Windows 10啟動

2020-11-12 09:29:29

5G

2009-03-19 19:00:35

虛擬化VmwareEMC

2009-08-26 14:48:05

C#委托與事件

2024-05-10 15:09:34

2010-03-15 09:40:19

Windows 8研發

2014-01-08 10:22:28

思科Videoscape

2009-11-30 18:35:05

BizSparkDreamSparkWebSiteSpar

2012-04-30 21:35:08

Windows Pho

2020-09-22 10:49:12

大數據旅游技術

2013-06-17 11:53:49

思科云服務思科

2021-04-05 18:06:36

谷歌安卓Google Play

2009-03-31 11:12:59

萬兆以太網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费一级欧美在线观看视频 | 久青草影院 | 国产一区不卡 | 国产精品一区二区欧美黑人喷潮水 | 色视频www在线播放国产人成 | 国产在线视频一区二区董小宛性色 | 日本久久精品视频 | 日韩综合| 色综合99 | 亚洲国产精品一区 | 69热视频在线观看 | 国产一区精品 | 91视频在线看 | 日韩精品免费视频 | 欧美日韩国产一区二区 | 免费成人高清在线视频 | 成人在线视频免费播放 | 五月婷婷中文 | 精品少妇一区二区三区日产乱码 | 在线观看日本高清二区 | 毛片免费观看 | 成年人在线观看 | 自拍偷拍亚洲一区 | 国产亚洲一区二区三区 | 成人在线小视频 | 国产高清视频一区二区 | 欧美精品一区二区三区蜜臀 | 亚洲成人精选 | 欧美日韩一区二区在线 | 在线观看免费高清av | 在线免费av观看 | 亚洲精品免费在线观看 | 国产精品免费一区二区三区四区 | 中文字幕二区 | 色婷婷综合久久久中字幕精品久久 | 天堂成人av | 亚洲九色 | 色吊丝2288sds中文字幕 | 久久久久国产一区二区三区四区 | 亚洲成人一区二区 | 亚洲视频在线播放 |