当前位置:首页 >> IT/计算机 >>

Android培训大纲


Android系统概述 系统概述
沈青海 ( www.3gqa.com) admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

Android 历史
} } }

Google公司发布 公司发布....... 公司发布 OHA(开放手机联盟 开放手机联盟) 开放手机联盟 Version
} } } } }

SDK1.0 2008 年 9月 月 SDK 1.1 2009 年 2月 月 SDK 1.5 2009 年 4月 月 SDK1.6 和 NDK1.6 2009 年9月 月 SDK 2.0 2009年11月 年 月

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android 平台特性

} } } } }

开源\免费 开源 免费 灵活性 最佳化的绘图能力 强大的多媒体支持能力 丰富的开发环境

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android 系统架构(1) 系统架构( )

} } } } }

系统核心层( 系统核心层(Linux Kernel) ) 执行层( 执行层(Android Runtime) ) 函数库层(Libraries) 函数库层( ) 应用程序框架层( 应用程序框架层(Application FrameWork) ) 应用程序层( 应用程序层(Applications) )

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android 系统架构(2) 系统架构( )

}

Android系统架构 系统架构

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android 开发背景知识

} } } } }

c or c++ java /j2me? 面向对象 需要懂linux吗? 需要懂 吗 native 开发

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

各开发平台比较

}
} } } }

其他开发平台比较 其他开发平台比较
Mac OS (Iphone) Symbian WM J2ME

}

android平台的特点 平台的特点

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android 两种开发方式

} }

native /ndk
}

什么情况下会涉及基于ndk开发 开发 什么情况下会涉及基于 什么应用采用sdk开发 开发 什么应用采用

基于sdk开发 开发 基于
}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

NDK是什么 是什么

} } } }

1、NDK是一系列工具的集合。 、 是一系列工具的集合。 是一系列工具的集合 2、NDK提供了一份稳定、功能有限的 提供了一份稳定、 头文件声明。 、 提供了一份稳定 功能有限的API头文件声明。 头文件声明 3、NDK的发布,使“Java+C”的开发方式终于转正,成为 、 的发布, 的开发方式终于转正, 的发布 的开发方式终于转正 官方支持的开发方式。 官方支持的开发方式。 4、NDK将是 将是Android平台支持 开发的开端。 平台支持C开发的开端 、 将是 平台支持 开发的开端。

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK及开发模式讲解 及开发模式讲解
沈青海 ( www.3gqa.com) shenqh@farsight.com.cn Copyright 2008-2009 Farsight. All rights reserved.

} } } } }

1、 Android SDK版本 、 版本 2、Android包库分析 、 包库分析 3、基于 、基于Java语言开发 语言开发 4、Android开发与其它平台开发的比较 、 开发与其它平台开发的比较 5、实战项目实例展示 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK版本 版本-1.5 ( Cupcake )(系统方面) 版本 (系统方面) 采用当时最新Linux内核 内核2.6.27版本 采用当时最新 内核 版本 精简了用户界面 全新的视屏录制功能,上传视频到Youtube,上传照片到 全新的视屏录制功能,上传视频到 , Picasa 软键盘的支持 中文显示和中文输入的支持 桌面Widgets 桌面 浏览器增加了多点触摸功能

} } } } } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK版本 版本-1.5 ( Cupcake ) (开发方面) 开发方面) 版本 SDK中包含了 中包含了Android平台的多个版本 平台的多个版本(1.1,1.5) 。 中包含了 平台的多个版本 引入了Android Virtual Devices(AVD) 引入了
}

} }

使之在模拟器上运行更接近于真机。每个 有自己的存储卡空间, 使之在模拟器上运行更接近于真机。每个AVD有自己的存储卡空间,使得 有自己的存储卡空间 更容易并发运行多个模拟器。 更容易并发运行多个模拟器。

}
}

SDK支持 支持add-on。 支持 。
这可以扩充SDK,使得可以访问多个外部Android库,能够在模拟器内运 ,使得可以访问多个外部 这可以扩充 库 行定制的系统映像。 行定制的系统映像。

}
}

新的ADT版本 版本--0.9。 新的 版本 。
增强了JUnit等有关功能 等有关功能 增强了

} } }

