最近要做物联网实训,选的题目是《基于安卓的企业办公环境测控系统软件设计》(名字还挺长~),所以安卓菜鸟开始从头学习安卓。学习第一步,肯定是要对Android整个体系有个整体的认知,此为该文的由来。班门弄斧,还请各位高手多多指点。
Android是一种基于Linux内核的自由及开源的操作系统,主要用于移动设备上,如手机、平板,由Google开发,我们习惯称之为“安卓”。在这着重讲下Android的体系结构。先上图:
此图是Google官方提供的技术结构图,个人认为,这个图是学习Android开发必须了解的一个图。
首先,最下方Linux Kernel,Android是运行在Linux Kernel上的,并非GNU/Linux。Linux Kernel是针对Android进行了优化,大部分为各种驱动,提供了最基本的功能。这部分往往不需要应用程序者关心,所以此处略过。
往上,Libraries,系统运行库,主要被各种组件所用,如libc标准C系统函数库,专门为基于Embedded linux的设备定制;Media Framework媒体库,支持多种音频、视频的播放回放及录制;SQLite,Android自带的一个内部关系数据库;Surface Manager界面管理器,对显示子系统的管理,并为多个应用程序提供2D和2D图层的无缝融合。
Libraries右方Android Runtime,是Android中一个很重要的组成部分,引导系统会调用Android Runtime中的Start函数,在这个函数中完成启动Android的一切工作。其中的Core Librarie核心库,提供了Java编程语言的核心库中大多数功能,类似于JAVA中的JDK;Dalvik Virtual Machine,为Google自己开发的虚拟机,每个应用程序都有自己的Dalvik虚拟机实例,这样是为了一个设备可以有多个虚拟机。、
往上Application Framework应用程序框架,这是开发人员需要重点了解的一部分,含有大量的API,大大降低了我们的开发成本。该架构简化了组件重用,如View System,View视图包括Lists列表,Grids网格,Buttons按钮等,用来构建应用程序;Content Providers使得应用程序可以访问另一个应用程序的数据;Activity Manager用来管理应用程序生命周期并提供常用的导航回退功能。
最上为Application应用程序,我们的代码就是调用Application Framework呈现在该层。Android会同一系列核心应用程序包一起发布,该应用程序包括客户端、短消息、日历、地图、浏览器等,所有应用程序都是使用JAVA语言编写。
再者,须了解Android开发四大组件:Activity:用于表现功能,所有程序的根本,可以简单把Activity看做手机屏幕的一屏,在Activity中可以添加按钮等组件,与网页概念类似;Service:后台运行服务,不提供前台呈现,简单比方说,听歌期间打开浏览器,此时歌曲播放后台运行,此由音乐播放的Service控制;Broadcast Receiver:用于接收广播,Broadcast是一种广泛应用在应用程序之间传输信息的机制,而Broadcast Receiver是对发送出的Broadcast进行过滤并响应的一类组件,使得应用程序可以对相应的外部事件进行响应;Content Provider支持多个应用程序中存储和读取数据,可以看做数据共享的一种方法。
概况来讲,作为一个安卓菜鸟,我需要重点学习的为上两层,在已有的JAVA学习基础上,希望接下来的学习可以顺利许多~加油!
参考资料:
http://blog.csdn.net/hungcen/article/details/7484926
http://www.marschen.com/portal.php