Android平台简单介绍

1.  起源和发展

  Android是由Android公司的创始人Andy Rubin创造的,而后被Google收购,Google的目标是将Android打造成一个标准化、开放式的移动操作系统平台。

  Android是开放源代码的移动操作系统软件,提供了丰富的功能和酷炫的用户界面。Google不断优化和改进Android系统,并开放原生的安卓系统源代码允许各个软件厂商或者手机厂商进行定制化的修改。同时Google也提供了丰富的Android API和强大的开发环境,使得在Android平台上开发Android App变得十分便捷。

  Android是目前移动端市场占有率最高的手机操作系统,事实上,Android已经不仅仅用在手机端,还广泛用于TV、手表等各种可穿戴设备以及各种智能硬件。

 

2.  Android平台架构

  Android平台是基于Linux内核构建起来的,从上到下主要包含四个层次:

应用程序层,这一层主要包含各种应用程序软件,包括最基本的通话、短信、联系人、浏览器等App,还包括大量开发者开发的各种App;

应用程序框架层,所有的App都是基于应用框架层开发的,应用框架层提供了大量的API供开发者使用,开发者也可以提交自己开发的功能模块;

系统环境层,这一层包含了支持上层功能所需要的大量C/C++函数库,还包括Android运行时环境,Android运行时环境包括Java核心库以及Android虚拟机;

Linux内核层,Android内核建立在Linux 2.6之上,这一层提供最基础的诸如内存管理、进程管理、网络协议栈等操作系统级服务;

  关于Android虚拟机,在5.0版本之前使用的是Dalvik虚拟机,而自5.0版本之后使用的是ART。Dalvik虚拟机是一种解释执行的虚拟机,由于其在运行App时进行动态编译,使得运行App的速度比较慢。ART采用AOT(Ahead of Time)的技术在安装App时就进行编译,使得运行App的效率得到较大提升。

 

3.  Android开发环境

  目前主流的Android开发工具主要包括两种:Eclipse + ADT和Android Studio,前者是在Eclipse之上集成了Android Development Tool,后者是Google官方提供的开发工具,正越来越流行。

  开发Android程序首先需要下载Android SDK,可以从http://developer.android.com上下载官方安装文件,安装成功后包括Android SDK管理器、AVD管理器、Android系统源码以及工具等。Android SDK管理器用于管理SDK的各个版本的下载。AVD即Android Virtual Device,用于在PC端模拟安卓机器供开发调试使用,AVD管理器即用于管理AVD,由于AVD的启动以及运行非常缓慢,因此实际通常在真机上开发,只需要打开真机的调试模式。

 Android提供了另外两个常用的开发工具,即Monitor和ADB(Android Debug Bridge)。Monitor用于监视Android设备的运行状态,包括系统各项资源使用情况以及运行的各个App的线程状态等。ADB是一个功能十分强大的调试工具,可以方便地实现在Android设备和开发电脑之间复制文件、安装卸载App、执行shell命令等功能。

 

4. Android项目组成结构

  一个开发中的Android项目通常主要包含以下几个部分:

res目录,该目录下存放着Android项目使用到的各种资源文件,如layout子目录下存在布局相关的xml文件,values子目录下存放strings.xml、colors.xml、dimens.xml等;

src目录,该目录即保存着项目的java源文件;

AndroidManifest.xml文件,该文件是Android项目的系统清单文件,定义了Android项目的基本属性,如:名称、图标、访问权限等;

libs目录,该目录存放需要用到的第三方jar包;

  Android项目中还包括一个R类,该类是由开发环境自动生成的一个工具类,其中定义了Android需要使用的各种资源,为在程序源代码中方便地访问资源文件中定义的各种资源提供了接口。每类资源在R类中都对应着一个内部类,而每个具体的资源都对应着内部类中一个public staic final int型的属性。

 

5. Android四大组件

  Android API提供了大量的开发接口,程序员主要是围绕以下四大组件进行开发:

Activity,Activity负责与用户进行交互,提供了可视化的用户界面,应用程序通常由多个Activity组成,这些Activity保存在Activity栈中,当前活动的Activity位于栈顶;

Service,Service通常在后台运行,负责为其他组件提供后台服务或者监控其他组件的运行情况,Service拥有自己独立的生命周期;

BroadcastReceiver,BroadcastReceiver类似于事件监听器,只是它监听的事件源不是对象,而是其他的Android组件;

ContentProvider,ContentProvider用于多个应用程序之间的数据交互,一个应用程序可以通过ContentProvider接口对外提供数据,而另一个应用程序则可以通过ContentResolver来获取该应用程序提供的数据;

 

6. App在Android系统中的运行环境

  Android是一个基于Linux的多用户操作系统,在Android系统中,每个App就是一个独立用户。

  (1) 系统为每个App维护一个User ID(这个UserID的具体值只有系统知道,App本身并不知道),系统为该App所拥有的文件设置权限,确保只有获得该User ID的程序才可以访问;

  (2) 与JavaSE平台一样,Android系统中每个应用进程都运行在一个单独的虚拟机中;

  (3) 两个App可以拥有共同的User ID,从而可以互相访问对方的文件,拥有共同User ID的App进程还可以运行在一个虚拟机中,从而可以节省系统资源;

  (4) App在安装时会向系统申请需要的权限,如调用摄像头、读取联系人等,没有申请相关权限则无法访问系统相关资源;

 

 

 

参考资料 《疯狂Android讲义》

 

posted @ 2015-11-12 16:49  jqc  阅读(2629)  评论(0编辑  收藏  举报