更容易的性能分析。 更容易的性能分析。 本地化资源管理更容易 新的"android"工具代替了 工具代替了activitycreator脚本 新的 工具代替了 脚本

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK版本 版本-1.5 ( Cupcake ) (API方面) 方面) 版本 方面 增加了AppWidget框架 框架 增加了 增加了输入法框架 增加了语音识别框架 增强了多媒体框架
}

} } } } } }
}

Audio的录 放API,Video的录像 的录/放 的录像API,视频 照片的 照片的shareing intent等 的录 , 的录像 ,视频/照片的 等

增强了UI框架 增强了 框架: 框架 其他增强
重新设计的传感器API、WebView的增强等 、 重新设计的传感器 的增强等

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK最新版本 最新版本-1.6 / 2.0 ( Donut )(系统方面) 最新版本 (系统方面) linux内核升级到 内核升级到2.6.29 内核升级到 手势支持 支持CDMA网络 支持 网络 软键盘的支持 TXT-2-speech 快速搜索框 全新的拍照界面 应用程序耗电查看 支持VPN 支持 新的Android Market 新的

} } } } } } } } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK最新版本 1.6 / 2.0 ( Donut ) (API方面) 最新版本方面) 最新版本 方面

}
} } }

UI框架方面 框架方面: 框架方面
(1)在android.view.animation包里增加了 个新类 在 包里增加了4个新类 包里增加了 (2)增加了一个新的应用于布局文件的属性 增加了一个新的应用于布局文件的属性android:onClick 增加了一个新的应用于布局文件的属性 (3)支持各种分辨率 支持各种分辨率

} } } } } }

新的手势 gesture API 新的android.speech.tts包 新的 包 新的android.graphics包中的类支持不同分辨率 通过拉伸) 新的 包中的类支持不同分辨率(通过拉伸 包中的类支持不同分辨率 通过拉伸 新的搜索框架:SearchManager 新的搜索框架 新的SmsManager 新的 其他… 其他 …

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

} } } } }

1、 Android SDK版本 、 版本 2、Android包库展示分析 、 包库展示分析 3、基于 、基于Java语言开发 语言开发 4、Android开发与其它平台开发的比较 、 开发与其它平台开发的比较 5、完整实战项目实例展示 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK包全览 包全览(1) 包全览

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK部分包介绍 部分包介绍
android.app :提供高层的程序模型、提供基本的运行环境 提供高层的程序模型、 android.content :包含各种的对设备上的数据进行访问和发布的 类 android.database :通过内容提供者浏览和操作数据库 android.graphics :底层的图形库,包含画布,颜色过滤,点, 底层的图形库,包含画布,颜色过滤, 矩形,可以将他们直接绘制到屏幕上. 矩形,可以将他们直接绘制到屏幕上 android.location :定位和相关服务的类 android.media :提供一些类管理多种音频、视频的媒体接口 提供一些类管理多种音频、 android.net :提供帮助网络访问的类,超过通常的 提供帮助网络访问的类,超过通常的java.net.*接口 接口 android.os :提供了系统服务、消息传输、IPC机制 提供了系统服务、消息传输、 机制 android.provider :提供类访问 提供类访问Android的内容提供者 的内容提供者 android.telephony :提供与拨打电话相关的 提供与拨打电话相关的API交互 交互 android.view :提供基础的用户界面接口框架 android.util :涉及工具性的方法,例如时间日期的操作 涉及工具性的方法, android.webkit :默认浏览器操作接口 android.widget :包含各种 元素 大部分是可见的 在应用程序的 包含各种UI元素 大部分是可见的)在应用程序的 元素(大部分是可见的 屏幕中使用

} } } } } } } } } } } } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK包全览 包全览(2) 包全览

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK包全览 包全览(3) 包全览

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

} } } } }

1、 Android SDK版本 、 版本 2、Android类库展示分析 、 类库展示分析 3、基于 、基于Java语言开发 语言开发 4、Android开发与其它平台开发的比较 、 开发与其它平台开发的比较 5、完整实战项目实例展示 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

基于Java语言开发 开发模式 语言开发----开发模式 基于 语言开发

} }

开发模式 ( 思维的转换 )
区别于常规的应用程序开发( 程序, 程序等) 区别于常规的应用程序开发(JAVA程序,Windows程序等) 程序 程序等

理解几种运行机制
(1)页面显示与跳转(布局) )页面显示与跳转(布局) (2)页面数据传输机制(应用相互调用) )页面数据传输机制(应用相互调用) (3)广播与接收机制 ) (4)数据共享机制 )

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

