Android系统很庞大,所有我们学习的都只是冰山一角。记得刚开始接触Android时,发现完全不知道如何入门去学习Android,很迷茫,很无措。所以这里大概说下Android系统的框架,希望有助于初学者对Android的整体了解。

Android系统大体可以分为五层,从上往下分别是:

Applications 层,Framework层,Libraries层,Hardware层,Linux层。

Applications层

这一层是app开发工程师接触最多的一层,与用户直接交互的就是这些应用程序。

应用程序的开发采用的是Java语言,这一层是一个被广大Java开发者热捧的Java世界。这个世界并不是完全独立,它的运转依赖于Native世界,同时也需要framework层作为基石。

主要开发工具就是Android Studio,很强大,用得很爽。

Framework层

这一层大部分是由Java语言编写,封装了很多功能,为Applications层提供各种各样的API,满足业务需求。通常我们看到的PMS,AMS,WMS等,就是在这一层进行实现。

一般定制功能或者解决系统bug的时候,需要对framework层代码进行编辑,我比较喜欢用vim编辑,然后在系统环境中进行编译。

Libraries层

这一层主要提供动态库,Android运行时库、Dalvik虚拟机等。这一层大部分都是用C或者C++写的,所以这一层可以简单把它看成是Native层。

可以单编成so库,然后推进机器端进行调试。

Hardware层

Android系统的硬件抽象层(全称Hardware Abstract Layer, 简称HAL)运行在用户空间中,它向下屏蔽硬件驱动模块的实现细节,向上提供硬件访问服务。通过硬件抽象层,Android系统分为两层来支持硬件设备,其中一层实现在用户空间(User Space),另外一层实现在内核空间(Kernel Space)。传统的Linux系统把对硬件的支持完全实现在内核空间,即把对硬件的支持完全实现在硬件驱动模块中。

Android分两层去控制硬件的原因,在于保护商家的利益。因为Linux是完全开源的,Linux部分的代码需要公开,但这样一来,关于一些Linux内核驱动的控制逻辑细节也会被公开。所以就通过两层来实现,一层是位于user space空间,专门实现对硬件的控制逻辑,这一层不作公开。而另一层则是在Linux内核中实现,这一层只是对硬件的一些简单读写操作,例如读写硬件寄存器的通道等。这一层可以被公开。

Linux层

包含了Linux内核和一些驱动模块(比如LED驱动,USB驱动,wifi驱动等)。这一层主要是跟硬件打交道,调驱动居多。

增加一个驱动或者debug时,可以单独编译kernel,然后单独烧录入系统。

结语

如上就是对Android系统框架的一个简单描述,简单介绍了各层大概做的事情。所以如果是刚开始接触Android的同学,建议先从Applications层,搭建第一个app(hello world)开始。因为这一层有比较方便好用的工具AS,初学者只需要上网大概了解下AS的安装和项目创建过程,就能创建自己的app。然后再慢慢去学习Java语法,很快就能入门。

至于其他层,可以作为后续能力提升,再向下延申学习。

关键在于坚持和学习。

Android系统框架有哪些?相关推荐

  1. android系统框架()

    Android系统框架介绍:   1.大体框架: -src目录: 主要是完成java代码的编写 -assets目录: 资源目录 -res目录: 存储图片,布局文件和字符串,菜单等文件 -bin目录: ...

  2. Android系统框架-Androi的面试必问部分

    "Android系统框架"-Androi的面试必问部分 安卓系统框架层的详解: 首先我们先看看框架结构图: 通过图片可知,从上到下分为了四层:"应用程序"层-& ...

  3. Android系统框架四层结构

    Android系统框架四层结构 安卓系统框架图大致如下: (蓝色:java程序,java代码编写:黄色:运行JAVA程序而实现的虚拟机:绿色:C/C++语言编写的程序库:红色:linux内核+driv ...

  4. android应用程序框架图,Android系统框架图详解

    Android系统从下至上分为4层:Linux内核.Android程序库及Android运行时.Android应用程序框架,以及应用程序等. 图1-1 Android系统框架 1. Linux内核(L ...

  5. android 系统框架 dx

    引用:http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216502.html 从上图中可以看出,Android系统架构为四层结构,从上层到下层 ...

  6. Android系统的系统运行库层,Android系统框架

    Android主要可以分为四层架构:Linux内核层,系统运行层,应用框架层和应用层. 1.Linux内核层 Android系统是基于Linux内核开发的,为Android设备的各种硬件提供底层驱动, ...

  7. Android系统框架

    转自:网络 Android系统是基于Linux和Java技术,它在底层采用Linux内核和本地库,在上层提供Java支持框架和开发接口.它借助于 Linux强大的稳定性.开放性和可移植性,Java语言 ...

  8. Android系统框架总结(好文)

    原址 通用概念 Android框架图 Android应用程序框架 UI基本开发 Fragment 安全策略 在Android中,安全涵盖了应用程序的部署和执行.对于部署来 说,Android应用程序必 ...

  9. Android系统框架详解(4)--Applications and Framework

    4.Android Applications and Framework 作者:李利伟不加V 今天特殊一点,两个层放在了一起,不是因为两个层类似,是因为这两个层不能详细讲解,这个两层东西太多了,只能使 ...

最新文章

  1. 新型机器人模拟蜻蜓飞行可以乱真!
  2. linux shell脚本 传参,在bash shell脚本中传播所有参数
  3. C/C++程序设计IDE推荐
  4. 【Prince2科普】P2七大主题之商业论证
  5. java 守护线程 作用_java中守护线程的一些概念和用法
  6. (转)10条名言,让你少走弯路
  7. Qt Embedded性能优化详解
  8. 基于MATLAB的运动车辆跟踪检测系统
  9. ubuntu常用功能安装集锦
  10. error A2070:invalid instruction operands 错误原因
  11. pc端MNIST数据集pytorch模型CNN网络转换为onnx部署树莓派4B和神经棒NCS2(使用openvino2021框架)
  12. Spring @scheduled注解周期性执行超时任务对任务调度的影响分析
  13. html网页文字链接的若干问题
  14. 求解:Assertion failed (size.width0 size.height0) in cv::imshow, file C:\build\master_winpack-buil
  15. 支持微信多开、防止消息撤回的小助手
  16. 响应式分布式区别_边缘计算的七种定义,边缘计算与云计算、雾计算的区别
  17. 创建学生信息管理数据库
  18. Windows10环境下设置播放器默认软件打开方式
  19. redis内存消耗详解
  20. Java-集合当中进行模糊查找

热门文章

  1. cmd下mysql 格式输出混乱
  2. Proxy Authentication Required ( Forefront TMG
  3. AI+基建,微柏软件携手飞桨EasyDL铸造智慧梁场
  4. java+登录window域认证网页_Java 实现 QQ 登陆
  5. bigemap如何添加自定义地图
  6. 整理:数据库设计的六个阶段详解
  7. 小程序使用wxml2-canvans制作图片并下载
  8. 管家婆软件安全钥匙(安全U盘)的使用方法
  9. 普通大学生互联网逆袭风雨路
  10. ocv特性_图3在有负载的情况下电池的ocv特性和放电曲线.pdf