安卓系统编程开发报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Android编程报告
一安卓系统简介
Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统,早期由Google开发,后由开放手持设备联盟(Open Handset Alliance)开发。
它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。
底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。
2010年末数据显示,仅正式推出两年的操作系统Android已经超越称霸十年的诺基亚(Nokia)Symbian OS系统,采用Android系统主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、摩托罗拉(MOTOROLA)、LG、Sony Ericsson等,使之跃居全球最受欢迎的智能手机平台,Android系统不但应用于智能手机,也在平板电脑市场急速扩张。
二初识安卓应用程序
Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。
两者之间通过由ServiceConnection 和AIDL连结,达到复数程序同时运行的效果。
如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。
至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup 之内还可以有ViewGroup。
View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。
View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。
另外还有Image等同于J2ME的BitMap。
三Andoroid中介软件
操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。
Bionic是 Android 改良libc的版本。
Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。
Surface flinger 是就2D或3D的内容显示到屏幕上。
Android 使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。
OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。
skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。
2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。
数据库又分为共用数据库及私用数据库。
用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。
Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。
Dalvik 虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex 格式的文件。
四硬件抽像层(Hardware Abstraction Layer)
Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。
HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。
Stub 向HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。
HAL 里包含了许多的 stub(代理人)。
Runtime 只要说明“类型”,即 module ID,就可以取得操作函数。
五Android编程语言
Android 是运行于 Linux kernel之上,但并不是GNU/Linux。
因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。
Android
为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android 将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。
bionic/libc/kernel/ 并非标准的kernel header files。
Android 的kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。
下载Android 源码之前,先要安装其构建工具 Repo来初始化源码。
Repo 是 Android 用来辅助Git工作的一个工具。
六安卓开发环境简介以及配置安卓的开发环境
a.下载必备的IDE软件
(1)Java JDK下载:
进入该网页: /javase/downloads/index.jsp (或者直接点击下载)如下图:
选择 Download JDK 只下载JDK,无需下载jre.
(2)Eclipse下载
进入该网页: /downloads/ (或者直接点击下载:BT下载 HTTP下载)如下图:
我们选择第一个(即eclipse IDE for java EE Developers)
(3)下载Android SDK
说明: Android SDK两种下载版本,一种是包含具体版本的SDK的,一种是只有升级工具,而不包含具体的SDK版本,后一种大概20多M,前一种70多M。
完全版下载 (android sdk 2.1 r01) 升级版下载 (建议使用这个,本例子就是使用这个这里面不包含具体版本,想要什么版本在Eclipse里面升级就行)
b.软件安装
(1)安装jdk 6u19安装完成即可,无需配置环境变量
(2)解压eclipse,eclipse无需安装,解压后,直接打开就行
(3)解压android sdk 这个也无需安装,解压后供后面使用
(4)最终有三个文件夹,如下图:
c. Eclipse配置
1 安装android 开发插件
(1)打开Eclipse, 在菜单栏上选择
help->Install New SoftWare 出现如下界面:
点击 Add按钮,出现如下界面
输入网址: https:///android/eclipse/ (如果出错,请将https改成http) 名称: Android (这里可以自定义)
点击OK,将出现如下界面
点击 Next按钮,出现如下界面:
点击Next按钮,出现如下界面:
选择 I accept the terms of the license agreements点击Next,进入安装插件界面
安装完成后,出现如下界面
点击Yes按钮,重启Eclipse
2 配置Android SDK
(1)点击菜单window->preferences,进入如下界面
选择你的android SDK解压后的目录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK (2)升级SDK版本
选择菜单 window->Android sdk and avd manager 出现如下界面
选择update all按钮,出现如下界面
for api 7 , 自己可以任意自定义,确定后,选择install按钮,进入安装界面如下:
安装完成如下:
(3)新建AVD(android vitural device)
和上面一样,进入android sdk and avd manager,选中Vitural Devices 在点击New按钮
点击New按钮后,进入如下界面:
名称可以随便取,target选择你需要的SDK版本,SD卡大小自定义,点击 Create AVD,得到如下结果
如上显示创建AVD完毕
3 新建Android项目
(1)选择菜单file->new->other 进入如下界面:
选择新建Android Project项目,点击Next按钮,进入如下界面
(2)点击Next出现如下界面:
注: 若有错误如: Project ... is missing required source folder: 'gen' ,则将
gen->Android.Test->R.java这个文件删掉,Eclipse会为我们重新生成这个文件,并且不会报错。
(3)配置运行
右键项目->Run as -> Run Configuration 进入如下界面:
选择Target切换到以下界面
该界面选择运行的AVD,将AVD前面的方框设置为选择状态。
(4)测试项目运行
右键项目名称->run as ->Android Application 即可启动运行该Android程序,如下所示:
正在进入
测试程序运行结果。