基于Java语言开发 应用程序 语言开发----应用程序 基于 语言开发

}
} } } } } }

应用程序
使用常规的组件,扩展常规组件,自定义组件; 使用常规的组件,扩展常规组件,自定义组件; 灵活使用布局文件及其相关属性 UI事件处理 事件处理 业务逻辑的处理 数据存储处理 网络处理

40%的XML和60%的Java代码 的 和 的 代码

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

基于Java语言开发 语言开发-----游戏 基于 语言开发 游戏

}

游戏开发及移植
基于Canvas、Graphics的开发 、 基于 的开发

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

示例一(充分利用布局文件设计 示例一 充分利用布局文件设计) 充分利用布局文件设计

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

示例二(利用 开发) 示例二(利用Canvas,Graphics开发) 开发

} } } } }

1、 Android SDK版本 、 版本 2、Android类库展示分析 、 类库展示分析 3、基于 、基于Java语言开发 语言开发 4、Android开发与其它平台开发的比较 、 开发与其它平台开发的比较 5、完整实战项目实例展示 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android开发与其它平台开发的比较 开发与其它平台开发的比较

} }

J2ME
JAVA (MIDP)

WindowsMobile C#(Compact Framework) C和C++ 和 Android
JAVA (C) )

} } }

Symbian
C++

Mac OS(Iphone)
Object C(C和C++) 和

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

} } } } }

1、 Android SDK版本 、 版本 2、Android类库展示分析 、 类库展示分析 3、基于 、基于Java语言开发 语言开发 4、Android开发与其它平台开发的比较 、 开发与其它平台开发的比较 5、实战项目实例展示 、

实战项目演示

} } } }

RSS阅读器 阅读器 股票定制软件 糊涂虫” “糊涂虫”阅读器 “开心网”客户端 开心网”

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android SDK及环境配置 及环境配置
沈青海(www.3gqa.com) 沈青海 shenqh@farsight.com.cn Copyright 2008-2009 Farsight. All rights reserved.

} } }

1、Android开发环境配置 、 开发环境配置 2、HelloWorld项目演示及分析 、 项目演示及分析 3、扩展HelloWorld项目 、扩展 项目

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

开发环境

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

SDK 开发环境配置

} }

1、下载并安装JDK 、下载并安装 2、下载 、下载Android SDK
http://developer.android.com/index.html

} } }

3、解压Android SDK到本地一个目录 、解压 到本地一个目录 4、安装 插件, 、安装Eclipse,并安装 ,并安装ADT插件,并做简单的配置 插件 5、使用 、使用Android的相关项目创建向导创建项目 的相关项目创建向导创建项目 演示如何配置 演示如何配置..... 配置

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

HelloWord项目工程分析 项目工程分析

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

SDK环境 创建 环境---创建 环境 创建Hello World工程 工程
}

演示:如何创建一个Android工程 演示:如何创建一个 工程

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Hello World分析(1) 分析( ) 分析
}

项目结构

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Hello World分析(2) 分析( ) 分析 布局文件 布局文件main.xml 文件

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Hello World分析(3) 分析( ) 分析 Activity类---HelloWorld.java文件 类 文件

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Hello World分析(4) 分析( ) 分析

} } }

展示如何调试hello 展示如何调试hello world 展示如何在模拟器上运行 展示如何在模拟器上运行 展示如何在手机上运行

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Hello World分析(5) 分析( ) 分析 运行结果

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

更进一步

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android应用工程文件组成 应用工程文件组成 1、源文件(src目录中 、源文件 目录中) 目录中 2、R.java 、 3、Android Library 、 4、assets目录 、 目录 5、res目录 、 目录 6、drawable目录 、 目录 7、layout目录 、 目录 8、values目录 、 目录 9、AndroidManifest.xml 、

} } } } } } } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

AndroidManifest.xml文件分析(1) 文件分析( ) 文件分析

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

AndroidManifest.xml文件分析(2) 文件分析( ) 文件分析 1、 package(包) 、 ( 2、 application 、
} }

} }

(1) android:icon (程序图标) 程序图标) (2) android:label(程序名字) (程序名字)

}
} }

3、 activity 、
(1) android:name (页面类名) 页面类名) (2) android:label (页面标题) 页面标题)

}
} }

4、 intent-filter 、
(1) action (2) category

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

