Android的体系结构采用了分层架构的思想,

从上层到底层共包括四层,分别是应用程序程序层、应用框架层、系统库和Android运行时和Linux内核。

一 应用程序层

该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。

二 应用程序框架层

该层是Android应用开发的基础,开发人员大部分情况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员可以完全访问核心应用程序所使用的API框架。并且,任何一个应用程序都可以发布自身的功能模块,而其他应用程序则可以使用这些已发布的功能模块。基于这样的重用机制,用户就可以方便地替换平台本身的各种应用程序组件。

三 系统库和Android运行时

系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。(用C语言编写)

Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.net、android.media、android.location等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。

四 Linux内核

Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。

总结:

1 Android的系统架构采用分层架构的思想,架构清晰,层次分明,协同工作。

2 Android的系统架构不仅从宏观上认识了Android系统,同时,也给我们的学习与实践指明了方向。

若是从事Android应用开发,那应该研究Android的应用框架层和应用程序层;(主要学习  写一个应用,调用哪些API)

若是从事Android系统开发,那应该研究Android的系统库和Android运行时;(API是如何实现功能的)

若是从事Android驱动开发,那应该研究Android的Linux内核。

举一个例子:

在应用程序层一个闹钟应用,访问应用框架层的一个Java API -MediaPlayer(google已经封装好了的,直接调用就可以),访问系统库里的媒体库MediaFrameWork,访问Linux内核层的Audio驱动,则调用硬件发声。

转载于:https://www.cnblogs.com/mengxiao/p/6001673.html

Android开发学习——android体系结构相关推荐

  1. Android开发学习——Android Studio配置SVN

    一.基本配置 1. 下载这个,然后双击 安装,按下图这样选 然后 傻瓜式安装 2. 进入Android studio设置:Use Command Line Client 选择浏览到第1步你本地安装 T ...

  2. android培训内容明细,记录Android开发学习

    记录Android开发学习 Menu菜单学习 1.掌握Android中菜单的创建. 2.掌握Intent信使组件. 创建菜单Menu 我们模仿微信菜单栏学习,创建一个于微信菜单栏相似的菜单 那么我们应 ...

  3. android开发学习之路——连连看之游戏逻辑(五)

    GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖, ...

  4. Android开发学习---使用Intelij idea 13.1 进行android 开发

    Android开发学习---使用Intelij idea 13.1 进行android 开发 原文:Android开发学习---使用Intelij idea 13.1 进行android 开发 1.为 ...

  5. 《Java和Android开发学习指南(第2版)》—— 1.5 本章小结

    本节书摘来异步社区<Java和Android开发学习指南(第2版)>一书中的第1章,第1.5节,作者:[加]Budi Kurniawan,更多章节内容可以访问云栖社区"异步社区& ...

  6. 《Java和Android开发学习指南(第2版)》——第2章,第2.10节本章小结

    本节书摘来自异步社区<Java和Android开发学习指南(第2版)>一书中的第2章,第2.10节本章小结,作者 [加]Budi Kurniawan,更多章节内容可以访问云栖社区" ...

  7. Android开发学习之基于ViewPager实现Gallery画廊效果

    通过我们前面的学习,我们知道ViewPager是可以做出近乎完美的滑动体验,回顾整个Android,我们发现Gallery具备同样的特点,于是我们大胆地猜想,Gallery是否和ViewPager之间 ...

  8. Android开发学习总结(四)——Eclipse在线安装ADT插件

    Android开发学习总结(四)--Eclipse在线安装ADT插件 要想使用Eclipse开发Android应用,首先要安装一个ADT插件,在此记录一下在Eclipse中采用在线安装的方式ADT插件 ...

  9. android开发用百度识别图片格式,Android开发学习之路-机器学习库(图像识别)、百度翻译...

    对于机器学习也不是了解的很深入,今天无意中在GitHub看到一个star的比较多的库,就用着试一试,效果也还行.比是可能比不上TensorFlow的,但是在Android上用起来比较简单,毕竟Tens ...

最新文章

  1. 课工场java新手基础教程_Java新手学习路线,学Java不走弯路
  2. Android 导出traces.txt 遇到的坑
  3. python安装成功第三方库但import出问题_为什么会在pyspark在RDD中调用python第三方库失败?...
  4. Slim Span UVA - 1395
  5. python读取excel送到网页_python怎么读取excel!怎么用python将excel数据写入网页中
  6. MySQL百一题库_「灵魂拷问」MySQL面试高频一百问(工程师方向)
  7. Welcome to Apache HBase 介绍一
  8. JavaScript链式调用,对象属性与遍历,this指向,callee和caller
  9. Chain of Responsibility(职责链模式)
  10. 鸿沟理论(The Chasm Theory)介绍
  11. 【control】模型预测控制(MPC)
  12. Zemax学习笔记(7)- 双透镜设计实例
  13. Qt实战案例(18)——Qt位置相关函数汇总实例
  14. Excel VBS编程 命令详细介绍 详解
  15. 对教材-人工智能导论的不同看法
  16. 数字政府智慧政务一网通办解决方案2022
  17. vue 圆形 水波_vuejs 水波纹框架
  18. 中科易朔CASfire 分析中心
  19. Flash ActionScript3 殿堂之路 第一章:ActionScript3语言介绍与开发环境
  20. 磐石云服务器_磐石云双十二高防ip、海外服务器限量1元秒杀

热门文章

  1. Gridview数据显示实现按日期排序分割线
  2. [Cocoa]XCode的一些调试技巧
  3. Oracle常用工具
  4. 看到一个flash做的超酷网站
  5. 升级python2.6.6到python2.7导致pip命令不可用
  6. webpack入门学习手记(一)
  7. JSON.parse()出错解决
  8. 博客作业05--查找
  9. Python之父重回决策层,社区未来如何发展?
  10. 变量的高级主题(六)