初識(shí) Harmony OS Next 開發(fā)【起航篇】

鴻蒙

在鴻蒙系統(tǒng)中,應(yīng)用服務(wù)主要以兩種形式存在:鴻蒙App 和元服務(wù)析恢。本文主要講一下兩者區(qū)別,以及開發(fā)環(huán)境的配置振亮。

APP

App 是指運(yùn)行在鴻蒙操作系統(tǒng)上的完整應(yīng)用程序,類似于其他移動(dòng)操作系統(tǒng)上的傳統(tǒng)應(yīng)用程序鞭莽。鴻蒙App 需要用戶通過應(yīng)用商店下載并安裝到設(shè)備上才能使用坊秸。它們通常提供了完整的功能集,能夠滿足用戶更復(fù)雜的需求

DevEco Studio

https://developer.huawei.com/consumer/cn/deveco-studio/

DevEco Studio 是華為為開發(fā)者提供的一個(gè)集成開發(fā)環(huán)境(IDE)澎怒,專門用于鴻蒙操作系統(tǒng)(HarmonyOS)應(yīng)用和元服務(wù)的開發(fā)褒搔。與 Android Studio 一樣,也是基于 IntelliJ IDEA 平臺(tái)構(gòu)建丹拯,簡(jiǎn)化鴻蒙應(yīng)用的開發(fā)站超、調(diào)試荸恕、測(cè)試和發(fā)布過程乖酬,幫助開發(fā)者更高效地創(chuàng)建高質(zhì)量的應(yīng)用程序

創(chuàng)建項(xiàng)目

一路 Next 就行了,沒有華為真機(jī)可以使用模擬器運(yùn)行


image.png

找到 Device Manager融求,我的賬號(hào)還走了一遍郵件申請(qǐng)流程咬像,如果沒有則忽略,直接點(diǎn) create 創(chuàng)建模擬器生宛,目前官方只提供了 Phone 手機(jī)端模擬器县昂,平板、手表暫不支持陷舅。

夸一下鴻蒙模擬器倒彰,運(yùn)行比隔壁的 Android 模擬器快多了!@痴觥待讳!


image.png

項(xiàng)目結(jié)構(gòu)概覽

  • AppScope/app.json5:App、元服務(wù)的全局配置信息(包名仰剿、應(yīng)用名创淡、版本、應(yīng)用圖標(biāo))南吮。
  • AppScope/resources:全局資源琳彩,級(jí)別高于 module/resources
  • entry:主包,module.json5 中 type 為 entry部凑,一個(gè)應(yīng)用或元服務(wù)只能有一個(gè)主包
  • module.json5:配置 abilities露乏、pages、requestPermission
{
  "module": {
    "name": "entry", // 模塊名
    "type": "entry", // 模塊類型
    "srcEntry": "./ets/myabilitystage/MyAbilityStage.ets", // 在ability啟動(dòng)之前涂邀,理解為 Android Application
    "description": "$string:module_desc", // 說明
    "mainElement": "EntryAbility", // 應(yīng)用主入口 ability
    "deviceTypes": [ // 支持的設(shè)備類型
      "phone",
    ],
    "requestPermissions": [  // 需要的權(quán)限
      {
        "name": "ohos.permission.INTERNET", // 網(wǎng)絡(luò)請(qǐng)求需要加該權(quán)限
      }
    ],
    "pages": "$profile:main_pages", // 頁面信息瘟仿,路由
    "abilities": [  // ability配置
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        "description": "$string:EntryAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:EntryAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "exported": true,
        "launchType": "specified",
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ]
      },
      {
        "name": "SecondAbility",
        "srcEntry": "./ets/secondability/SecondAbility.ets",
        "description": "$string:SecondAbility_desc",
        "icon": "$media:layered_image",
        "label": "$string:SecondAbility_label",
        "startWindowIcon": "$media:startIcon",
        "startWindowBackground": "$color:start_window_background",
        "launchType": "specified"
      }
    ],
    "extensionAbilities": [ // 應(yīng)用備份服務(wù)
      {
        "name": "EntryBackupAbility",
        "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets",
        "type": "backup",
        "exported": false,
        "metadata": [
          {
            "name": "ohos.extension.backup",
            "resource": "$profile:backup_config"
          }
        ]
      }
    ]
  }
}