AndroidManifest.xml示例一运行结果 示例一运行结果

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID界面元素 界面元素 VIEW(WIGET组件 、LAYOUT、MENU 组件)、 组件 、
沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

Android界面元素 界面元素 1、View(视图组件) 、 (视图组件) 2、Layout(布局组件) 、 (布局组件) 3、Wigets(UI元素) 元素) 、 ( 元素 4、Menus(菜单) 、 (菜单)

} } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

View (视图组件) 视图组件)

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

认识View 认识

} } } } } }

1、所有高级UI组件都继承 、所有高级 组件都继承 组件都继承View类而实现的 类而实现的 2、一个 、一个View在屏幕上占据一块矩形区域 在屏幕上占据一块矩形区域 3、负责渲染 、 4、负责处理发生的事件 、 5、设置是否可见 、 6、设置是否可以获得焦点等 、

注意:SurfaceView与View的区别 与 注意 的区别

认识ViewGroup 认识

} } } }

1、一个ViewGroup对象是一 、一个 对象是一Android.view.ViewGroup实 对象是一 实 例 2、View的容器 、 的容器 3、 负责对添加进 、 负责对添加进ViewGroup的View进行布局 的 进行布局 4、一个 可以加入到另一个ViewGroup 、一个ViewGroup可以加入到另一个 可以加入到另一个

View与ViewGroup关系(1) 与 关系( ) 关系 1、关系图 、

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

View与ViewGroup关系(2) 与 关系( ) 关系 1、类继承关系图 、

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Wiget(UI组件 组件) 组件

认识Wiget组件 组件 认识

} } }

1、界面中展示的各个小组件 、 2、有独立的事件处理能力 、 3、所有 组件都是继承View而来 、所有Wiget组件都是继承 组件都是继承 而来

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Wiget组件类继承关系 组件类继承关系 1 、TextView类继承关系 类继承关系

}

}

2、ImageButton类继承关系 、 类继承关系

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面元素 界面元素—Wigets(1) 界面元素
} } } } } } } } } } } } }

1、Button(按钮) 、 (按钮) 2、TextView(文本框) 、 (文本框) 3、EditText(文本编辑框) 、 (文本编辑框) 4、CheckBox(多项选择) 、 (多项选择) 5、RadioGroup(单项选择) 、 (单项选择) 6、Spinner(下拉列表) 、 (下拉列表) 7、TimePicker(时间选择器) 、 (时间选择器) 8、ScrollView(滚动视图) 、 (滚动视图) 9、ProgressBar(进度条) 、 (进度条) 10、SekkBar(拖动条) 、 (拖动条) 11、RatingBar(评分组件) 、 (评分组件) 12、ImageView(图片视图) 、 (图片视图) 13、ImageButton(图片按钮) 、 (图片按钮)

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面元素 界面元素—Wigets(2) 界面元素
} } }

14、ImageSwitcher&Gallery(图片切换) 、 (图片切换) 15、GradView(网格视图) 、 (网格视图) 16、Tab(标签组件) 、 (标签组件)

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Wiget组件示例展示 组件示例展示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面元素 自定义组件 界面元素—自定义组件 界面元素
} } } } }

1、继承View类,也可以扩展现有的Wiget组件 、继承 类 也可以扩展现有的 组件 2、实现 onDraw()函数 、 函数 3、实现 、实现onMeasure()函数 函数 4、实现onKeyDown() 函数 、实现 5、更多事件处理 、更多事件处理…

演示自定义控件 演示自定义控件… … 自定义控件

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

包含Android界面元素 界面元素---- 示例展示 包含 界面元素

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Layout (UI布局) 布局) 布局

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

认识Layout布局组件 布局组件 认识

} }

1 、对UI组件进行排列布局 组件进行排列布局 2、与WEB开发中的 开发中的CSS类似 、 开发中的 类似

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Layout(布局类)继承关系 (布局类) 1 、Layout(布局类)继承关系图 (布局类)

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面布局参数信息 LayoutParams 界面布局参数信息-界面布局参数信息 1 、属性
} }

}

(1) android:layout_height (2) android:layout_width

}
} }

2 、值
(1) FILL_PARENT (2) WRAP_CONTENT

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面元素 界面元素--Layout 界面元素 1、LinearLayout布局 、 布局 2、RelativeLayout布局 、 布局 3、 FrameLayout布局 、 布局 4、结合 、结合LinearLayout和RelativeLayout布局 和 布局 5、TableLayout布局 、 布局

} } } } }

