原创PDF |《Android 深入系统完全讲解》免费开源,可能价值百万!

王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器!

写完了第一篇,跑去找王姨,王姨笑了笑说,小伙子很有前途。说着她拿起桌上削好的苹果,放进自己嘴巴,吧唧吧唧的嚼了起来~~~

看来是不满意,我又要加班搞起。于是有了这一篇文章。

上一篇我们说了环境搭建,以及注册账号,把模拟器跑起来,那么这一节就来看看,项目的目录结构。

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

好了,这一节就讲到这里,我们下期再见~

--end--

今天分享一些整理的鸿蒙学习资料,加我微信 code_gg_boy  ,免费领取。

后续会建对应的鸿蒙学习群,大家一起交流成长。

王姨劝我学HarmonyOS鸿蒙2.0系列教程之二应用知识梳理逻辑!相关推荐

  1. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述调用方法!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建&&跑起来模拟器! 王姨劝我学Harm ...

  2. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之四Git搭建下载实例!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法! 相信大家看了 ...

  3. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之六自定义View涂鸦项目实战!

    这一节写个简单的项目,涂鸦,简单来讲就是画什么,显示什么.最好的网站,就是官网,这里再发一下: https://developer.harmonyos.com/cn/docs/documentatio ...

  4. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之五布局方法点击响应!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 王姨劝我学HarmonyOS鸿蒙2.0系列教程之三Ability概述&&调用方法! 为了更好的交 ...

  5. 王姨劝我学HarmonyOS鸿蒙2.0系列教程之一环境搭建跑起来模拟器!

    原创PDF |<Android 深入系统完全讲解>免费开源,可能价值百万! 学习一门新的技术前,我一般会翻看官方文档,源码,以及网上的一些总结,好形成一个初步印象,让开发的时候心中有谱. ...

  6. magic2怎样升级HarmonyOS,鸿蒙2.0怎么升级 华为鸿蒙新系统升级方法步骤

    最近华为新出了鸿蒙系统,很多网友都想更新尝试一下,现在鸿蒙系统已经开启了公测,大家都非常的想更新试一试体验一下,但是很多的网友都不知道该如何升级,其实一些支持首批公测的机型,是需要公测申请后才可以体验 ...

  7. 鸿蒙2.0设备开发教程】小熊派HarmonyOS 鸿蒙笔记

    HarmonyoS网络应用开发连接华为loT平台 主要内容: 本节主要介绍: 如何使用华为loT平台·设备如何对接华为loT平台 步骤; 1.华为loT平台介绍2.华为loT平台产品创建3.设备对接华 ...

  8. 华为HarmonyOS鸿蒙2.0系统安装谷歌框架play商店GMS,mate30/40系列,p40,p50,nova5 6 7 8,荣耀30/40/50/magic3/9x

    华为快速的安装谷歌GMS工具,一键安装,无需降级备份 华谷套件工具下载地址:https://bishua666.com/huagu2 使用教程

  9. 写给不需要学python的人的python教程(二)—不能当厕纸的草稿本

    话不多说,我今天就又回来继续这个看似没啥用的教程,那么今天就是真正的第一篇正文了,我们今天要聊得就是这个–草稿纸,我们用草稿纸主要是干什么的? 记录+演算 你可能好奇,python不是一个编程工具么? ...

最新文章

  1. sun.misc.BASE64Encoder找不到jar包的解决方法
  2. 2012年技术图书大盘点
  3. 识别、触达、转化、评估!百度云用ABC四招颠覆营销不可能
  4. wordpress漏洞_聊聊 WordPress 5.1.1 CSRF to RCE 漏洞
  5. 打印一个字符串的所有排列。
  6. Docker Review - dockerfile 入门篇
  7. 设计模式_3_建造者模式
  8. iphone字体_iPhone 适合老人盘吗?
  9. excel日期格式改不了_画进度计划横道图,Excel就够了
  10. 2015最新Android学习线路图
  11. 将JSON格式的字符串转换成List集合引入gson 的jar包
  12. ruby中文文档下载
  13. 程序员的电脑文件管理技巧
  14. 年底将至 怎么向国外客户开口催单 附话术模板
  15. ectouch2.0 php5.5_ectouch: ECTouch是一款开源的电商系统,为中小企业提供最佳的新零售解决方案。...
  16. 直博人数远大于硕士人数,清华计算机系到底有多强?
  17. 使用python控制其他软件运行_Python实现运行其他程序的四种方式实例分析
  18. Excel 高阶学习视频收藏
  19. python不区分大小写的列表比较_关于列表:不区分大小写’in’ – Python
  20. JS中的attribute和property的区别和联系

热门文章

  1. Netty -Netty心跳检测机制案例,Netty通过WebSocket编程实现服务器和客户端长链接
  2. 阅读小结:MSR:From Captions to Visual Concepts and Back
  3. text to image(一):《GENERATING IMAGES FROM CAPTIONS WITH ATTENTION》
  4. 软件变异体测试(mutation test)
  5. JS使用htef访问html文件,法语TEF考试语法及词汇练习.docx
  6. 更完整的服务!LG将成为苹果Airplay第一台智慧电视
  7. 包含C/C++开发文档的Docset文档库
  8. SAP MI01、MI04、MI07、MI10 批量盘点凭证创建+盘点数量+差异过账
  9. js算法---寻找连续数组中的缺失数
  10. 戏说计算机发展史,戏说IT:电脑让你三更死!那你还真死定了(第296期)