日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

鸿蒙Harmony谈了这么久,和Android到底啥区别?

發布時間:2024/1/18 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鸿蒙Harmony谈了这么久,和Android到底啥区别? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

國產操作系統鴻蒙代碼終于開源,IDE也一并公開。迫不及待地安裝了IDE并嘗了鮮。

?

將按照鴻蒙OS介紹,IDE介紹,安裝及運行,項目構成,APP基本組件,APP可執行文件這幾個方面來講述我自己的開發體驗。

?

HarmonyOS

基于微內核的跨平臺分布式操作系統,最新為2.0。不再停留在PPT上,公開了源碼和IDE。

官方的資料我一并羅列下來。

鴻蒙OS的官方介紹:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/harmonyos-overview-0000000000011903

鴻蒙OS在gitee上的主頁:https://openharmony.gitee.com/openharmony

內核源碼的地址:https://openharmony.gitee.com/openharmony/kernel_liteos_a

華為開發者論壇:https://developer.huawei.com/consumer/cn/forum/home

?

IDE DevEco Studio

為鴻蒙OS開發的IDE名叫DevEco Studio,基于IntelliJ IDEA Community開源版本打造。界面及開發流程和Android Studio基本一致,極易上手。

下載地址:https://developer.harmonyos.com/cn/develop/deveco-studio

官網文檔:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387

?

DevEco Studio安裝及運行

exe下載下來之后雙擊可以看到配置頁面。

選擇其他安裝目錄或默認選項,然后進入啟動頁面。

十來分鐘之后將提示是否下載SDK,選擇”接受“繼續。

下載成功之后將進入創建項目畫面,選擇“創建鴻蒙OS項目”繼續。

接下來需要選擇運行的硬件設備類型,目前支持電視,手表和穿戴設備三種設備類型。也可以看到預設的畫面布局,以及開發語言,目前支持JS和JAVA兩種開發語言。我們選擇“TV”設備,空畫面+JAVA開發方式,繼續。

當然需要設置項目名稱,包名及位置等信息,我們采用“HMApp”名稱繼續。

配置好之后將進入IDE主界面,并自動下載gradle等依賴包。

gradle下載及配置完畢之后,我們安裝下鴻蒙OS模擬器,暫時沒有本地的模擬器,只能使用遠程的模擬器,需要下載Resources模塊和網站登錄。我們點擊Tools->HVD Manager在打開模擬器設備列表的時候將自動下載Resources模塊。

這里必須要提一句,下載Resources模塊非常容易遇到如下的失敗,很多開發者都遇到。

解決辦法很多,沒有特別穩妥的方案。比如重啟電腦,重啟IDE,重裝IDE,刪除IDE的緩存目錄,華為開發者賬號注冊成功十分鐘之后再試等等。反正多試幾次終究能成功。

下載成功之后還需要登錄華為開發者賬號,才可以啟動遠程模擬器。IDE將自行啟動默認瀏覽器驗證賬號。在登錄成功之后需要“允許”,將看到登錄成功的提示。

這之后我們返回IDE,將看到底部的“login success”的提示。然后我們就可以在HVD Manager列表里啟動模擬器。

接著運行我們的代碼,可以看到成功部署到了遠程模擬器上。

?

項目構成

我們看一下鴻蒙APP的項目構成,并和Android Studio進行對比。

通過仔細對比,發現結構大體是類似的,在主體代碼邏輯模塊有著明細區別。

1,DevEco將配置清單格式由xml改為json,可能解析起來更為高效。

2,將資源文件分類為存放媒體資源的media目錄,存放字符內容的element目錄以及存放預設資源的rawfile目錄。相比Android原生的資源目錄分類更加簡潔明了。只是資源文件的尺寸適配,版本適配,國際化適配需要怎么區分開來呢?

3,源文件的幾大組件的實現類改了,名字看起來都有些相似,需要看源碼才能辨別。

APP基本組件

官方的API說明:https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ability-ability-overview-0000000000029852

為了搞清楚APP基本組件和Android的區別,我們需要查看源碼的實現。我將總結出來的鴻蒙OS的APP組件大致的類圖貼出來。

