Android的环境搭建

HAL以*.so档的形式存在,可以把Android framework与Linux kernel隔开。 2010年2月3日,Linux内核开发者Greg Kroah-Hartman将Android的驱动程序从Linux内核“ ...
展开查看详情

1.Android 系统开发 —基础篇 (1) 2011 整理

2.第一章 Android 介绍

3.主要内容提要 Android 的发展历史 Android 的架构简介 Android 的主要特 点 Android 环境的搭建 问题答疑

4. Android 系统的发展历史  Android 早期由 “ Android 之父 ”之称的安迪 · 鲁宾创 办, Google 于2005年并购了成立不到 2 年的高科技 企业 Android ,展开了短信、手机检索、定位等业务, 基于 Linux 的通用平台进入了开发。  Google公司在2007年11月 5日正式公布这个操作系 统, 2008 年, Patrick Brady 于 Google I/O演讲 “ Anat omy & Physiology of an Android” ,并提出的 Androi d HAL 架构图。 HAL以 *.so 档的形式存在,可以把 An droid framework 与 Linux kernel 隔开。  2010 年 2 月 3 日, Linux 内核开发者 Greg Kroah-Hart man 将 Android 的驱动程序从 Linux 内核 “状态树 ” ( “ staging tree” )上除去,从此, Android 与 Linux 核心开发分道扬镳。 [

5.Android 系统的发展历史

6.Android 系统的发展历史

7.Android 系统的发展历史

8.Android 系统的发展历史

9. 结论  Android 颠覆了传统智能手机的概念,重 新诠释了什么是“智能手机”  开放、共享理念使其在短期内得到了很大 的发展(预计 2011 年末会达到市场占用 率第一)  为广大的 IT 爱好者提供了新的“赚钱”机 会。  未来几年是其发展期,精通 android 的开 发就有新的机遇。

10.第二章 Android 架构介绍

11.Android 架构简介

12. Android 简介 —应用程序  Android 以 Linux 为核心的移动开发平台,使用 Java 作为编程语言,使接口到功能,都有层出 不穷的变化  其中 Activity 等同于 J2ME 的 MIDlet , Activity 类负责创建视窗,一个活动中的 Activity 就是在 fo 最前的窗体,背后执行的程序叫做 Service 。  两者之间透过由 ServiceConnection 和 AIDL 连 结,达到程序同时执行的效果。如果执行中的 Activity 全部画面被其他 Activity 取代时,该 Act ivity 便被停止,甚至被系统清除。

13. Android 简介 —应用程序  View 等同于 J2ME 的 Displayable ,程序人员可以透过 Vi ew 类别与“ XML layout” 档将 UI 放置在视窗上, Android 1.5 的版本可以利用 View 打造出所谓的 Widgets ,其实 Widget 只是 View 的一种,所以可以使用 xml 来设计 layo ut , HTC的 Android Hero 手机即含有大量的 widget 。  至于 ViewGroup 是各种 layout 的基础抽象类别, ViewGr oup 之内还可以有 ViewGroup 。 View 的构造函数不需要 在 Activity 中调用,但是 Displayable 的是必须的,在 Acti vity 中,要通过 findViewById() 来从 XML 中取得 View , Android 的 View 类的显示很大程度上是从 XML 中读取 的。 View 与事件息息相关,两者之间透过 Listener 结合 在一起,每一个 View 都可以注册一个 event listener ,例 如:当 View 要处理用户触碰的事件时,就要向 Android 框架注册 View.OnClickListener 。  另外还有 Image 等同于 J2ME 的 BitMap 。

14. Android 简介 —中介软件  操作系统与应用程序的沟通桥梁,并用分为两层:函数层和虚拟机器。 Bionic 是 Android 改良 libc 的版本。 Android 同时包含了 Webkit ,所谓的 Webkit 就是 Google Chrome 浏览器背后的引擎。 Surface flinger 是就 2D 或 3D 的内容显示到 萤幕上。 Android 使用工具链为 Google 自制的 Bionic Libc 。  Android 采用 OpenCORE 作为基础多媒体框架。 OpenCORE 可分 7 大块: PVPl ayer 、 PVAuthor 、 Codec 、 PacketVideo Multimedia Framework(PVMF) 、 Op erating 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 类别取得共用资料库。  Android 的中间层多以 Java 实现,并且采用特殊的 Dalvik 虚拟机器。 Dalvik 虚 拟机器是一种 “暂存器型态 ”的 Java 虚拟机器,变数皆存放于暂存器中,虚拟机器 的指令相对减少。  Dalvik 虚拟机器可以有多个实例,每个 Android 应用程序都用一个自属的 Dalvik 虚拟机器来执行,让系统在执行程序时可达到优化。 Dalvik 虚拟机器并非执行 Jav a 字节码,而是执行一种称为 .dex 格式的档案。

15. Android 简介 -- 硬件抽像层  Android 的硬件抽像层是能以封闭源码形式提供硬 件驱动模块。 HAL 的目的是为了把 Android frame work 与 Linux kernel 隔开,让 Android 不至过度 依赖 Linux kernel ,以达成 kernel independent 的 概念,也让 Android framework 的开发能在不考量 驱动程序的前提下进行发展。  HAL stub 是一种代理人的概念, stub 是以 *.so 档 的形式存在。 Stub 向 HAL“ 提供 ”操作函数,并由 Android runtime 向 HAL 取得 stub 的 operation s ,再 callback 这些操作函数。 HAL 里包含了许多 的 stub (代理人)。 Runtime 只要说明 “类型 ”, 即 module ID ,就可以取得操作函数。

16. Android 简介 -- 编程语言  Android 是执行于 Linux kernel 之上,但并不是 GNU/Linu x 。因为在一般 GNU/Linux 里支持的功能, Android 大都没 有支持,包括 Cairo 、 X11 、 Alsa 、 FFmpeg 、 GTK 、 Pa ngo 及 Glibc 等都被移除掉了。 Android 又以 bionic 取代 Gli bc 、以 Skia 取代 Cairo 、再以 opencore 取代 FFmpeg 等 等。 Android 为了达到商业应用,必须移除被 GNU GPL 授 权证所约束的部份, Android 并没有 user space driver 这 种东西。所有的 Driver 还是在 Kernel space 。并以 HAL 隔开版权问题。 bionic/libc/kernel/ 并非标准的 kernel head er files 。 Android 的 kernel header 是利用工具由 Linux ker nel header 所产生的,这样做是为了保留常数、资料结构与 宏。  目前 Android 的 Linux kernel 控制包括安全,存储器管理, 进程管理,网络堆叠,驱动程序模型等。下载 Android 源码之 前,先要安装其构建工具 Repo 来初始化源码。 Repo 是 And

17.第三章 Android 特性

18. Android 的主要特点 1.android 是什么? Android 是一个平台,主 关键应用 要包括 Linux 微内核, 中间件( SQLite 等), 中间件 关键应用(电话本、邮 件、短消息、 GoogleM Jvm ap 、浏览器等),提供 的 Java 框架,以及 An linux 内核 droid 中的 JVM

19. Android 的主要特点 2. 管理和控件类  视图( View )  ContentProviders (应用交互管理类)  ResourceManager( 非编码资源管理类 )  NotificationManager (通告管理类)  ActivityManager (生命周期管理类)

20. Android 的主要特点 3. 界面开发  可以利用 Java 组件进行界面开发  通过 xml 配置文件生成界面 UI

21. Android 的主要特点 4. 应用构成 Android 的应用一般由以下四个关键部分构成  Activity  IntentReceiver  Service  ContentProvider 其中 Activity 是必要部分

22. Android 的主要特点 5. 布局管理  FrameLayout :左上角只显示一个组件。  LinearLayout :线性布局管理器,分为水平和垂直两种, 只能进行单行布局。  TableLayout :任意行和列的表格布局管理器。其中 Table Row 代表一行, TableRow 的每一个视图组件代表一个单 元格。  AbsoluteLayout :绝对布局管理器,坐标轴的方式,左上 角是( 0 , 0 )点,往右 x 轴递增,往下 Y 轴递增。  RelativeLayout :相对布局管理器,更具最近一个视图组 件,或是顶层父组件来确定下一个组件的位置。

23. Android 的主要特点 6.Activity 交互  Intent 方式 :Intent 其实就是用来在 Activity 之间做交互用的, 例如,有种叫 Intent.ACTION_CALL ,可直接拨打电话。  SharedPreferences 是 Android 平台上一个轻量级的存储类, 主要是保存一些常用的配置。 SharedPreferences 类似过去 W indows 系统上的 ini 配置文件,但是它分为多种权限,可以全 局共享访问,最终是以 xml 方式来保存,效率不如 Intent ,但 是由于可以共享,所以可以在 Acitivity 之间交互。但其效率比 SQLite 要高。  SQLite 也就是数据库,这种方式不推介,因为其效率问题,如 果是在不同应用之间交互,可以考虑 SQLite 。或是永久存储 的情况下。

24. Android 的主要特点 7. 生命周期 • 每一个 Android 应用都是以一个进程的方式运行 的,其生命周期不是由自身控制,而是由系统根 据运行的应用的一些特征来决定。 • 好的生命周期设计可提高应用的健壮性。比如应 用的初始化应该放到 onCreate 方法中,应用暂 停的时候应用重写 onPause 方法来保存当前应 用操作结果。

25. Android 的主要特点 8. 传统特性 可重用和可替换组件的程序应用框架 针对移动设备优化过的 Dalvik 虚拟机 集成了基于开源 Webkit 引擎的网页浏览器 经过优化过的自定义 2D 图形库和基于 OpenGL ES 1.0 库 可选硬件加速 SQLite 结构化的数据存储数据库 支持常规的音频视频多媒体格式,如 MPEG4 、 H.264 、 MP3 、 AA C 、 AMR 、 JPG 、 PNG 、 GIF GSM 电话 ( 硬件决定 ) 蓝牙、 GPRS-EDGE 、 3G 和 Wifi 无线网络 ( 硬件决定 ) 相机、 GPS 全球定位、导航和感应加速器 丰富的开发环境包含设备模拟器、工具、调试器、内存和性能分析工 具,以及 Eclipse 集成开发环境插件 所有源代码开放

26.第四章 Android 环境构建

27. Android 的环境搭建 1. 下载 JDK http://www.java.com/zh_CN/download/manual.jsp

28. Android 的环境搭建 2. 下载 Eclipse 开发工具

29. Android 的环境搭建 3. 下载 android SDK http://developer.android.com/sdk/index.html