Ability

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的昭平網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Ability是應(yīng)用所具備能力的抽象
2.onActive()
Page會在進入INACTIVE狀態(tài)后來到前臺,然后系統(tǒng)調(diào)用此回調(diào)。Page在此之后進入ACTIVE狀態(tài),該狀態(tài)是應(yīng)用與用戶交互的狀態(tài)。Page將保持在此狀態(tài),除非某類事件發(fā)生導(dǎo)致Page失去焦點,比如用戶點擊返回鍵或?qū)Ш降狡渌鸓age。當此類事件發(fā)生時,會觸發(fā)Page回到INACTIVE狀態(tài),系統(tǒng)將調(diào)用onInactive()回調(diào)。此后,Page可能重新回到ACTIVE狀態(tài),系統(tǒng)將再次調(diào)用onActive()回調(diào)。因此,開發(fā)者通常需要成對實現(xiàn)onActive()和onInactive(),并在onActive()中獲取在onInactive()中被釋放的資源。
3.onInactive()
當Page失去焦點時,系統(tǒng)將調(diào)用此回調(diào),此后Page進入INACTIVE狀態(tài)。開發(fā)者可以在此回調(diào)中實現(xiàn)Page失去焦點時應(yīng)表現(xiàn)的恰當行為。
4.onBackground()
如果Page不再對用戶可見,系統(tǒng)將調(diào)用此回調(diào)通知開發(fā)者用戶進行相應(yīng)的資源釋放,此后Page進入BACKGROUND狀態(tài)。開發(fā)者應(yīng)該在此回調(diào)中釋放Page不可見時無用的資源,或在此回調(diào)中執(zhí)行較為耗時的狀態(tài)保存操作。
5.onForeground()
處于BACKGROUND狀態(tài)的Page仍然駐留在內(nèi)存中,當重新回到前臺時(比如用戶重新導(dǎo)航到此Page),系統(tǒng)將先調(diào)用onForeground()回調(diào)通知開發(fā)者,而后Page的生命周期狀態(tài)回到INACTIVE狀態(tài)。開發(fā)者應(yīng)當在此回調(diào)中重新申請在onBackground()中釋放的資源,最后Page的生命周期狀態(tài)進一步回到ACTIVE狀態(tài),系統(tǒng)將通過onActive()回調(diào)通知開發(fā)者用戶。
6.onStop()
系統(tǒng)將要銷毀Page時,將會觸發(fā)此回調(diào)函數(shù),通知用戶進行系統(tǒng)資源的釋放。銷毀Page的可能原因包括以下幾個方面:
用戶通過系統(tǒng)管理能力關(guān)閉指定Page,例如使用任務(wù)管理器關(guān)閉Page。
用戶行為觸發(fā)Page的terminateAbility()方法調(diào)用,例如使用應(yīng)用的退出功能。
配置變更導(dǎo)致系統(tǒng)暫時銷毀Page并重建。
系統(tǒng)出于資源管理目的,自動觸發(fā)對處于BACKGROUND狀態(tài)Page的銷毀。
AbilitySlice生命周期
AbilitySlice生命周期回調(diào)與Page的相應(yīng)回調(diào)類似,因此不再贅述。由于AbilitySlice承載具體的頁面,開發(fā)者必須重寫AbilitySlice的onStart()回調(diào),并在此方法中通過setUIContent()方法設(shè)置頁面。
Page與AbilitySlice生命周期關(guān)聯(lián)
當AbilitySlice處于前臺且具有焦點時,其生命周期狀態(tài)隨著所屬Page的生命周期狀態(tài)的變化而變化。當一個Page擁有多個AbilitySlice時,例如:MyAbility下有FooAbilitySlice和BarAbilitySlice,當前FooAbilitySlice處于前臺并獲得焦點,并即將導(dǎo)航到BarAbilitySlice,在此期間的生命周期狀態(tài)變化順序為:
對應(yīng)兩個slice的生命周期方法回調(diào)順序為:
FooAbilitySlice.onInactive() -- BarAbilitySlice.onStart() -- BarAbilitySlice.onActive() -- FooAbilitySlice.onBackground()
在整個流程中,MyAbility始終處于ACTIVE狀態(tài)。但是,當Page被系統(tǒng)銷毀時,其所有已實例化的AbilitySlice將聯(lián)動銷毀,而不僅是處于前臺的AbilitySlice。
參考 鴻蒙官方文檔(點擊傳送門) ,做一下流程梳理簡化,及踩坑記錄
華為將真機調(diào)試分成物理真機和遠程真機。這里說的都是物理真機(手機、平板)。鴻蒙真機調(diào)試巨復(fù)雜,不像Android那么容易方便。
貼一下官方的調(diào)試流程圖:
總結(jié)一下:
上面這個流程可以忽略,沒講到重點。真機調(diào)試是需要在 ? AppGallery Connect 中創(chuàng)建應(yīng)用的,調(diào)試應(yīng)用需要的cer和p7b文件是從這里生成的。
先決條件:
1. 鴻蒙手機通過USB連接電腦,并開啟USB調(diào)試。
2. 一個華為開發(fā)者賬號,實名認證
3. APP開發(fā)工具DevEco-Studio
關(guān)鍵流程:
1. Studio創(chuàng)建應(yīng)用
2. 如果未登錄過,F(xiàn)ile Project Structure Project Signing Configs簽名配置頁,點擊“Sign In”
3. AppGallery創(chuàng)建應(yīng)用(包名和Studio創(chuàng)建的一樣)
4. 官方文檔到這在簽名配置頁就點Try Again可以自動簽名,我試了不行,以下全是手動
5. Studio中Build Generate key and CSR? ?生成p12和csr文件
6. 獲取手機udid,命令行hdc shell bm get -udid(下一步設(shè)備管理要用)
7. AppGallery主頁 用戶與訪問 左側(cè)設(shè)備管理添加udid的設(shè)備(生成p7b時要用)
8. AppGallery主頁 用戶與訪問 左側(cè)證書管理生成cer文件(生成p7b和簽名配置要用)
9. AppGallery主頁 我的項目 左側(cè)HarmonyOS應(yīng)用 HAP provision profile,生成p7b文件
10. 最后在簽名配置頁配好 p12、p7b、cer等參數(shù),運行鴻蒙應(yīng)用到真機就行了
開發(fā)前可以了解下鴻蒙: [鴻蒙開發(fā) 序]華為鴻蒙操作系統(tǒng)(HarmonyOS)簡介及開發(fā)環(huán)境搭建
開發(fā)前的準備:「鴻蒙開發(fā) 1」華為鴻蒙應(yīng)用集成開發(fā)環(huán)境DevEco Studio安裝和設(shè)置
了解鴻蒙應(yīng)用開發(fā)的基本開發(fā)流程:「鴻蒙開發(fā) 2」第一個華為鴻蒙(HarmonyOS)應(yīng)用程序(App)
本章目標:
1 了解華為鴻蒙應(yīng)用開發(fā)的可視化(低代碼)方式
2 通過構(gòu)建一個簡單的具有頁面跳轉(zhuǎn)功能的應(yīng)用
低代碼開發(fā)方式,即通過可視化界面開發(fā)方式快速構(gòu)建布局、編輯UI界面,可有效降低用戶的上手成本并提升用戶構(gòu)建UI界面的效率。
1 打開DevEco Studio,創(chuàng)建一個新工程,選擇支持Phone / Tablet / Wearable(手機 / 平板 / s可穿戴)的模板,我們在此直接選擇Empty Ability
Project name工程名稱填SuperVisual
Development mode開發(fā)方式選擇Super Visual
其它的可以使用默認設(shè)置,點擊完成,進入編輯界面
1 在Project(項目)窗口,刪除工程運行默認的入口文件夾:“entry src main js default pages index”文件夾
2 在Project窗口,選擇工程中的“entry src main js default pages”,單擊鼠標右鍵,選擇“New JS Visual”
JS visual name填first,點擊完成,進入編輯界面
創(chuàng)建完成后,可以看到“entry src main supervisual default pages page page.visual”的文件目錄結(jié)構(gòu)
3 第一個頁面內(nèi)有一個容器、文本和一個按鈕,通過Div、Text和Button組件來實現(xiàn)
(1)分別選中first.visual畫面中的Text、Div組件,單擊鼠標右鍵,選擇Delete刪除
(2)選中UI Control中的Div組件,將其拖至畫布
點擊右側(cè)屬性樣式欄中的通用樣式圖標(General),設(shè)置Div組件的高度Height為100%,使其占滿屏幕
點擊右側(cè)屬性樣式欄中的樣式圖標(Flex),設(shè)置Div組件的FlexDirection樣式為column,使Div的主軸垂直;設(shè)置Div組件的JustifyContent樣式為center,使得其子組件在主軸上居中顯示;設(shè)置Div組件的AlignItems樣式為center,使得其子組件在交叉軸上居中顯示
(3)選中UI Control中的Text組件,將其拖至Div組件的中央?yún)^(qū)域
點擊右側(cè)屬性樣式欄中的屬性圖標(Properties),設(shè)置Text組件的Content屬性為 “ Hello World ”
點擊右側(cè)屬性樣式欄中的通用樣式圖標(General),設(shè)置Text組件的寬(width)為100%,高(height)為100px
點擊右側(cè)屬性樣式欄中的樣式圖標(Feature),設(shè)置組件的FontSize樣式為60px,使得其文字放大;設(shè)置組件的TextAlign樣式為center,使得組件文字居中顯示
(4)選中UI Control中的Button組件,將其拖至Text組件下面
點擊右側(cè)屬性樣式欄中的屬性圖標(Properties),設(shè)置Button組件的Value屬性為 “ Next ”,
點擊右側(cè)屬性樣式欄中的通用樣式圖標(General),設(shè)置按的寬(width)為40%,高(height)為60px
點擊右側(cè)屬性樣式欄中的樣式圖標(Feature),設(shè)置組件的FontSize樣式為40px
至此,第一個頁面創(chuàng)建完成
我們可以在預(yù)覽窗口中看效果,點擊右側(cè)邊欄的Preview打開預(yù)覽窗口
1 在Project窗口,選擇工程中的“entry src main js default pages”,單擊鼠標右鍵,選擇“New JS Visual”
Visual配置界面,JS visual name填second,回車(Enter鍵)或者點擊完成,進入編輯界面
2 第二個頁面中有一個容器和文本,通過Div、Text組件實現(xiàn),現(xiàn)在編輯器已經(jīng)為我們創(chuàng)建好了,我們就來修改下它們的屬性(你也可以刪除原有的自己創(chuàng)建,具體步驟參考本章第二節(jié)“二 創(chuàng)建第一個頁面”)。
選中Text組件,點擊右側(cè)屬性樣式欄中的屬性圖標(Properties),設(shè)置Text組件的Content屬性為 “ Hi,I'm always here. ”
點擊右側(cè)屬性樣式欄中的通用圖標(General),設(shè)置組件的寬(width)為100%,高為60px
點擊右側(cè)屬性樣式欄中的樣式圖標(Feature),設(shè)置組件的FontSize樣式為36px,TextAlign樣式為center
這樣我們的第二個頁面創(chuàng)建成功了
1 在Project窗口,打開工程中的“entry src main js default pages first first.js”, 導(dǎo)入router模塊,頁面路由router根據(jù)頁面的uri來找到目標頁面,從而實現(xiàn)跳轉(zhuǎn)。示例代碼如下:
2 打開或者切換到first.visual頁面,選中畫布上的Button組件,點擊右側(cè)屬性樣式欄中的事件圖標(Events),鼠標點擊Click事件的輸入框,選擇launch事件
3 在預(yù)覽窗口中查看項目效果,點擊Next按鈕后發(fā)現(xiàn)我們的頁面成功跳轉(zhuǎn)了。
到此,本章的目標就完成了。
之前測試過使用華為DevEco開發(fā)智能電視應(yīng)用。前幾天華為發(fā)布了手機的測試版,不能免俗,抓緊嘗試一下。
手頭沒有華為手機測試系統(tǒng),現(xiàn)在試一下開發(fā)環(huán)境跑模擬器感受一下。
以前DevEco里是沒有手機選項的,現(xiàn)在該選項可以看到了:
這里測試一下Business Card Ability(Java)開發(fā)。
DevEco和Android Studio一樣基于開源的Idea版本開發(fā)的,其結(jié)構(gòu)與安卓開發(fā)環(huán)境非常像,熟悉安卓的小伙伴應(yīng)該能很快上手。
入口程序是一個MyApplication,從AbilityPackage繼承。
它首先找到了連接的榮耀手機,但這個手機不是鴻蒙系統(tǒng)。
編譯是成功了,但提示設(shè)備無法使用:
點擊Tools - HVD Manager
首先提示登陸華為賬號,登陸后,選擇一個模擬器運行:
啟動以后長這個樣:
點擊設(shè)置,先看看關(guān)于:
上面顯示大大的HarmonyOS。但感覺畫面很模糊,不知道模擬器到底是運行在本地的,還是云端的。但DevEco上顯示是Remote Device字樣。
鴻蒙OS版本號 2.0.0 Developer Beta1。
再點運行,在指定的模擬器上運行程序。
不過仍然運行失敗:
鴻蒙OS版本與平板是一致的,
程序終于跑起來了:
看起來安卓程序好像真能在鴻蒙直接運行,安裝一個快手試試:
還真能看:
我真分不清這是安卓還是鴻蒙了 。
網(wǎng)頁標題:鴻蒙應(yīng)用怎么開發(fā),鴻蒙軟件用什么開發(fā)
新聞來源:http://chinadenli.net/article41/dseoihd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、標簽優(yōu)化、響應(yīng)式網(wǎng)站、定制網(wǎng)站、手機網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)