hdc、ohpm的環(huán)境

hdc: 類似隔壁 Android 的 adb 命令行工具必孤,對(duì)機(jī)器進(jìn)行管理設(shè)備猾骡、文件管理瑞躺、端口控制等,開發(fā)元服務(wù)兴想,最好裝上這個(gè)工具

ohpm: 這又和前端的 npm 包管理服務(wù)一樣幢哨,進(jìn)行包的安裝、更新嫂便、發(fā)布等

  1. https://developer.huawei.com/consumer/cn/download/ 下載 Command Line Tools
image.png

2. 找到 ~/.bash_profile 文件配置下述環(huán)境變量

command-Line-tools-xxx 為你下載的文件名捞镰,自行更改 “OHPM_HOME” ,指向自己解壓的路徑

```
export OHPM_HOME=$HOME/Downloads/command-Line-tools-xxx 
export PATH=$OHPM_HOME/bin:$PATH
export PATH=$OHPM_HOME/sdk/default/openharmony/toolchains:$PATH
```

環(huán)境變量配置成功后毙替,執(zhí)行 source ~/.bash_profile 生效配置信息

元服務(wù)

元服務(wù)是鴻蒙對(duì)標(biāo)的微信小程序抱既,其設(shè)計(jì)目的是讓用戶無需安裝即可快速獲取特定的服務(wù)或功能,集成在系統(tǒng)級(jí)別哮肚。華為會(huì)對(duì)微信放開口子稚茅,再做一套生態(tài)嗎??????

創(chuàng)建元服務(wù)

開發(fā)前,需要注冊(cè)華為開發(fā)者帳號(hào)創(chuàng)建您的元服務(wù)

image.png

創(chuàng)建完后袱院,去DevEco Studio 創(chuàng)建你的元服務(wù)項(xiàng)目屎慢,一直 Next 執(zhí)行下去就好,過程中會(huì)讓你綁定剛才創(chuàng)建的元服務(wù)id

image.png

開發(fā)方式

對(duì)標(biāo)的微信小程序忽洛,那自然少不了一些工具來進(jìn)行項(xiàng)目間的轉(zhuǎn)換腻惠,下面介紹下主流的元服務(wù)開發(fā)方式

元服務(wù)原生

優(yōu)點(diǎn)

  • 性能最優(yōu): 直接使用 ArkUI 開發(fā),性能最優(yōu)欲虚,實(shí)時(shí)預(yù)覽開發(fā)效率也最快
  • 深度集成:可以直接訪問底層系統(tǒng)功能集灌,如傳感器、藍(lán)牙复哆、Wi-Fi等欣喧,實(shí)現(xiàn)與設(shè)備的深度集成。
  • 最新特性支持:能夠第一時(shí)間支持鴻蒙操作系統(tǒng)的最新特性和API更新寂恬。

缺點(diǎn):需要學(xué)習(xí) ArkUI 的開發(fā)語言续誉,當(dāng)然也可以用 Js 開發(fā),那為啥不去選擇跨端框架

ASCF 微信小程序轉(zhuǎn)成元服務(wù)

優(yōu)點(diǎn)

  • 無需重復(fù)開發(fā): 直接轉(zhuǎn)譯微信小程序初肉,wxml轉(zhuǎn)譯成hxml酷鸦,邏輯層還是js語言處理
  • 生態(tài)兼容性:可以利用部分現(xiàn)有的 JavaScript 生態(tài)工具和庫
  • 快速上手:對(duì)于已經(jīng)熟悉 JavaScript 的開發(fā)者來說,減少了開發(fā)元服務(wù)入門門檻牙咏。

