Android 系统架构,真心不敢说讲解或者解释。只能说学习了解。

今天,我只是简单的学习了解一些非常基本和简单的介绍。

说到Android,大多数人的理解就是app。但是,Android并不是app,app只是Android的一个很小的部分。所以,看到很多网文说,Android快死了,要被h5干掉了的时候,真的觉得可笑。h5只会干掉那些只会写界面的Android程序员。

ok,话不多说,开始今天的学习吧。

Android,做Android的同学都是知道的,Android是用java写的(准确来说是用javaAPI,虽然现在用kotlin了,但是,依然调用的是javaAPI),但是,调用javaAPI之后,又干了什么?可能有些同学就不知道了。就像是,tv.settext("内容"),我们知道界面会出现“内容”,但我们不知道为什么会出现内容,或者说,为什么调用这句话,就会出现内容。其实,我也不是很清楚,我只能用自己的理解,参考Android官方文档,去解释。

首先,引入Android系统架构的概念:Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行库层、硬件抽象层和Linux内核层。

这里,我盗图一下:如下图,我们的app其实就是在第一层。

当我们的app调用某个api的时候,其实是调用framework层的某个指令(方法)

,framewoek层对应的指令,又会向下传递(调用),

调用Native层(系统运行库层,这一层其实就是虚拟机层,这一层会将javaAPI“转换”为字节码,再将字节码“转换”为机器码)

然后再将机器码向下传递,给硬件抽象层(这一层,其实就是硬件接口层,是一层抽象)

最终的实现,其实是Linux内核层,这一层才能真正的调用硬件,让硬件干事情(当然,这里就是我的盲区了)

Android 系统架构了解学习_第1张图片

ok,最后总结一下;

应用层:系统内置的应用程序以及非系统级的应用程序都是属于应用层,主要负责与用户进行直接交互,比如计算器,qq等app

应用框架层:javaAPI,就是我们写app时,调用的那些自带的api,activity.finish()

系统运行库层: C/C++程序库比如多媒体播放器,Android运行时库 ,其实就是ART虚拟机(5.0系统之后,Dalvik虚拟机被ART取代,其实可以理解为JVM)

硬件抽象层(HAL):硬件抽象层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化,就是将控制硬件的动作放在硬件抽象层中。

Linux 内核:Android 的核心系统服务基于Linux 内核,在此基础上添加了部分Android专用的驱动。系统的安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。

下一篇,我想详细学习了解一下jvm虚拟机中,类加载过程。

更多相关文章

  1. 谷歌Android操作系统有望主导移动市场
  2. Android 驱动和系统开发. 一个简单的例子
  3. 《深入解析Android 5.0系统》——导读
  4. Android AOSP基础(三)Android系统源码的整编和单编
  5. Android内核开发:系统分区与镜像文件的烧写
  6. Android安装的时候系统都做了些什么
  7. Android操作系统发展历程

随机推荐

  1. 关于android的9path图片处理
  2. MediaScanner源码分析
  3. Android(安卓)touch screen keyboard 移
  4. Android客户端与服务器交互方式(1)
  5. vue结合android,mint中popup和picker实现
  6. Android版本更新(断点下载)
  7. 探究J2ME和Android的几大区别
  8. android微信朋友圈分享
  9. android进程重启及activity恢复
  10. Android Edittext设置android:imeOptions