Android界面布局 LinearLayout 界面布局-界面布局 1、android:orientation=“vertical” (垂直方向 、 垂直方向) 垂直方向 2、android:orientation=“horizontal” (水平方向 水平方向) 、 水平方向

} }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面布局 RelativeLayout 界面布局-界面布局 1、android:layout_below=“@id/label” 、 2、android:layout_toLeftOf=“@id/label” 、 3、android:layout_alignParentRight=“true” 、 4、android:layout_alignTop=“@id/label” 、 5、 android:layout_marginLeft=“10dip” 、

} } } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面布局 FrameLayout 界面布局-界面布局 1、所有元素都被放置在最左上角 、 2 、后面元素的显示会重叠在前一个元素上

} }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面布局参数信息 TableLayout 界面布局参数信息-界面布局参数信息 1 、<TableRow> 行 2 、每一行里可以自由加入一些组件

} }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面布局 LayoutInflater类 界面布局– 界面布局 类 1 、该类用来将 该类用来将XML的布局文件变成一个 的布局文件变成一个View类 的布局文件变成一个 类 2 、每一行里可以自由加入一些组件

} }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面元素 界面元素--Menu 界面元素
}
} } } }

1、OptionMenu(选项菜单) 、 (选项菜单)
onCreateOptionsMenu() add() onOptionsItemSelected() getItemId()

}
} } } }

2、ContextMenu(上下文菜单) 、 (上下文菜单)
onCreateContextMenu() onContextItemSelected() add() registerForContextMenu()

}
} }

3、SubMenu(子菜单) 、 (子菜单)
addSubMenu() add()

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Android界面元素 界面元素—Menu示例 界面元素 示例

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID UI事件处理 事件处理
沈青海( 沈青海(www.3gqa.com) ) admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

认识UI事件 认识 事件
} }

View如何处理响应事件? 如何处理响应事件? 如何处理响应事件 Android提供的两种处理机制 提供的两种处理机制 (1) Event Listeners(事件侦听器) ) (事件侦听器) (2) Event Handlers(事件处理器)一般用于自定义 ) (事件处理器) 组件重载对应的事件处理函数

View的UI事件侦听器 的 事件侦听器
} } } } }

1、View.OnClickListener 的 onClick() 、 2、View.OnFocusChangeListener 的 、 onFocusChange() 3、View.OnKeyListener 的 onKey() 、 4、View.OnTouchListener 的 onTouch() 、 5、View.OnCreateContextMenuListener 的 、 onCreateContextMenu()

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

View的UI事件侦听器 实现(1) 的 事件侦听器 实现( ) 事件侦听器---实现
}

设置侦听

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

View的UI事件侦听器 实现(2) 的 事件侦听器 实现( ) 事件侦听器---实现
}

处理事件

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

View的UI事件处理器 的 事件处理器
} } } } }

1、onKeyDown(int, KeyEvent) 、 2、onKeyUp(int, KeyEvent) 、 3、onTrackballEvent(MotionEvent) 、 4、onTouchEvent(MotionEvent) 、 5、onFocusChanged(boolean, int, Rect) 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

View的UI事件示例演示 的 事件示例演示

ANDROID应用组成部分(1) 应用组成部分( ) 应用组成部分
ACTIVITY
沈青海(www.3gqa.com) 沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

Android应用主要由4部分组成 应用主要由 部分组成 应用主要由 1、Activity 、 2、BroadCastReceiver 、 3、Service 、 4、Content Provider 、

} } } }

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

认识Activity 认识

} } } }

1、一个Android应用一般由一个或多个 、一个 应用一般由一个或多个Activity组成 应用一般由一个或多个 组成 2、多个 、多个Activity可以互相跳转 可以互相跳转 3、Activity之间可以传递数据 、 之间可以传递数据 4、Activity是由 是由Android系统进行维护,有自己生命周期 系统进行维护, 、 是由 系统进行维护

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Activity类继承关系 类继承关系 Activity类继承关系图 类继承关系图

}

Activity-生命周期 生命周期

Activity常用函数 常用函数

} } } } }

onCreate(Bundle) setContentView(int) findViewById(int) Context.startActivity() finish()

Activity示例演示 示例演示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID应用组成部分(2) 应用组成部分( ) 应用组成部分 INTENT
沈青海(www.3gqa.com) 沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