缺點(diǎn)

  • 轉(zhuǎn)譯工具成熟度:轉(zhuǎn)譯框架通常都只能保證大部分邏輯正常臼隔,少部分問題還是需要自己調(diào)試處理
  • 調(diào)試受限:只能真機(jī)進(jìn)行調(diào)試,不能使用預(yù)覽妄壶,開發(fā)效率非常低摔握;并且邏輯層與界面分離,調(diào)試問題更難定位丁寄,只能多打印日志信息輔助氨淌。
  • Api使用受限: 只能使用該文檔 Api泊愧,有些鴻蒙系統(tǒng)能力無法支持,對(duì)標(biāo)微信小程序開發(fā)文檔盛正,https://developer.huawei.com/consumer/cn/doc/atomic-ascf-V5/apis-V5

1删咱, 鴻蒙提供了ASCF工具,可以幫助開發(fā)者把微信小程序豪筝,直接轉(zhuǎn)成鴻蒙元服務(wù)
開發(fā)之前痰滋,先要去安裝一個(gè) ASCF 插件,在這里我反而更推薦 beta 版续崖,因?yàn)橛行┺D(zhuǎn)譯問題你有可能當(dāng)天發(fā)現(xiàn)了敲街,第二天就被官方修復(fù)掉了

image.png

選擇創(chuàng)建“Atomic Service”,選擇ASCF Ability模板严望,然后單擊Next多艇。
按這個(gè)流程繼續(xù)操作https://developer.huawei.com/consumer/cn/doc/atomic-ascf-V5/convert-atomic-service-resources-V5

  1. 使用命令行進(jìn)行轉(zhuǎn)譯(推薦)

https://developer.huawei.com/consumer/cn/doc/atomic-ascf-V5/run-ascf-cli-V5
我更推薦使用命令行的方式,對(duì)微信小程序進(jìn)行轉(zhuǎn)譯著蟹,你可以更直觀的找到轉(zhuǎn)譯錯(cuò)誤墩蔓,以及編譯的 debug 信息

轉(zhuǎn)譯小程序后的產(chǎn)物在 xxx/ascf/ascf_src 下梢莽,對(duì)標(biāo) ASCF demo 項(xiàng)目的 ascf_src 目錄萧豆,直接替換掉

uniapp-鴻蒙元服務(wù)

https://uniapp.dcloud.net.cn/tutorial/mp-harmony/intro.html

可以看到也是使用到 ASCF 工具,如果之前就用 uniapp 開發(fā)的小程序昏名,轉(zhuǎn)鴻蒙也會(huì)更順手一點(diǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涮雷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子轻局,更是在濱河造成了極大的恐慌洪鸭,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仑扑,死亡現(xiàn)場(chǎng)離奇詭異览爵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)镇饮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門蜓竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人储藐,你說我怎么就攤上這事俱济。” “怎么了钙勃?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵蛛碌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我辖源,道長(zhǎng)蔚携,這世上最難降的妖魔是什么希太? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮酝蜒,結(jié)果婚禮上跛十,老公的妹妹穿的比我還像新娘。我一直安慰自己秕硝,他們只是感情好芥映,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著远豺,像睡著了一般奈偏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上躯护,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天惊来,我揣著相機(jī)與錄音,去河邊找鬼棺滞。 笑死裁蚁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的继准。 我是一名探鬼主播枉证,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼移必!你這毒婦竟也來了室谚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤崔泵,失蹤者是張志新(化名)和其女友劉穎秒赤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體憎瘸,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡入篮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了幌甘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潮售。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖含潘,靈堂內(nèi)的尸體忽然破棺而出饲做,到底是詐尸還是另有隱情,我是刑警寧澤遏弱,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布盆均,位于F島的核電站,受9級(jí)特大地震影響漱逸,放射性物質(zhì)發(fā)生泄漏泪姨。R本人自食惡果不足惜游沿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望肮砾。 院中可真熱鬧诀黍,春花似錦、人聲如沸仗处。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽婆誓。三九已至吃环,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間洋幻,已是汗流浹背郁轻。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留文留,地道東北人好唯。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像燥翅,于是被迫代替她去往敵國(guó)和親骑篙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容