〇、写在前面
自己从事手机开发和android应用开发也有几年的时间了,遇到过各种需求,解决过各种问题,但一直没有把自己工作和学习的内容整理记录,导致很多做过的解决过的问题都一时无法记起来了。现在把Android上学习到的内容列出来,方便以后自己查阅,但愿能温故而知新吧。
一、Android的由来
Android作为一款基于Linux内核开发的开源操作系统,最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资,后来Google与开放手机联盟共同研发改良Android系统,于2008年10月发布了第一部Android智能手机,此后逐步扩展到平板电脑、电视等终端设备。
二、系统框架
Android的系统架构采用了分层架构的思想,如下图所示。从上层到底层共包括四层,分别是应用程序层、应用框架层、系统库和Android运行时以及Linux内核。
Ø Linux内核
Android系统的核心服务依赖于Linux内核,如安全性、进程管理、硬件驱动和网络协议等。
Ø 系统库和运行时
Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务。包括图层管理、媒体库、SQLite、OpenGL ES、FreeType、WebKit、SGL、SSL和libc。Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所需要调用的功能函数。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
Ø 应用程序框架层
该层是android应用开发的基础,大部分情况下,应用开发人员都是和这一层的内容打交道。该层简化了组件的重用,开发人员可以直接使用其提供的组件来进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。该层的内容包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。
Ø 应用程序层
该层主要运行的是一个个的应用程序,包括系统核心程序,例如短信、电话、电子邮件、联系人管理等。还有开发者自己编写的应用程序。