上一篇我們說了環境搭建,以及注冊賬號,把模擬器跑起來,那么這一節就來看看,項目的目錄結構。
1 項目結構剖析
我們打開項目,看到如下的目錄結構,如果你不細看,一眼望去,好像安卓,或者說大致一模一樣。
上一節我們去看了編譯出來的hap,用zip解壓出來,會發現跟apk結構類似,
這里我們把classes.dex 和 entry_debug_signed_entry.apk 都來反編譯下,就能看出一些有趣的內容,對于我們理解hap會有幫助。
classes.dex 反編譯的結構:
會發現這里面的
MainAbilitySlice extends AbilitySlice
MainAbility extends Ability
MyApplication extends AbilityPackage
這幾個都是在鴻蒙的jar包里面,我們繼續看entry_debug_signed_entry.apk的反編譯,這個里面會出現更多熟悉的內容:
通過這個關系網,就可以得出我們的應用實際實現了一個 ShellMyApplication類,來完成Application的相關工作。
然后我們又看到了:
MainAbilityShellActivity extends AbilityShellActivity ,這里的AbilityShellActivity
通過這塊分析,發現鴻蒙的框架,是對安卓框架做了一次封裝,Activity封裝成AbilityShellActivity,然后每個模塊又帶一個MainAbilityShellActivity。
同時 Application 封裝成HarmonyApplication,然后每個模塊又帶一個ShellMyApplication。
于是,當前的整個邏輯就變成如下的一個結構(依據反編譯信息推出的一個架構,如有錯漏,歡迎交流)
同時我簡單設置了斷點,可以清晰的看到調用關系:
然后我們再看下SDK中提供的jar包,可以看到系統抽離出來了這幾個:
那么我來總結下,鴻蒙系統在手機線的實現,基本上是圍繞著封裝來做,將安卓原始的Activity,Provider,Service,Application,進行封裝,從而解析一個叫做HAP的鴻蒙應用包,完成解耦的動作。
又扯遠了,我們回過頭來,看看項目結構:
config.json 可以類比成AndroidManifest.xml
resources 跟安卓一樣,代表資源,只是目錄結構有區別。
MyApplication extends AbilityPackage ,代表一個應用。
MainAbility extends Ability,可以理解成Activity,但是更準確的是沒有界面的一個抽象層,可以理解成Activity管理器。
MainAbilitySlice extends AbilitySlice,這個代表一個界面,這個可以對標稱Activity,一個顯示界面。
從實現上來分析,HarmonyOS ,實現了一個自己的Activity,叫做
AbilityShellActivity,在真正加載起來的時候,是MainAbilityShellActivity。
而 MainAbilityShellActivity 直接操作Ability ,Ability里面有多個AbilitySlice 。
我們開發的時候,直接面對的就是Ability,生成出來就是hap文件了。關于里面的實現,只需要了解下就行。
于是我們看下邏輯圖:
更多參考官方文檔:
https://developer.harmonyos.com/cn/docs/documentation/doc-guides/project_overview-0000001053822398
編輯:jq
-
編譯
+關注
關注
0文章
676瀏覽量
33736 -
SDK
+關注
關注
3文章
1065瀏覽量
47657 -
鴻蒙
+關注
關注
59文章
2503瀏覽量
43759
原文標題:王姨勸我學HarmonyOS鴻蒙2.0系列教程之二應用知識&&梳理邏輯!
文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
如何判斷產品需不需要做AT&T認證?AT&T測試內容和要求分享

北美運營商AT&amp;amp;T認證中的VoLTE測試項

北美運營商AT&amp;amp;T認證的測試內容有哪些?

北美運營商AT&amp;amp;T認證的費用受哪些因素影響

onsemi LV/MV MOSFET 產品介紹 &amp;amp; 行業應用

思瑞浦車規級產品矩陣,全面覆蓋汽車級CAN&amp;amp;LIN、LDO需求

FS201資料(pcb &amp; DEMO &amp; 原理圖)
北美運營商AT&amp;amp;T認證入庫產品范圍名單相關

解讀北美運營商,AT&amp;amp;T的認證分類與認證內容分享

利爾達NB-IoT &amp;amp;Cat.1 產測應用指導

評論