认识Intent 认识
}

1、Google官方 、 官方API文档描述: 文档描述: 官方 文档描述
An Intent is an abstract description of an operation to be performed(一个 就是一次对将要执行的操作的抽象描述) (一个Intent就是一次对将要执行的操作的抽象描述) 就是一次对将要执行的操作的抽象描述

} } }

2、Intent在Android开发中相当重要 、 在 开发中相当重要 3、Activity之间,Activity与Service之间沟通桥梁 之间, 、 之间 与 之间沟通桥梁 4、Intent Filter声明 、 声明

Intent表现的作用 表现的作用
} } }

1、通过Context.startActivity() 或 、通过 Activity.startActivityForResult() 方法启动新的 方法启动新的Activity 2、通过广播 Intent 机制将 机制将Intent发送给任何对该 发送给任何对该Intent感兴 、 发送给任何对该 感兴 趣的BroadcastReceiver 趣的 3、通过 、通过startService(Intent)或 或 bindService(Intent,ServiceConnection,int)来和后台的 来和后台的 Service交互 交互

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

Intent包含的描述部分 包含的描述部分
} } } } } }

1、Action:操作 、 : 2、data:数据 、 : 3、type:数据类型 、 : 4、category:类别 、 : 5、extras:附件信息 、 : 6、component:目标组件 、 :

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

直接Intent-startActivity() 直接
}

1、startActivity() :无参Activity跳转 、 无参 跳转

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

直接Intent- startActivityForResult (1) 直接
}

1、向下一个Activity传递数据 、向下一个 传递数据

}

2、向上一个Activity返回结果 、向上一个 返回结果

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

直接Intent- startActivityForResult (2) 直接
}

3、回调上一个 、回调上一个Activity的结果处理函数 上一个 的结果处理函数

示例演示一

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

间接Intent-startActivity() 间接
}

1、让系统寻找和匹配合适的Activity 、让系统寻找和匹配合适的

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

实现Android中的广播事件 中的广播事件 实现
}

程序主动广播Intent 程序主动广播

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

注册和注销BroadCast Receiver 注册和注销

}

1、在AndroidManifest.xml中注册 、 中注册

}

2、程序中代码直接注册/注销 、程序中代码直接注册 注销

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

示例演示二

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID应用组成部分(3) 应用组成部分( ) 应用组成部分 SERVICE
沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

Service示例演示 示例演示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID应用组成部分(4) 应用组成部分( ) 应用组成部分 CONTENTPROVIDER
沈青海(www.3gqa.com) 沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

认识Content Provider数据存储 认识 数据存储
} }

1、数据在Android当中是私有的 、数据在 当中是私有的 2、两个程序之间如何进行数据交换? 、两个程序之间如何进行数据交换?

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用ContentProvider类 类 使用
}
}

1、常见接口 、
(1) 通过Uri进行查询,返回一个Cursor: query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) (2)更新Uri指定位置的数据: insert(Uri uri,ContentValues values) (3)删除指定Uri并且符合一定条件的数据: delete(Uri uri,String where,String[] selectionArgs):

}

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用ContentResolver类 类 使用
} }
}

1、getContentResolver()得到当前 、 得到当前ContentResolver实例 得到当前 实例 2、常见接口 、
(1) 通过Uri进行查询,返回一个Cursor: query(Uri uri,String[] projection,String selection,String[] selectionArgs,String sortOrder) (2)更新Uri指定位置的数据: insert(Uri uri,ContentValues values) (3)删除指定Uri并且符合一定条件的数据: delete(Uri uri,String where,String[] selectionArgs)

}

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用Uri类 使用 类
} } }

1、content:// 、 2、要获得数据的一个字符串片段 、
content://contacts/people/:全部的联系人的数据 全部的联系人的数据

3、ID(如果未指定 ,则表示返回全部) 、 (如果未指定ID,则表示返回全部)
content://contacts/people/1:ID为1的联系人的数据 : 为 的联系人的数据

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用UriMatcher类 类 使用
}

1、初始化UriMatcher 、初始化

}

2、match函数 2、match函数

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ContentProvider示例演示 示例演示(1) 示例演示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ContentProvider示例演示 示例演示(2) 示例演示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID 数据存取处理
沈青海 sunxml@gmail.com Copyright 2008-2009 Farsight. All rights reserved.

