HarmonyOS NEXT創(chuàng)新能力的個人解讀
想了解更多關(guān)于開源的內(nèi)容,請?jiān)L問:
1月18日下午和1月19日上午,鴻蒙生態(tài)千帆啟航啟動儀式和HarmonyOS NEXT應(yīng)用技術(shù)開發(fā)分論壇在深圳舉行,有幸受邀參加這兩場盛舉,作為開發(fā)者,宏觀層面的東西,咱不談,下面我把在技術(shù)特性層面的收獲稍稍整理一下,簡單分享給大家!
一、IDE工具層面
DevEco Studio作為專門用于開發(fā)鴻蒙操作系統(tǒng)(HarmonyOS)的應(yīng)用程序的集成開發(fā)環(huán)境(IDE),提供一個清晰、直觀的用戶界面,使得開發(fā)人員可以更容易地進(jìn)行編碼、調(diào)試和測試我們的應(yīng)用。新的版本里,在調(diào)試和測試方面做了很大的提升,尤其對NDK,使用C或者C++語言實(shí)現(xiàn)應(yīng)用的關(guān)鍵功能的開發(fā)項(xiàng)目,在跨語言調(diào)用上,不管ArkTS調(diào)用C和C++,還是反過來在C和C++上調(diào)用ArkTS,它能很容易找到內(nèi)存泄漏的點(diǎn),在調(diào)優(yōu)方面,將專家級調(diào)優(yōu)經(jīng)驗(yàn),開發(fā)成工具,以泳道圖的方式直觀展現(xiàn),通過組件耗時情況,可以準(zhǔn)確定位到卡頓的點(diǎn),進(jìn)而優(yōu)化!
二、SDK方面
作為支撐鴻蒙原生應(yīng)用開發(fā)的技術(shù)源動力,HarmonyOS SDK將系統(tǒng)級能力全面對外開放,覆蓋了應(yīng)用框架、應(yīng)用服務(wù)、系統(tǒng)、媒體、圖形、AI六大領(lǐng)域的開發(fā)能力。
1.應(yīng)用框架(Application Framework):
- 提供基礎(chǔ)的應(yīng)用開發(fā)框架,包含了應(yīng)用生命周期管理、用戶界面渲染、事件處理等基本功能。
- 包括Ability Kit、ArkUI、ArkTS等,這些工具和庫用于構(gòu)建應(yīng)用程序的基本結(jié)構(gòu)。
2.應(yīng)用服務(wù)(Application Services):
- 為應(yīng)用程序提供了一系列的服務(wù),以增強(qiáng)其功能和用戶體驗(yàn)。
- 包含Account Kit、App Linking Kit、Message Kit等,用于實(shí)現(xiàn)賬戶管理、數(shù)據(jù)同步、消息推送等服務(wù)。
3.系統(tǒng)(System):
- 涉及操作系統(tǒng)級別的服務(wù)和功能,比如網(wǎng)絡(luò)、安全性、設(shè)備硬件控制等。
- 包括Network Kit、Security Kit、System Service Kit等,提供了網(wǎng)絡(luò)連接、數(shù)據(jù)加密、系統(tǒng)服務(wù)等功能。
4.媒體(Media):
- 提供音頻、視頻處理能力,以及圖像捕捉和渲染的功能。
- 包含Audio Kit、Camera Kit、Media Kit等,支持應(yīng)用進(jìn)行媒體內(nèi)容的創(chuàng)建、編輯和播放。
5.圖形(Graphics):
- 提供2D/3D圖形渲染、動畫、和視覺效果的工具。
- 包括Canvas Kit、Graphic Accelerate Kit、Vector Graphic Kit等,幫助開發(fā)者創(chuàng)建圖形豐富的用戶界面和動畫效果。
6.AI(Artificial Intelligence):
- 包含人工智能功能,如機(jī)器學(xué)習(xí)、語音識別、圖像識別等。
- 包括AI Engine、Machine Learning Kit、HiAI Foundation等,使應(yīng)用能夠?qū)崿F(xiàn)智能化的操作和處理。
三、Next版鴻蒙原生應(yīng)用新特性:更純凈、更智能、更精致、更易用
1.更純凈
首先,利用Core File Kit, L ocation Kit等安全控件,可以免用戶授權(quán)使用能力,做過前面版本的鴻蒙應(yīng)用開發(fā)的小伙伴們都有體驗(yàn),訪問圖片/視頻、音頻、文件、聯(lián)系人、相機(jī)、電話、頭像、掃碼等等敏感信息的時候,都必須需要獲得用戶的授權(quán),需要用戶手動點(diǎn)擊授權(quán)按鈕,程序才能繼續(xù)進(jìn)行后面操作,但這點(diǎn)在Next版本后的鴻蒙應(yīng)用開發(fā)改善了,比如用戶在應(yīng)用里保存圖片,只要點(diǎn)擊“保存”,就默認(rèn)用戶同意授權(quán)了,可直接保存到系統(tǒng)相冊,無需授予應(yīng)用任何權(quán)限,應(yīng)用無法越過用戶訪問任何公共文件,即保證了安全,也讓用戶操作不被中斷,更流暢絲滑。另外,Account Kit全局支持未成年保護(hù)模式,所有應(yīng)用自動生效,場景1:設(shè)備給未成年人專用,在設(shè)備登錄未成年帳號,場景2:家長設(shè)備給未成年人臨時使用,家長設(shè)置未成年使用,在上面兩種場景下打開相關(guān)應(yīng)用,默認(rèn)進(jìn)入青少年模式,進(jìn)入這個模式后,很多不應(yīng)該小朋友使用的app都將用不了,外面可以根據(jù)設(shè)置指定哪些能給用,哪些不能給用,這些開發(fā)賦能,讓鴻蒙操作學(xué)堂環(huán)境更純凈!
2.更智能
通過Media Library Kit控件,手機(jī)可以智能推薦用戶要選擇的照片,比如需要上傳身份證的時候,打開相冊上傳,可以通過輸入“身份證”這樣的關(guān)鍵字,鴻蒙系統(tǒng)會自動圖片識別,自動篩選出身份證的圖片供選擇,不用我們自己去找!在比如Push Kit控件,讓同一事件推送的多個消息自動聚合在一起,讓用戶高效獲取價值信息,提升用戶的體驗(yàn)。
3.更精致
ArkUI提供的控件,提升了空間層次感,模擬真實(shí)世界的空間層次,提供精致細(xì)膩的視效動效,使能鴻蒙原生應(yīng)用高端精致。
4.更易用
使用 Live View Kit (實(shí)況窗),打造鴻蒙原生應(yīng)用全新體驗(yàn),這個實(shí)況窗,實(shí)質(zhì)就是讓展示信息的地方,更加多樣化了,比如,實(shí)況窗可將打車、外賣配送等進(jìn)展呈現(xiàn)在熄屏、鎖屏、通知中心、狀態(tài)欄,桌面卡片等多個入口,無論手機(jī)處于那個狀態(tài),用戶只需掃一眼即可了解最新打車、外賣進(jìn)度,無需反復(fù)打開應(yīng)用查看,減少用戶等待過程的焦慮,讓手機(jī)更加易用。又比如,使用Scan Kit 軟硬芯協(xié)同,提供鴻蒙原生應(yīng)用統(tǒng)一的、系統(tǒng)級的掃碼能力,可以把掃碼圖標(biāo)常駐桌面,打開掃描界面不用去找對應(yīng)的app,掃描時系統(tǒng)自動識別是什么app的二維碼,自動對接到對應(yīng)app,讓手機(jī)使用更方便。
四、在開發(fā)層面
1.應(yīng)用架構(gòu)上采用三層模式
因?yàn)轼櫭墒轻槍Χ嘣O(shè)備的操作系統(tǒng),所以開發(fā)工程上,建議把基本不需要修改的代碼放到工程的公共能力基礎(chǔ)層,然后根據(jù)各種設(shè)備的不同,拆分出很多特性代碼模塊,放在特性層,最上面的一層是針對不同設(shè)備的皮膚,有可能隨時改變的代碼,放在產(chǎn)品層。整體上就把項(xiàng)目從下到上工程劃分為,公共基礎(chǔ)能力層,特性層以及產(chǎn)品層。
2.一次開發(fā),多端部署
隨著終端設(shè)備形態(tài)日益多樣化,分布式技術(shù)逐漸打破單一硬件邊界,一個應(yīng)用或服務(wù),可以在不同的硬件設(shè)備之間隨意調(diào)用、互助共享,讓用戶享受無縫的全場景體驗(yàn)。而作為應(yīng)用開發(fā)者,廣泛的設(shè)備類型也能為應(yīng)用帶來廣大的潛在用戶群體。但是如果一個應(yīng)用需要在多個設(shè)備上提供同樣的內(nèi)容,則需要適配不同的屏幕尺寸和硬件,開發(fā)成本較高。Harmony 系統(tǒng)面向多終端提供了“一次開發(fā),多端部署”(簡稱為“一多”)的能力,讓開發(fā)者可以基于一種設(shè)計,高效構(gòu)建多端可運(yùn)行的應(yīng)用。說的直白一點(diǎn),就是以前我們可能會針對不同設(shè)備,開發(fā)不同的app來支持,pc端一套pc代碼,移動端對應(yīng)一套移動端代碼,手表又會重新開發(fā)手表的對應(yīng)的程序,再不濟(jì),也是一套應(yīng)用里邊含有幾套對應(yīng)不同設(shè)備的獨(dú)立的UI代碼,但是現(xiàn)在鴻蒙系統(tǒng)上做應(yīng)用開發(fā)不用這門麻煩了,“一多”就非常完美解決這個問題,它能做到開發(fā)階段應(yīng)考慮不同類型設(shè)備間最大程度的復(fù)用代碼,整個代碼工程最終構(gòu)建出一個APP包,但這個APP包可以分發(fā)適配到各種不同設(shè)備中正常運(yùn)行。
3.UI框架采用MVVM模式
ArkUI采取MVVM = Model + View + ViewModel模式:
(1)Model層:存儲數(shù)據(jù)和相關(guān)邏輯的模型。它表示組件或其他相關(guān)業(yè)務(wù)邏輯之間傳輸?shù)臄?shù)據(jù)。Model是對原始數(shù)據(jù)的進(jìn)一步處理。
(2)View層:在ArkUI中通常是@Components修飾組件渲染的UI。
(3)ViewModel層:在ArkUI中,ViewModel是存儲在自定義組件的狀態(tài)變量、LocalStorage和AppStorage中的數(shù)據(jù)。
采用MVVM(Model-View-ViewModel)模式進(jìn)行用戶界面(UI)設(shè)計和開發(fā),具有以下好處:
(1)提高可維護(hù)性:MVVM模式通過分離視圖(UI)和業(yè)務(wù)邏輯(Model),使得代碼更易于維護(hù)和擴(kuò)展。ViewModel充當(dāng)視圖和模型之間的中介,減少了視圖和模型之間的依賴。
(2)增強(qiáng)可測試性:由于業(yè)務(wù)邏輯被從視圖中分離出來,因此可以獨(dú)立于UI對業(yè)務(wù)邏輯進(jìn)行測試,提高測試的便利性和覆蓋面。
(3)提升代碼復(fù)用率:ViewModel可以在不同的視圖中重用,特別是在復(fù)雜的用戶界面和共享功能中,這樣可以減少重復(fù)的代碼。
(4)簡化數(shù)據(jù)綁定:MVVM模式允許自動數(shù)據(jù)綁定,這意味著視圖可以直接從ViewModel獲取數(shù)據(jù),反之亦然。這簡化了UI的動態(tài)更新,使得開發(fā)者不必手動操作DOM或監(jiān)聽數(shù)據(jù)變化。
(5)更好的分工協(xié)作:設(shè)計師可以專注于視圖設(shè)計,而開發(fā)者可以專注于業(yè)務(wù)邏輯,從而使團(tuán)隊(duì)協(xié)作更加高效。
(6)改善性能:MVVM可以通過優(yōu)化數(shù)據(jù)綁定和狀態(tài)管理來提高應(yīng)用程序的性能,特別是在處理大量動態(tài)數(shù)據(jù)更新的情況下。
(7)更好的用戶體驗(yàn):MVVM支持更豐富的交互設(shè)計,如實(shí)時數(shù)據(jù)更新,無需刷新頁面即可響應(yīng)用戶的操作,從而提升用戶體驗(yàn)。
(8)減輕UI線程壓力:ViewModel可以在后臺線程中處理數(shù)據(jù)邏輯,從而減少UI線程的工作量,使界面響應(yīng)更加流暢。
五、后續(xù)
林林總總的在上面總結(jié)了這次一行的部分收獲,當(dāng)然實(shí)際的收獲還有很多沒寫出來,這些后續(xù)我都會在我的ArkTS鴻蒙應(yīng)用開發(fā)系列課里,更加仔細(xì)地和大家分享,希望大家期待…嘿嘿!