PS:小虾米大学刚毕业,现在是一个android应用开发者。从实习期的一窍不通到现在能写简单的应用,期间的酸甜苦辣也只有自己知道。由于一
直在公司做项目时边学边写,最近总感觉好像什么都会点但是什么又都不怎么记得,可能是缺少体系的学习再加上本人记忆力比较差,所以我决定
在这里好好的系统的再次学习android,打好扎实的基础才是腾飞的关键。本文许多地方是粘贴的其他地方的内容,纯粹只为记录自己向别人学习
的过程
一. 框架(FrameWork)
1.什么是框架?
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制
的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。
而且,框架一般是成熟的,不断升级的软件。 android框架就像一个舞台,它提供场地,灯光和音响等各种组件,让你开发的应用在舞台上翩翩起
舞。
2.使用框架的优点
二. Android框架
1.Andorid框架图
图1.1 Android框架图
如图1.1,整个Android框架可分为5个部分,从底层到上依次为:linux内核层(Linux Kernel),库(Libraries),Android运行环境(Android Runtime
),应用框架层(Application Framework),应用层(Applications)。
2.各层简介
2.1 linux内核层(Linux Kernel):Android基于Linux 2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel
也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM((Open System
Interconnection/Reference Model)——开放系统互连参考模型,1983年ISO颁布的网络体系结构标准。从低到高分七层:物理层、数据链路层、网络
层、传输层、会话层、表示层、应用层。各层之间相对独立,第N层向N+1层提供服务。),就会知道分层的好处就是使用下层提供的服务而为上层
提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各司其职,各层提供固定的SAP(Service
Access Point),专业点可以说是高内聚、低耦合。
Android使用Linux2.6作为操作系统,Linux2.6是一种标准的技术,Linux也是一个开放的操作系统。Android对操作系统的使用包括核心和驱动程序两
部分,Android的Linux核心为标准的Linux2.6内核,Android更多的是需要一些与移动设备相关的驱动程序。主要的驱动如下所示:
2.2 库(Libraries):Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework
)暴露给开发者。下面列出一些核心库:
2.3 Andorid运行环境(Android Runtime):包含了一组核心库(Core Libraries)和Dalvik虚拟机(Dalvik Vitual Machine)
2.4 应用框架层(Application Framework):Android的应用程序框架为应用程序层的开发者提供APIs,它实际上是一个应用程序的框架,应用程序的体
系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制
允许用户替换组件。。由于上层的应用程序是以JAVA构建的,因此本层次提供的首先包含了UI程序中所需要的各种控件:例如: Views (视图组件)
包括 lists(列表), grids(栅格), text boxes(文本框), buttons(按钮)等。甚至一个嵌入式的Web浏览器。
2.5 应用层(Applications):Android的应用程序主要是用户界面(User Interface)方面的,通常以JAVA程序编写,其中还可以包含各种资源文件(
放置在res目录中)JAVA程序及相关资源经过编译后,将生成一个APK包。Android本身提供了主屏幕(Home),联系人(Contact),电话(Phone
),浏览器(Browers)等众多的核心应用。同时应用程序的开发者还可以使用应用程序框架层的API实现自己的程序。这也是Android开源的巨大潜
力的体现。
3. 总结
Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆叠(Software Stack),或称为「软件叠层架构」,叠层主要分成三层:
操作系统、中间件、应用程序。