【ALearning】第一章 Android概述

来源:互联网 发布:淮南南乡子大数据 编辑:程序博客网 时间:2024/06/15 13:20

Android是什么

       Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。
        Android平台是一组面向移动设备的软件包,它包含了一个操作系统、中间件和关键应用程序。开发人员可以使用Android SDK(软件开发工具包)为这个平台创造应用程序。应用程序使用Java语言编写并在Dalvik之内运行。Dalvik是一款量身定制的虚拟机,它专为嵌入式应用设计,运行在Linux内核上层。
        Linux Kernel (Linux内核) Android依赖Linux 2.6版,提供核心系统服务:安全、内存管理、进程管理、网络组、驱动模型。内核部分还相当于一个介于硬件层和系统中其他软件组之间的一个抽象层次。
        Android Runtime (Android运行时)Android的核心类库提供Java类库所提供的绝大部分功能。每个Android应用都运行在自己的进程上,享有Dalvik虚拟机为它分配的专有实例。为了支持多个虚拟机在同一个设备上高效运行,Dalvik被改写过。Dalvik虚拟机执行的是Dalvik格式的可执行文件(.dex)——该格式经过优化,以降低内存耗用到最低。Java编译器将Java源文件转为class文件,class文件又被内置的dx工具转化为dex格式文件,这种文件在Dalvik虚拟机上注册并运行。在一些底层功能——比如线程和低内存管理方面,Dalvik虚拟机是依赖Linux内核的。
       Applications (应用)Android将预装一组核心应用程序,包括email客户端、短信服务、日历日程、地图服务、浏览器、联系人和其他应用程序。所有应用程序都是Java编程语言编写的。
Application Frameworks (应用框架) Android核心应用程序就是依赖框架层次API开发的,这些功能又可以被任何其他应用使用(当然要受来自框架的强制安全规范的约束)。和复用机制相同,框架允许组件的更换。
  • 丰富且可扩展的视图组件,含有Lists, Grids, Text, Button, 甚至嵌入的网络浏览器
  • Content Providers (内容提供器) 使一个应用可以访问另外一个应用的数据(如联系人),或者使一个应用内部可以共享自身数据
  • Resource Manager (资源管理器),提供对非编码资源——例如本地化字符串、图形和布局文件——的访问通道
  • Notification Manager (通告管理器),使应用在状态栏显示自定义的警报通知。
  • Activity Manager (行动管理器)负责管理应用的生命周期,提供通用导航回退支持
       Libraries (库)Android包含一套C/C++库,Android系统的各式组件都在使用。这些功能通过Android应用框架暴露给开发人员。下面列举一些核心库:
  • System C library - 衍生于BSD的标准C系统库(libc)实现(注:BSD:Berkeley Software Distribution,伯克利软件套件,是Unix的衍生系统,1970年代由伯克利加州大学开创),尤其支持嵌入式的基于Linux的设备。
  • Media Libraries - 媒体库基于PacketVideo's OpenCORE;媒体库支持很多流行音频和视频格式、静态图形文件(包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG )的播放和录制
  • Surface Manager - 管理范围:对子系统显示功能的访问,跨应用的无缝组合2D和2D图形层
  • LibWebCore - 是流行的浏览器引擎,可以支持Android浏览器和嵌入应用的WEB视图组件
  • SGL - 底层的2D图形引擎
  • 3D libraries - 基于OpenGL ES 1.0 API的实现; 该类库使用硬件3D加速器(如果硬件支持的话)或者内置的、高度优化的3D软件加速机制。
  • FreeType - 支持位图和矢量字体
  • SQLite - 能干、轻量级的关系型数据库引擎,面向所有应用
Android架构


1.2 Android与Java

Android和Java的区别:
       简单地说,一种是操作系统,一种是开发语言。具体来说,Android是一种基于Linux的开放源码操作系统,主要用于便携设备(智能手机,平板电脑)。Java是一种面向对象的编程语言,它的最大的特点就是开源和免费,而且还有很多的优秀的开源项目与框架供学习与使用。
Android和Java的联系:
      Android的应用层上的应用程序是用Java编写的,以Java作为开发语言,但是,Java并不等同于Android,因为Android SDK引用了Java SDK的大部分,少数部分被Android SDK所抛弃。
      所以,要想从事Android的开发,就必须有Java基础。
      另外,在Windows系统中可以搭建Android的Java开发环境,这样就可以实现在Windows系统中测试Android项目了。【本专栏的阐述就是以Windows环境为基础的,望各位看官,给以积极的关注与理解。】


参考资料

1、 http://baike.baidu.com/subview/1241829/9322617.htm
2、 http://www.cnblogs.com/xiangzhong/archive/2013/03/19/2969311.html
3、 http://balan.iteye.com/blog/142445

0 0