Android原生的Application,Activity及Service三者的類圖也一并貼上。

可以看到鴻蒙OS的Ability,AbilitySlice和AbilityPackage組件都繼承自同一個父類AbilityContext。而且Context并不像Android,而是個接口。

具體到方法API的區別總結一下,初步感覺是這樣的。

可以看到大部分API都是類似的,只是名稱上的細微差別,說明組件的設計思路基本一致。但是我們也看到鴻蒙OS出現了一些Android并不存在的API。

比如Ability提供了停止Ability的stopAbility(),設置是否支持側滑消失的setSwipeToDismiss(),設置路由主入口的setMainRoute(),用來指定先啟動的AbilitySlide實例。

比如AbilitySlice提供了開啟,停止和獲取Ability實例的startAbility(),stopAbility()和getAbility(),同時還提供了設置UI視圖的setUIContent()。

AbilitySlice可以直接展示視圖,而Android的Service不可以直接展示視圖,需要依賴WindowManager去添加Window。再結合官網API的說明,我們可以斷定鴻蒙OS的AbilitySlice并不同于Android的Service,它只是Ability的UI展示的一個補充,一個部分而已,更像是Fragment。上述表格的對比維度并不準確,不能直接將AbilitySlice和Service進行對比。

我們還發現一個細節,Ability和AbilitySlice在提供了onConfigurationUpdated()以外都提供了監聽屏幕方向變化的onOrientationChanged()。為何將屏幕方向的變化單獨處理,比較微妙。

?

上述表格并未展示的一點是,Ability和AbilitySlice都提供了connectAbility(Intent intent, IAbilityConnection conn)和disconnectAbility(IAbilityConnection conn)去綁定和解綁Ability。但是只有Ability提供了onConnect(Intent intent)和onDisconnect(Intent intent)去處理綁定和解綁的回調。

可以知道AbilitySlice也可以參與綁定組件但只有它依附的Ability可以處理綁定和解綁的回調。

可以發現這和Android完全不一樣,Android是Activity通過bindService()和unbindService()去綁定和解綁Service,Service提供了onBind()和onUnbind()去處理綁定和解綁請求。

總結來說,

Android上活動和服務是兩個不一樣的概念,活動提供和用戶交互的UI,服務提供后臺任務的執行。活動可以啟動和停止服務,也可以綁定,遠程調度和解綁服務。他們兩者的實現類也是分開的。

而鴻蒙OS則將活動和服務整合,統稱為抽象的"能力",由實現類Ability來統一管理。需要展示UI交互的時候,它就是活動;需要執行后臺任務的話它就是服務。當然,因為是Ability的緣故,服務擁有了在需要交互時直接展示UI的便利。

必須指出的一點是,雖然將前臺活動和后臺服務進行整合是個好想法,但很多概念容易混淆,進而導致生命周期的管理混亂。在開發的過程中也極易出錯。尤其對于習慣了Activity和Service兩大概念的Android開發者來說,需要好好適應一下。。。

APP可執行文件

鴻蒙OS編譯出來的應用程序格式為hap,全稱是harmony application package?和APK一樣也是壓縮包,改名之后解壓下來如圖。有一個同名的APK文件。。。

和一般APK的內容DIFF一下。

我們再把APK文件解壓下來和一般的APK對比一下,結構和名稱完全一致。

HAP文件內置APK文件當然是為了兼容Android系統,便于系統生態的營造。

具體怎么兼容?我猜想有兩個可能性。

1,鴻蒙OS底層仍然是像Android一樣,暫時通過PMS和PackageInstaller解析和安裝APK文件。所以內置了APK文件,外部的json只是額外配置和補充。

2,鴻蒙OS完全有自己的HAP格式解析和安裝流程。這個HAP里內置的APK是為了方便HAP能安裝和運行到Android OS上去的。這樣可以方便鴻蒙開發者開發的APP可以不用修改代碼直接運行到Android設備上。具體怎么實現呢,比如HMS的App Gallery分發HAP格式到手機里的時候,可以自動解壓出來APK到手機上,然后執行和APK一樣的流程。

這是我的猜想,歡迎大家探討。

?

從IDE的安裝和使用來看,目前還有很多需要優化的地方。

