1了解Android系统1.1 Android系统介绍Android是Google 开发的基于Linux 平台的、开源的、智能手机操作系统。
Android 包括操作系统、中间件和应用程序,由于源代码开放,Android 可被移植到不同的硬件平台上。
围绕在Google的Android 系统中,形成了移植开发和应用程序开发两个不同的开发方面。
手机厂商从事移植开发工作,应用程序开发可以由任何单位和个人完成,开发的过程可以基于真实的硬件系统,还可以基于仿真器环境。
作为一个手机平台,Android 在技术上的优势主要有以下几点:●全开放智能手机平台●多硬件平台的支持:应用程序可通过标准API访问核心移动设备功能。
●使用众多的标准化技术:可以轻松的嵌入HTML、JavaScript等网络内容●核心技术完整,统一:应用程序是平等条件创建的,可被替换或扩展。
●应用程序可以并行运行。
Android是完整的多任务环境,在后台运行时,应用程序可生成通知引起用户注意。
●完善的SDK 和文档●完善的辅助开发工具Android 的开发者可以在完备的开发环境中进行开发,Android 的官方网站也提供了丰富的文档、资料。
这些都使得Android 系统的开发和运行在一个良好的生态环境中。
1.2 Android系统的软件结构Android 是一个开放的软件系统,它包含了众多的源代码。
从下至上,Android 系统分成4个层次:●第1 层次:Linux 操作系统及驱动;●第2 层次:本地代码框架,包含各种类库和运行环境;●第3 层次:Java 框架;●第4 层次:Java 应用程序。
Android 的第1 层次由C 语言实现,第2层次由C 和/C++实现,第3、4层次主要由Java代码实现。
对于Android 应用程序的开发,主要关注第3层次和第4层次之间的接口。
Android 系统的架构如图所示:1.2.1操作系统(OS)---第一层Android 的核心系统服务依赖于Linux 2.6 内核,操作系统为Android提供的服务包括:●安全性(Security)。
●内存管理(Memory Management)●进程管理(Process Management)●网络堆栈(Network Stack)●驱动程序模型(Driver Model),包含以下这些常规的驱动程序:(1)Display Driver(2)Keypad Driver(3)Camera Driver(4)WiFi Driver(5)Flash Memory Driver(6)Audio Driver(7)Binder(IPC) Driver(8)Power Management1.2.2库(Libraries)和运行环境(RunTime)---第二层这层中包含了C/C++库以及Android运行库:●系统C库(libc):一C系统函数库(libc),专门为基于嵌入式Linux的设备定制。
●媒体库(Media Framework):基于PackeVideo OpenCore,支持多种常用的音频,视频格式以及回放和录制,同时支持静态图像文件。
编码格式包括:MPEG4、H.264,MP3、AAC、AMR、JPG、PNG。
●Surface Manager:对显示子系统的管理,并且为多个应用提供2D,3D图层的无缝融合。
●WebKit:web浏览器引擎,用来支持Andiroid浏览器或者嵌入的web视图。
●SGL:底层的2D图形引擎。
●OPENGL|ES:基于OpenGL ES 1.0 APIs实现,可以使用硬件3D加速或者使用高度优化的3D软加速。
●FreeType:位图(bitmap)和适量(vector)字图显示支持。
●SQLite:一个对所有应用程序可用,功能强大的轻量级关系型数据库引擎。
●Core Libraries:该核心库提供了Java编程语言核心库的大多数功能。
●Dalvik VM:android平台的一个虚拟机,它相当于PC中Java的虚拟机JVM。
1.2.3应用程序框架(Application Framework)---第三层普通开发者可以使用Android基本应用程序使用的系统API,android 应用框架中的各个模块都可以被复用,各种服务也可以被复用。
开发过程中常用到的基本框架组件如下:●一组View(UI 组件):UI组件包括Button(按钮),EidtText(文本框),TextView(标签),List(列表)等,灵活运用这些组件可快速方便的创建良好的用户交互界面。
●Content Providers(内容提供者):是一种服务,通过这种服务应用程序之间可以实现数据的互相访问和共享,比如通讯录的存储就使用了这种服务,其它应用也可以访问通讯录中存储的联系人信息。
●Resource Manager(资源管理):图片,用户界面(Layout xml),字体,颜色,UI组件的Id等都称为android中的资源,它们都通过Resource Manager来统一进行管理。
●Notification Manager(消息通知管理):在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示。
比如有短信来的时候,android自动会将这个消息提示在状态栏上,用户可以及时的看到。
●Activity Manager(活动管理):Activity管理着应用程序的生命周期,并且控制着应用的导航,扮演控制器的角色。
每个Activity类似于Windows应用中的一个窗口。
一般的应用都是通过一个个Activity交互构成的。
●Window Manager(窗口管理):管理所有启动的窗口程序。
●Location Manager(位置管理):用来管理地图服务的相关功能。
●Telephoney Manager(电话管理):用来管理有关的电话的相关功能。
●Package Manager(包管理):管理所有的安装在android系统内的应用程序。
1.2.4应用程序(Application)---第四层用户交互的一个层次,基本都是通过Java语言编写的独立的能够完成某些功能的应用程序。
Google最开始时就在Android系统中捆绑了一些核心应用,如桌面(Home),联系人(Contacts),拨打电话(Phone),浏览器(Browers)等。
开发人员可以使用应用框架提供的API编写自己的应用程序,普通开发人员要做的事情就是开应用层的程序提供该广大消费者使用。
2 Android系统的开发环境的搭建2.1 Android系统的IDE开发环境2.1.1 Android系统的环境安装集成开发包下载(eclipse+sdk+adt):/intl/zh-cn/sdk/index.htmlAndroid系统的Windows 版本需要以下的内容:●下载安装JDK 1.5 或者JDK 1.6 ,配置环境变量JAVA_HOME、classpath、path●下载安装Eclipse 集成开发环境,/downloads/⏹下载,解压到指定位置即可。
●下载Android SDK并安装ADT插件⏹下载SDK(Software Development Kit)压缩包,解压到指定位置。
⏹配置环境变量android_sdk_home,通常设定为为Android SDK 安装目录,作为存放虚拟机文件的位置。
⏹下载ADT(Android Development Tools)插件,目的是为开发人员提供一个强大的可视化的集成开发环境。
⏹安装ADT插件,依次选择“Help”—>“Install New SoftWare”,弹出下图对话框:单击“Select All”,单击“Next”,弹出下一个对话框:单击“Next”,弹出下一个对话框:单击“Finish”,会显示如下图的对话框●重启Eclipse,配置SDK。
依次选择“Window”→“Preferences”,弹出下图对话框:选择SDK的安装目录,如:“D:\android-sdk-windows”2.1.2 Android SDK目录结构Android SDK使用预编译的内核和文件系统,屏蔽了Android 软件架构第三层及以下的内容,开发者可以基于Android系统的API 配合进行应用程序层次的开发。
Android SDK 的目录结构如下所示:●add-ons:附加的包;●docs:HTML 格式的离线文档;●tools:工具。
●samples/:包含一系列的应用程序,可以在Android 的开发环境中,根据它们建立工程,编译并在仿真器上运行;●platforms:SDK核心内容,包含了的各个Android SDK版本的目录中,包含系统映像,工具、示例代码等内容。
⏹data/ :包含默认的字体、资源等内容;⏹images/ :包含默认的Android 磁盘映像,包括了系统映像(Android systemimage), 默认的用户数据映像(userdata image),默认的内存盘映像(ramdiskimage)等等,这些映像是仿真器运行的时候需要使用的;⏹skins/:包含了几个仿真器的皮肤,每个皮肤对应了一种屏幕尺寸;⏹templates/:包含了几个用SDK 开发工具的模板;⏹android.jar:Android 库文件的JAVA程序包,在编译本平台的Android 应用程序的时候被使用。
2.1.3 ADT插件的功能ADT 扩展了Eclipse的功能,可以让开发人员快速的创建android项目,创建应用界面,调试程序等等。
●可以从Eclipse IDE内部访问其他的Android 开发工具。
例如,访问DDMS 工具的功能——屏幕截图、管理端口转发(port-forwarding)、设置断点,观察线程和进程信息。
●提供了一个新的项目向导(New Project Wizard),以便快速生成和建立起新Android应用程序所需的最基本文件●使构建Android 应用程序的过程变得自动化,以及简单易行。
●提供了一个Android 代码编辑器,方便程序员为Android manifest 和资源文件编写有效的XML。
2.2 Android开发使用的主要辅助工具在仿真器环境中,可以使用集成的Android相关工具。
使用这些工具的方法:Window->Show View->Other->Android,选择各个工具。
主要包括:1、Logcat(日志输出):查看Log信息的工具,可以获得Android系统运行各种信息,主要有五类(verbose、info、error、debug、warn),这些信息包含时间(Time),级别(Level)、进程ID(Pid)、标签(tag)、Log内容(Message)等部分。