认识Android数据存储 数据存储 认识
} } }
} } } } }

1、在Android中,所有的应用软件数据(包括文件)为该 、 中 所有的应用软件数据(包括文件) 应用软件所私有。 应用软件所私有。 2、Android提供了一种标准方式供应用软件将私有数据开 、 提供了一种标准方式供应用软件将私有数据开 放给其他应用然间。 放给其他应用然间。 3、Android中可供选择的存储方式: 中可供选择的存储方式: 、 中可供选择的存储方式
(1)SharedPreferences ) (2)文件存储 ) (3)SQLite数据库方式 ) 数据库方式 (4)Content Provider(内容提供器) ) (内容提供器) (5)网络 )

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

SharedPvreferences

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

认识SharedPreferences 认识
} } }

1、是Android提供用来存储一些简单的配置信息的一种机 、 提供用来存储一些简单的配置信息的一种机 制 2、以键值对的方式存储 、 3、SharedPreferences保存在哪里? 保存在哪里? 、 保存在哪里

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

SharedPreferences使用 使用
}

1、取出数据 、

}

2、保存数据 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

SharedPreferences示例演示 示例演示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

文件存储

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

FileInputStream和FileOutputStrea使用 和 使用
}

文件输入输出流

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

SQLite

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

认识SQLite 认识
} } } } }

1、 SQLite是一个开源的嵌入式关系数据库 、 是一个开源的嵌入式关系数据库 2、需要的内存,其它开销很小,适合用于嵌入式设备 、需要的内存,其它开销很小, 3、很少的内存占用和高速的响应 、 4 、零配置 5 、可移植

使用SQLiteDatabase类 类 使用
} } } }

1、可以执行SQL语句,对数据库进行增、删、查、改操作 、可以执行 语句,对数据库进行增、 语句 2、在一个应用中,数据库的名字是唯一的,并且是私有的 、在一个应用中,数据库的名字是唯一的, 3、利用 、利用SQLiteOpenHelper来创建实例 来创建实例 4、execSQL() 、

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用SQLiteOpenHelper类 类 使用
} } }
} } }

1、getWritableDatabase() 、 2、getReadableDatabase() 、 3、是抽象类,需实现三个函数 、是抽象类,
(1)onCreate(SQLiteDatabase):数据库第一次生成时调用 ) : (2)onUpgrade(SQLiteDatabase,int,int):Android系统主动 ) 系统主动 调用 (3)onOpen(SQLiteDatabase):当打开数据库时回调 ) :

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用Cursor类 类 使用
} }

1、对从数据库查询出来的结果进行随机读写访问 、 2、moveToPosition(position) 、

SQLite示例演示 示例演示

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

ANDROID网络连接处理 网络连接处理
沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

android网络连接处理方法 网络连接处理方法
} } }

1、使用URLConnection和HttpURLConnection 、使用 和 2、使用 、使用org.apache.http.client 3、使用 浏览器( 、使用webkit浏览器(WebView) 浏览器 )

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用URLConnection和HttpURLConnection 和 使用
} } }

URL类 类 URLConnection类 类 HttpURLConnection类 类

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用org.apache.http.client 使用
} } }

使用HttpClient类 类 使用 使用HttpPost和HttpGet类 使用 和 类 使用HttpResponse类 使用 类

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

认识WebView 认识
}

类继承关系

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

使用WebView 使用
}

组件XML布局 布局 组件

}

loadData方法 方法

}

loadUrl方法 方法

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

网络连接示例演示

ANDROID音视频处理 音视频处理
沈青海(www.3gqa.com) 沈青海 admin@3gqa.com Copyright 2008-2009 Farsight. All rights reserved.

音频处理
} } }

MediaPlayer的应用 的应用 在线播放音频的处理方法 如何播放网络上的音频资源

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

MediaPlayer状态图 状态图

示例展示

ANDROID应用 应用
签名、打包、安装及发布到 签名、打包、安装及发布到MARKET
沈青海 sunxml@gmail.com Copyright 2008-2009 Farsight. All rights reserved.

签名打包APK(1) ( ) 签名打包

} } }
}