比如每次啟動HVD都需要登錄,比如運行APP的日志從出不來,比如沒有體用本地模擬器等等。

羅馬也不是一天建成的,我們需要保持積極的心態去嘗試和反饋,給華為開發者一些時間。這樣大家才能不斷進步。

?

鴻蒙OS的IDE,組件設計,以及可執行文件構成,和Android有著相似之處卻又有差異頻頻。

這種貌合神離的方式既能在生態營造上取巧,又能樹立自己的風格,無奈之中透著倔強。

到底孰優孰劣尚無法評判,只能把問題交給時間和用戶。

此刻我只想祝愿鴻蒙OS越來越好!

?

寫于20200926深夜。


原創不易,如果本篇文章引起你的思考和興趣,歡迎點贊和關注。如果想要了解更多更全信息,掃碼關注博主公眾號TechMerger


?

總結

以上是生活随笔為你收集整理的鸿蒙Harmony谈了这么久,和Android到底啥区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲av久久久噜噜噜噜 | 国产一卡在线 | 桃色激情网 | 日批免费观看 | 一区三区视频 | 国产又粗又猛又爽又黄91 | 大尺度床戏视频 | 在线观看免费福利 | 亚洲成av | 猛1被调教成公厕尿便失禁网站 | 91精品视频在线播放 | 91视频这里只有精品 | 91麻豆免费视频 | 狠狠干中文字幕 | 翔田千里一区二区三区av | 中文字幕亚洲日本 | 天天成人| 男女做激情爱呻吟口述全过程 | 亚洲黄色片视频 | 丁香色网 | 人妻饥渴偷公乱中文字幕 | 亚洲精品91天天久久人人 | 色综合天天操 | 99久久久无码国产精品性青椒 | 亚洲国产aⅴ精品一区二区 日韩黄色在线视频 | 一本不卡 | 日韩欧美亚洲在线 | 天天色天 | 户外少妇对白啪啪野战 | 美国成人免费视频 | 午夜一级黄色片 | 国产午夜精品一区二区理论影院 | av资源在线 | 亚洲av色一区二区三区精品 | 国产一在线 | 青草91| 欧美第一页在线观看 | 亚洲欧美偷拍视频 | 黄色片特级 | 高潮av在线 | 欧美高清另类 | chinese国产精品| 成人免费超碰 | 女女av在线 | 91久色视频| 美女扒开内裤让男人捅 | 亚洲区精品 | 欧美色图17p | 成人深夜小视频 | 91干| 亚洲三级电影 | 女同另类之国产女同 | 手机免费在线观看av | 亚洲美女精品 | 精品不卡一区二区三区 | 成年人网站免费视频 | xxx国产精品| 日日碰狠狠躁久久躁蜜桃 | 老妇荒淫牲艳史 | 懂色中文一区二区在线播放 | 日日燥夜夜燥 | 亚洲美女自拍视频 | 精品视频第一页 | 黑丝一区二区三区 | 四川少妇xxx奶大xxx | 欧美日韩激情在线 | 日韩天天操 | 日本人性爱视频 | 成人国产三级 | 亚洲人精品午夜射精日韩 | 欧美日韩观看 | 国产成人91| 波多野结衣精品视频 | 少妇高潮久久久久久潘金莲 | 欧美日韩激情在线一区二区三区 | 亚洲第十页 | 中文字幕亚洲视频 | 亚洲欧美日韩偷拍 | 日本aⅴ在线观看 | 亚洲国产tv | 亚洲无限观看 | 国产一级在线免费观看 | 日本网站免费观看 | 欧美成人精品一区二区免费看片 | 人人妻人人爽欧美成人一区 | 7777精品久久久久久 | 胖女人做爰全过程 | 国语对白自拍 | 色婷婷aⅴ | 亚洲黄色免费观看 | 91免费观看视频在线 | 动漫女被黄漫免费视频 | 日韩欧美一区二区三区四区 | 日韩国产精品一区二区 | 丁香六月婷婷综合 | 久久黄色网络 | 国产精品永久在线观看 | 欧美又大粗又爽又黄大片视频 | 国产精品久久免费视频 |