1、Android系统开发 基础篇 (1)华 东师范 大学 工程应用 技术中心 2011 整理第一章 Android介绍华东师范大学工程应用 技术中心主要内容提要问题答疑 Android的架构简介Android的 主要特 点 Android的 发展历史 Android环境的搭建 Android系统的发展历史uAndroid早期由 “Android之父 ”之称的安迪 鲁宾创办,Google于 2005年 并购了成立不到 2年的高科技企业Android,展开了 短信 、手机检索、定位等业务,基于Linux的通用平台进入了开发。uGoogle公司在 2007年 11月 5日 正式公布这个操作系统,200
2、8年, Patrick Brady于 Google I/O演讲 “Anatomy & Physiology of an Android”,并提出的 Android HAL架构图。 HAL以 *.so档的形式存在,可以把 Android framework与 Linux kernel隔开。u2010年 2月 3日, Linux内核开发者 Greg Kroah-Hartman将 Android的驱动程序从 Linux内核 “状态树 ”( “staging tree”)上除去,从此, Android与 Linux核心开发分道扬镳。 华东师范大学工程应用 技术中心Android系统的发展历史华东师范大
3、学工程应用 技术中心Android系统的发展历史华东师范大学工程应用 技术中心Android系统的发展历史华东师范大学工程应用 技术中心Android系统的发展历史华东师范大学工程应用 技术中心结论 Android颠覆了传统智能手机的概念,重新诠释了什么是 “智能手机 ” 开放、共享理念使其在短期内得到了很大的发展(预计 2011年末会达到市场占用率第一) 为广大的 IT爱好者提供了新的 “赚钱 ”机会。 未来 几年是其发展期,精通 android的开 发就有新的机遇。华东师范大学工程应用 技术中心第二章 Android架 构介绍Android架构简介华东师范大学工程应用 技术中心Androi
4、d简介 应用程序uAndroid以 Linux为核心的移动开发平台,使用Java作为编程语言,使接口到功能,都有层出不穷的变化u其中 Activity等同于 J2ME的 MIDlet, Activity类负责创建视窗,一个活动中的 Activity就是在 fo最前的窗体,背后执行的程序叫做 Service。u两者之间透过由 ServiceConnection和 AIDL连结,达到程序同时执行的效果。如果执行中的Activity全部画面被其他 Activity取代时,该Activity便被停止,甚至被系统清除。华东师范大学工程应用 技术中心Android简介 应用程序uView等同于 J2ME的
5、 Displayable,程序人员可以透过 View类别与 “XML layout”档将 UI放置在视窗上, Android 1.5的版本可以利用 View打造出所谓的 Widgets,其实 Widget只是 View的一种,所以可以使用 xml来设计 layout, HTC的Android Hero手机即含有大量的 widget。u至于 ViewGroup是各种 layout的基础抽象类别,ViewGroup之内还可以有 ViewGroup。 View的构造函数不需要在 Activity中调用,但是 Displayable的是必须的,在Activity中,要通过 findViewById()
6、来从 XML中取得 View,Android的 View类的显示很大程度上是从 XML中读取的。View与事件息息相关,两者之间透过 Listener结合在一起,每一个 View都可以注册一个 event listener,例如:当View要处理用户触碰的事件时,就要向 Android框架注册View.OnClickListener。u另外还有 Image等同于 J2ME的 BitMap。 华东师范大学工程应用 技术中心Android简介 中介软件u 操作系统与应用程序的沟通桥梁,并用分为两层:函数层和虚拟机器。 Bionic是Android改良 libc的版本。 Android同时包含了 W
7、ebkit,所谓的 Webkit就是 Google Chrome浏览器背后的引擎。 Surface flinger是就 2D或 3D的内容显示到萤幕上。Android使用工具链为 Google自制的 Bionic Libc。u Android采用 OpenCORE作为基础多媒体框架。 OpenCORE可分 7大块: PVPlayer、 PVAuthor、 Codec、 PacketVideo Multimedia Framework(PVMF)、 Operating System Compatibility Library(OSCL)、 Common、 OpenMAX。u Android使用
8、Skia为核心图形引擎,搭配 OpenGL/ES。 Skia与 Linux Cairo功能相当,但相较于 Linux Cairo, Skia功能还只是阳春型的。 2005年 Skia公司被 Google收购, 2007年初, Skia GL源码被公开,目前 Skia也是 Google Chrome的图形引擎。u Android的多媒体资料库采用 SQLite资料库系统。资料库又分为共用资料库及私用资料库。用户可透过 ContentResolver类别取得共用资料库。u Android的中间层多以 Java实现,并且采用特殊的 Dalvik虚拟机器。 Dalvik虚拟机器是一种 “暂存器型态 ”
9、的 Java虚拟机器,变数皆存放于暂存器中,虚拟机器的指令相对减少。u Dalvik虚拟机器可以有多个实例,每个 Android应用程序都用一个自属的 Dalvik虚拟机器来执行,让系统在执行程序时可达到优化。 Dalvik虚拟机器并非执行 Java字节码,而是执行一种称为 .dex格式的档案。华东师范大学工程应用 技术中心Android简介 -硬件 抽像层u Android的硬件抽像层是能以封闭源码形式提供硬件驱动模块。 HAL的目的是为了把 Android framework与 Linux kernel隔开,让 Android不至过度依赖 Linux kernel,以达成 kernel i
10、ndependent的概念,也让Android framework的开发能在不考量驱动程序的前提下进行发展。 u HAL stub是一种代理人的概念, stub是以 *.so档的形式存在。 Stub向 HAL“提供 ”操作函数,并由 Android runtime向 HAL取得 stub的 operations,再 callback这些操作函数。 HAL里包含了许多的 stub(代理人)。 Runtime只要说明 “类型 ”,即 module ID,就可以取得操作函数。华东师范大学工程应用 技术中心Android简介 -编程语言u Android是执行于 Linux kernel之上,但并不是
11、 GNU/Linux。因为在一般 GNU/Linux里支持的功能, Android大都没有支持,包括 Cairo、 X11、 Alsa、 FFmpeg、 GTK、 Pango及 Glibc等都被移除掉了。 Android又以 bionic取代 Glibc、以 Skia取代Cairo、再以 opencore取代 FFmpeg等等。 Android为了达到商业应用,必须移除被 GNU GPL授权证所约束的部份, Android 并没有 user space driver 这种东西。所有的 Driver 还是在 Kernel space。并以 HAL 隔开版权问题。 bionic/libc/kern
12、el/ 并非标准的 kernel header files。 Android的 kernel header是利用工具由 Linux kernel header所产生的,这样做是为了保留常数、资料结构与宏。 u目前 Android的 Linux kernel控制包括安全,存储器管理,进程管理,网络堆叠,驱动程序模型等。下载 Android源码之前,先要安装其构建工具 Repo来初始化源码。 Repo是 Android用来辅助 Git工作的一个工具。 华东师范大学工程应用 技术中心第三章 Android特性Android的主要特点1.android是什么?Android是一个平台,主要包括 Lin
13、ux微内核,中间件( SQLite等),关键应用(电话本、邮件、短消息、 GoogleMap、浏览器等),提供的Java框架,以及 Android中的 JVM华东师范大学工程应用 技术中心关键应用中间件Jvmlinux内核Android的主要特点2.管理和控件类l 视图( View)l ContentProviders(应用交互管理类)l ResourceManager(非编码资源管理类 )l NotificationManager(通告管理类)l ActivityManager(生命周期管理类)华东师范大学工程应用 技术中心Android的主要特点3.界面开发u 可以利用 Java组件进行界
14、面开发u 通过 xml配置文件生成界面 UI华东师范大学工程应用 技术中心Android的主要特点4.应用构成Android的应用一般由以下四个关键部分构成p Activityp IntentReceiverp Servicep ContentProvider其中 Activity是必要部分华东师范大学工程应用 技术中心Android的主要特点5.布局管理 FrameLayout:左上角只显示一个组件。 LinearLayout:线性布局管理器,分为水平和垂直两种,只能进行单行布局。 TableLayout:任意行和列的表格布局管理器。其中TableRow代表一行, TableRow的每一个视
15、图组件代表一个单元格。 AbsoluteLayout:绝对布局管理器,坐标轴的方式,左上角是( 0, 0)点,往右 x轴递增,往下 Y轴递增。 RelativeLayout:相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。华东师范大学工程应用 技术中心Android的主要特点6.Activity交互 Intent方式 :Intent其实就是用来在 Activity之间做交互用的,例如 ,有种叫 Intent.ACTION_CALL,可直接拨打电话。 SharedPreferences是 Android平台上一个轻量级的存储类,主要是保存一些常用的配置。 Shared
16、Preferences类似过去Windows系统上的 ini配置文件,但是它分为多种权限,可以全局共享访问,最终是以 xml方式来保存,效率不如 Intent,但是由于可以共享,所以可以在 Acitivity之间交互。但其效率比SQLite要高。 SQLite也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑 SQLite。或是永久存储的情况下。华东师范大学工程应用 技术中心Android的主要特点7.生命周期 每一个 Android应用都是以一个进程的方式运行的,其生命周期不是由自身控制,而是由系统根据运行的应用的一些特征来决定。 好的生命周期设计可提高应用的健
17、壮性。比如应用的初始化应该放到 onCreate方法中,应用暂停的时候应用重写 onPause方法来保存当前应用操作结果。华东师范大学工程应用 技术中心Android的主要特点8.传统特性可重用和可替换组件的程序应用框架针对移动设备优化过的 Dalvik虚拟机集成了基于开源 Webkit引擎的网页浏览器经过优化过的自定义 2D图形库和基于 OpenGL ES 1.0库 可选硬件加速SQLite结构化的数据存储数据库支持常规的音频视频多媒体格式,如 MPEG4、 H.264、 MP3、 AAC、AMR、 JPG、 PNG、 GIFGSM电话 (硬件决定 )蓝牙、 GPRS-EDGE、 3G和 Wifi无线网络 (硬件决定 )相机、 GPS全球定位、导航和感应加速器丰富的开发环境包含设备模拟器、工具、调试器、内存和性能分析工具,以及 Eclipse集成开发环境插件所 有源代码开放 华东师范大学工程应用 技术中心第四章 Android环境构建Android的环境搭建1.下载 JDK http:/ 技术中心Android的环境搭建2.下载 Eclipse开发工具华东师范大学工程应用 技术中心Android的环境搭建3.下载 android SDK http:/ 技术中心Android的环境搭建4.下载环境 运行安装到硬盘上 (路径中不能有中文和空格 )华东师范大学工程应用 技术中心