Android程序的签名和 程序的签名和Symbian类似都可以自签名 类似都可以自签名(Self程序的签名和 类似都可以自签名 signed) 平时开发时通过ADB接口上传的程序会自动被签有 接口上传的程序会自动被签有Debug 平时开发时通过 接口上传的程序会自动被签有 权限的程序 步骤: 步骤:
1) (1)生成证书 <jdk路径 路径>\bin>keytool -genkey -alias 路径 android123.keystore -keyalg RSA -validity 20000 keystore android123.keystore (2)签名 )签名APK文件 文件 jarsigner -verbose -keystore android123.keystore signedjar android123_signed.apk android123.apk android123.keystore

}

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

签名打包APK(2) ( ) 签名打包

模拟器上安装删除软件

} } } }

1、首先,将模拟器执行起来,直到正式进入系统。 、首先,将模拟器执行起来,直到正式进入系统。 2、接下来,打开一个 窗口, 、接下来,打开一个cmd窗口,路径切换到模拟器目录下 窗口 目录。 的tools目录。 目录 3、输入:adb install 你要安装的apk文件的路径。 、输入: 你要安装的 文件的路径。 文件的路径 4、输入:adb shell rm data/app/你要安装的 你要安装的apk文件 、输入: 你要安装的 文件

注:在shell内使用 来加载android应用 内使用am来加载 应用 内使用 来加载

安装到手机

}
} }

利用Android软件安装工具 软件安装工具-APK安装器 利用 软件安装工具 安装器
文件放入SD卡中后 (1)手机端:通过读卡器将 )手机端:通过读卡器将APK文件放入 卡中后,再将 文件放入 卡中后,再将SD 卡插回手机中就可以使用 (2)PC端:安装对应 端软件 ) 端 安装对应PC端软件

发布到Market 发布到

} }

申请Market帐号 帐号 申请 上传应用到Market 上传应用到

3G研发中心:http://www.3gqa.com 研发中心: 研发中心

谢谢
沈青海( 沈青海 www.3gqa.com) shenqh@farsight.com.cn

3G研发中心:http://www.3gqa.com 研发中心: 研发中心


相关文章:
Android高级应用课程大纲
---课程一级大纲列表 您可以通过截图浏览 : Total Android Professional 1,本课程适用对象: 2,对移动通讯技术感兴趣的技术人员 培训对象 3,有一定开发基础的的...
蓝鸥科技android培训课程大纲
蓝鸥科技android培训课程大纲_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 蓝鸥科技android培训课程大纲_计算机软件及应用_IT/计算机_...
方案案例培训大纲
方案案例培训大纲_广告/传媒_人文社科_专业资料。方案案例培训大纲一、第一阶段: 1) 装饰装潢行业方案:家装典型小微应用解决方案 工装典型小微应用解决方案 一体...
Java 培训大纲
Java 培训大纲_理学_高等教育_教育专区。魔乐科技软件学院(MLDN) Java /3G ...Oracle 大型关 系数据库、JAVA EE 技术、Android 开发者和企业级应用的中高级...
中科院计算所Android开发技术培训大纲
中科院计算所Android开发技术培训大纲_电脑基础知识_IT/计算机_专业资料。培训课程 科学| 高效 | 权威 | 品质 高级 Android 开发技术一、培训对象: 1、有 Android...
UI设计培训课程大纲_图文
UI设计培训课程大纲_计算机硬件及网络_IT/计算机_专业资料。UI设计培训课程大纲 ...各平台图标设计步骤 第 16 节 网游中心(MTK)图标解剖、录音带(Android)图标...
培训大纲进度安排(1)
培训训练大纲培训目的: 1、 提升顾客对门店与店员的服务满意度,并对店员产生依赖性; 2、 提升店员主动教育顾客的人数与次数; 3、 快速不断提升门店高毛利商品的...
医院服务培训大纲
医院服务培训大纲_生产/经营管理_经管营销_专业资料。培训大纲第一部分:服务意识培训篇引言: 1、案例:客户为何为难护士小王? 2、医院客服案例剖析:医生投诉案例 3...
手机软件设计竞赛 android培训大纲
手机软件设计竞赛 android 培训大纲为了帮助大家更好的学习 Android 开发的相关知识, 江西大学生手机软件设 计竞赛承办方(http://iet.jxufe.cn)为大家制作以下学习...
产品经理培训课程大纲
产品经理培训课程大纲_企业管理_经管营销_专业资料。产品经理培训课程大纲领跑互联...? 视频、电商、Social 的移动端产品案例剖 析 Ios、android 的产品差异化讲解 ...
更多相关标签: