鴻蒙
在鴻蒙系統(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)行
找到 Device Manager融求,我的賬號(hào)還走了一遍郵件申請(qǐng)流程咬像,如果沒有則忽略,直接點(diǎn) create 創(chuàng)建模擬器生宛,目前官方只提供了 Phone 手機(jī)端模擬器县昂,平板、手表暫不支持陷舅。
夸一下鴻蒙模擬器倒彰,運(yùn)行比隔壁的 Android 模擬器快多了!@痴觥待讳!
項(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ā)布等
- 去 https://developer.huawei.com/consumer/cn/download/ 下載 Command Line Tools
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ù)
創(chuàng)建完后袱院,去DevEco Studio 創(chuàng)建你的元服務(wù)項(xiàng)目屎慢,一直 Next 執(zhí)行下去就好,過程中會(huì)讓你綁定剛才創(chuàng)建的元服務(wù)id
開發(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ù)掉了
選擇創(chuàng)建“Atomic Service”,選擇ASCF Ability模板严望,然后單擊Next多艇。
按這個(gè)流程繼續(xù)操作https://developer.huawei.com/consumer/cn/doc/atomic-ascf-V5/convert-atomic-service-resources-V5
- 使用命令行進(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)