简介
《Android开发完全讲义(第2版)》以基础知识结合实际案例的方式,由浅入深地讲解了Android开发技术。本书包含了Android框架、Android用户接口、Android组件、Android数据存储解决方案、Android的4种跨平台通信的组件、网络、绘图、多媒体、2D动画、OpenGL ES、资源、国际化、Android手机的硬件访问、实时壁纸、实时文件夹、NDK、脚本语言、手势输入、文字语音转换(TTS)、蓝牙技术等。本书在知识点的讲解过程中,配合了200多个微小实例。为了让读者能够融会贯通所学的知识点,本书最后还整合了2个完整的开发案例:“万年历”和“可以知道当前位置的Google GTalk机器人”。
本书第一版引起了广大读者的热烈反响,虽然听到有读者给此书为冠以“Android第1书”的称号,但这不是因为我水平多高,只是因为我在学习Android技术的过程中,有过与读者相同的苦逼经历,而在后来作为Android技术讲师之后,也了解了更多的学习需求,才让此书更加能够解决读者学习过程中的一些问题。读者的认可,使我想方设法能让第二版更加精彩一点。如果通过此书,读者能觉得比其它书能学起来更容易一些,更有趣一些,我就非常快乐了。
目录
第二版前言
第一版前言
如何使用本书的例子
第一部分 准备篇——大军未动,粮草先行
第1章 Android入门
1.1 Android的基本概念
1.1.1 Android简介
1.1.2 Android的系统构架
1.2 Android .3.x新功能介绍
1.2.1 显示电池使用状况
1.2.2 SIP网络电话
1.2.3 近场通信(NFC)
1.2.4 控制多个摄像头
1.3 Android .x新功能介绍
1.3.1 重新设计的UI
1.3.2 系统状态条
1.3.3 多任务管理
1.3.4 多重桌面
1.3.5 电子邮件(E-mail)
1.3.6 联系人管理
1.3.7 虚拟键盘与剪贴功能
1.3.8 相机功能
1.3.9 视频电话
1.3.10 支持多核处理器
1.4 Android开发环境的搭建
1.4.1 开发Android程序需要些什么
1.4.2 安装Android SDK
1.4.3 安装Eclipse插件ADT
1.4.4 测试ADT是否安装成功
1.5 Android SDK中的常用命令行工具
1.5.1 启动和关闭adb服务(adb start-server和adb kill-server)
1.5.2 查询当前模拟器/设备的实例(adb devices)
1.5.3 安装、卸载和运行程序(adb install、adb uninstall和am)
1.5.4 PC与模拟器或真机交换文件(adb pull和adb push)
1.5.5 Shell命令
1.5.6 创建、删除和浏览AVD设备(android)
1.5.7 获取Android版本对应的ID
1.5.8 创建SD卡
1.6 PC上的Android
1.6.1 Android LiveCD
1.6.2 AndroidX86
1.7 Android的学习资源
1.8 应用程序商店
1.8.1 Android Market
1.8.2 Mobile Market(MM)
1.8.3 其他应用程序商店
1.9 小结
第2章 第一个Android程序
2.1 编写用于显示当前日期和时间的程序
2.1.1 新建一个Android工程
2.1.2 界面控件的布局
2.1.3 编写实际代码
2.2 调试程序
2.3 签名和发布应用程序
2.3.1 使用命令行方式进行签名
2.3.2 使用ADT插件方式进行签名
2.4 DDMS透视图
2.5 小结
第二部分 基础篇——Android世界的精彩之旅
第3章 Android应用程序架构
3.1 Android应用程序中的资源
3.1.1 资源存放在哪里
3.1.2 资源的种类
3.1.3 资源的基本使用方法
3.2 Android的应用程序组件
3.2.1 活动(Activity)组件
3.2.2 服务(Service)组件
3.2.3 广播接收者(Broadcast receivers)组件
3.2.4 内容提供者(Content providers)组件
3.3 AndroidManifest.xml文件的结构
3.4 小结
第4章 建立用户接口
4.1 建立、配置和使用Activity
4.1.1 建立和配置Activity
4.1.2 Activity的生命周期
4.1.3 Activity生命周期的演示
4.2 视图(View)
4.2.1 视图简介
4.2.2 使用XML布局文件控制视图
4.2.3 在代码中控制视图
4.2.4 混合使用XML布局文件和代码来控制视图
4.2.5 定制控件(Widget)的3种方式
4.2.6 定制控件——带图像的TextView
4.2.7 定制控件——带文本标签的EditText
4.2.8 定制控件——可更换表盘的指针时钟
4.3 使用AlertDialog类创建对话框
4.3.1 AlertDialog类简介
4.3.2 【确认/取消】对话框
4.3.3 创建询问是否删除文件的【确认/取消】对话框
4.3.4 带3个按钮的对话框
4.3.5 创建【覆盖/忽略/取消】对话框
4.3.6 简单列表对话框
4.3.7 单选列表对话框
4.3.8 多选列表对话框
4.3.9 创建3种选择省份的列表对话框
4.3.10 水平进度对话框和圆形进度对话框
4.3.11 水平进度对话框和圆形进度对话框演示
4.3.12 自定义对话框
4.3.13 创建登录对话框
4.3.14 用Activity托管对话框
4.3.15 创建悬浮对话框和触摸任何位置都可以关闭的对话框
4.4 Toast和Notification
4.4.1 用Toast显示提示信息框
4.4.2 阻止关闭Toast信息框
4.4.3 Notification与状态栏信息
4.5 菜单
4.5.1 创建选项菜单
4.5.2 设置与菜单项关联的图像和Activity
4.5.3 响应选项菜单项单击事件的3种方式
4.5.4 动态添加、修改和删除选项菜单
4.5.5 创建带复选框和选项按钮的子菜单
4.5.6 创建上下文菜单
4.5.7 菜单事件
4.5.8 Activity菜单、子菜单、上下文菜单演示
4.6 布局
4.6.1 框架布局(FrameLayout)
4.6.2 霓虹灯效果的TextView
4.6.3 线性布局(LinearLayout)
4.6.4 利用LinearLayout将按钮放在屏幕的四角和中心位置
4.6.5 相对布局(RelativeLayout)
4.6.6 利用RelativeLayout实现梅花效果的布局
4.6.7 表格布局(TableLayout)
4.6.8 计算器按钮的布局
4.6.9 绝对布局(AbsoluteLayout)
4.6.10 查看apk文件中的布局
4.7 小结
第5章 控件详解
5.1 显示和编辑文本的控件
5.1.1 显示文本的控件:TextView
5.1.2 在TextView中显示URL及不同字体大小、不同颜色的文本
5.1.3 带边框的TextView
5.1.4 设置TextView控件的行间距
5.1.5 输入文本的控件:EditText
5.1.6 在EditText中输入特定的字符
5.1.7 按回车键显示EditText
5.1.8 自动完成输入内容的控件:AutoCompleteTextView
5.2 按钮与复选框控件
5.2.1 普通按钮控件:Button
5.2.2 异形(圆形、五角星、螺旋形
和箭头)按钮
5.2.3 图像按钮控件:ImageButton
5.2.4 同时显示图像和文字的按钮
5.2.5 选项按钮控件:RadioButton
5.2.6 开关状态按钮控件:ToggleButton
5.2.7 复选框控件:CheckBox
5.2.8 利用XML布局文件动态创建
CheckBox
5.3 日期与时间控件
5.3.1 输入日期的控件:DatePicker
5.3.2 输入时间的控件:TimePicker
5.3.3 DatePicker、TimePicker与TextView
同步显示日期和时间
5.3.4 显示时钟的控件:AnalogClock和
DigitalClock
5.4 进度条控件
5.4.1 进度条控件:ProgressBar
5.4.2 拖动条控件:SeekBar
5.4.3 改变ProgressBar和SeekBar的颜色
5.4.4 评分控件:RatingBar
5.5 其他重要控件
5.5.1 显示图像的控件:ImageView
5.5.2 可显示图像指定区域的ImageView
控件
5.5.3 动态缩放和旋转图像
5.5.4 列表控件:ListView
5.5.5 可以单选和多选的ListView
5.5.6 动态添加、删除ListView列表项
5.5.7 改变ListView列表项选中状态的
背景颜色
5.5.8 封装ListView的Activity:
ListActivity
5.5.9 使用SimpleAdapter建立复杂的
列表项
5.5.10 给应用程序评分
5.5.11 可展开的列表控件:
ExpandableListView
5.5.12 下拉列表控件:Spinner
5.5.13 垂直滚动视图控件:ScrollView
5.5.14 水平滚动视图控件:
HorizontalScrollView
5.5.15 可垂直和水平滚动的视图
5.5.16 网格视图控件:GridView
5.5.17 可循环显示和切换图像的控件:
Gallery和ImageSwitcher
5.5.18 标签控件:TabHost
5.6 小结
第6章 移动存储解决方案
6.1 最简单的数据存储方式:
SharedPreferences
6.1.1 使用SharedPreferences存取数据
6.1.2 数据的存储位置和格式
6.1.3 存取复杂类型的数据
6.1.4 设置数据文件的访问权限
6.1.5 可以保存设置的Activity:
PreferenceActivity
6.2 文件的存储
6.2.1 openFileOutput和openFileInput
方法
6.2.2 SD卡文件浏览器
6.2.3 存取SD卡中的图像
6.2.4 SAX引擎读取XML文件的原理
6.2.5 将XML数据转换成Java对象
6.3 SQLite数据库
6.3.1 SQLite数据库管理工具
6.3.2 创建数据库和表
6.3.3 模糊查询
6.3.4 分页显示记录
6.3.5 事务
6.4 在Android中使用SQLite数据库
6.4.1 SQLiteOpenHelper类与自动
升级数据库
6.4.2 SimpleCursorAdapter类与数据绑定
6.4.3 带照片的联系人管理系统
6.4.4 将数据库与应用程序一起发布
6.4.5 英文词典
6.5 持久化数据库引擎(db4o)
6.5.1 什么是db4o
6.5.2 下载和安装db4o
6.5.3 创建和打开数据库
6.5.4 向数据库中插入Java对象
6.5.5 从数据库中查询Java对象
6.5.6 高级数据查询
6.5.7 更新数据库中的Java对象
6.5.8 删除数据库中的Java对象
6.6 小结
第7章 应用程序之间的通信
7.1 Intent与Activity
7.1.1 用Intent启动Activity,并在Activity
之间传递数据
7.1.2 调用其他应用程序中的Activity(拨打
电话、浏览网页、发E-mail等)
7.1.3 定制自己的Activity Action
7.1.4 将电子词典的查询功能共享成一个
Activity Action
7.2 接收和发送广播
7.2.1 接收系统广播
7.2.2 开机可自动运行的程序
7.2.3 收到短信了,该做点什么
7.2.4 显示手机电池的当前电量
7.2.5 在自己的应用程序中发送广播
7.2.6 接收联系人系统中发送的添加
联系人广播
7.3 小结
第8章 Android服务
8.1 Service起步
8.1.1 Service的生命周期
8.1.2 绑定Activity和Service
8.1.3 在BroadcastReceiver中启动
Service
8.2 系统服务
8.2.1 获得系统服务
8.2.2 监听手机来电
8.2.3 来电黑名单
8.2.4 在模拟器上模拟重力感应
8.2.5 手机翻转静音
8.3 时间服务
8.3.1 计时器:Chronometer
8.3.2 预约时间:Handler
8.3.3 定时器:Timer
8.3.4 在线程中更新GUI组件
8.3.5 全局定时器:AlarmManager
8.3.6 定时更换壁纸
8.3.7 多次定时提醒
8.4 跨进程访问(AIDL服务)
8.4.1 什么是AIDL服务
8.4.2 建立AIDL服务的步骤
8.4.3 建立AIDL服务
8.4.4 传递复杂数据的AIDL服务
8.5 小结
第9章 网络
9.1 可装载网络数据的控件
9.1.1 装载网络数据的原理
9.1.2 将网络图像装载到ListView
控件中
9.1.3 Google图像画廊(Gallery)
9.2 WebView控件
9.2.1 用WebView控件浏览网页
9.2.2 手机浏览器
9.2.3 用WebView控件装载HTML代码
9.2.4 将英文词典整合到Web页中
(JavaScript调用Java方法)
9.3 访问HTTP资源
9.3.1 提交HTTP GET和HTTP POST
请求
9.3.2 HttpURLConnection类
9.3.3 上传文件
9.3.4 远程Apk安装器
9.3.5 调用WebService
9.3.6 通过WebService查询产品信息
9.4 Internet地址
9.4.1 Internet地址概述
9.4.2 创建InetAddress对象
9.4.3 判断IP地址类型
9.5 客户端Socket
9.5.1 Socket类基础
9.5.2 多种连接服务端的方式
9.5.3 客户端Socket的超时
9.5.4 Socket类的getter和setter方法
9.5.5 Socket的异常
9.6 服务端Socket
9.6.1 创建ServerSocket对象
9.6.2 设置请求队列的长度
9.6.3 绑定IP地址
9.6.4 默认构造方法的使用
9.6.5 读取和发送数据
9.6.6 关闭连接
9.7 小结
第10章 多媒体
10.1 图形
10.1.1 图形绘制基础
10.1.2 绘制基本的图形和文本
10.1.3 绘制位图
10.1.4 用两种方式绘制位图
10.1.5 设置颜色的透明度
10.1.6 可任意改变透明度的位图
10.1.7 旋转图像
10.1.8 旋转动画
10.1.9 扭曲图像
10.1.10 按圆形轨迹扭曲图像
10.1.11 拉伸图像
10.1.12 拉伸图像演示
10.1.13 路径
10.1.14 沿着路径绘制文本
10.1.15 可在图像上绘制图形的画板
10.2 音频和视频
10.2.1 使用MediaPlayer播放MP3文件
10.2.2 使用MediaRecorder录音
10.2.3 使用VideoView播放视频
10.2.4 使用SurfaceView播放视频
10.3 小结
第三部分 进阶篇——深入Android世界的腹地
第11章 D动画
11.1 帧(Frame)动画
11.1.1 AnimationDrawable与帧动画
11.1.2 通过帧动画方式播放Gif动画
11.1.3 播放帧动画的子集
11.2 补间(Tween)动画
11.2.1 移动补间动画
11.2.2 循环向右移动的EditText与上下
弹跳的球
11.2.3 缩放补间动画
11.2.4 跳动的心
11.2.5 旋转补间动画
11.2.6 旋转的星系
11.2.7 透明度补间动画
11.2.8 投掷炸弹
11.2.9 振动效果
11.2.10 自定义动画渲染器(Interceptor)
11.2.11 以动画方式切换View的控件
ViewFlipper
11.3 小结
第12章 OpenGL ES编程
12.1 OpenGL ES简介
12.2 在3D空间中绘图
12.2.1 要绘制3D图形了,第一步要
做什么
12.2.2 定义顶点
12.2.3 绘制三角形
12.2.4 三角形合并法绘制矩形
12.2.5 顶点法绘制矩形
12.2.6 顶点的选取顺序
12.2.7 索引法绘制矩形
12.2.8 基于OpenGL ES的动画原理
12.2.9 旋转的矩形
12.3 视图
12.3.1 有趣的比喻:照相机拍照
12.3.2 模型变换:立方体旋转
12.3.3 用gluLookAt方法变换视图 4
12.4 颜色
12.5 小结
第13章 资源、国际化与自适应
13.1 Android中的资源
13.1.1 Android怎么存储资源
13.1.2 资源的种类
13.1.3 资源文件的命名
13.2 定义和使用资源
13.2.1 使用系统资源
13.2.2 字符串(String)资源
13.2.3 数组(Array)资源
13.2.4 颜色(Color)资源
13.2.5 尺寸(Dimension)资源
13.2.6 类型(Style)资源
13.2.7 主题(Theme)资源
13.2.8 绘画(Drawable)资源
13.2.9 动画(Animation)资源
13.2.10 菜单(Menu)资源
13.2.11 布局(Layout)资源
13.2.12 属性(Attribute)资源
13.2.13 改进可显示图标的IconTextView
控件
13.2.14 XML资源
13.2.15 RAW资源
13.2.16 ASSETS资源
13.3 国际化和资源自适应
13.3.1 对资源进行国际化
13.3.2 Locale与国际化
13.3.3 常用的资源配置
13.4 小结
第14章 访问Android手机的硬件
14.1 在手机上测试硬件
14.1.1 安装Android USB驱动
14.1.2 在手机上测试程序
14.1.3 在手机上调试程序
14.2 录音
14.3 控制手机摄像头(拍照)
14.3.1 调用系统的拍照功能
14.3.2 实现自己的拍照Activity
14.4 传感器在手机中的应用
14.4.1 在应用程序中使用传感器
14.4.2 电子罗盘
14.4.3 计步器
14.5 GPS与地图定位
14.5.1 Google地图
14.5.2 用GPS定位到当前位置
14.6 WIFI
14.7 小结
第15章 放在桌面上的小玩意
15.1 窗口小部件(App Widget)
15.1.1 在Android桌面上添加App
Widget
15.1.2 开发App Widget的步骤
15.1.3 数字时钟
15.1.4 AppWidgetProvider类
15.1.5 向App Widget添加配置Activity
15.1.6 可以选择风格的数字时钟
15.2 快捷方式
15.2.1 向快捷方式列表中添加快捷方式
15.2.2 直接将快捷方式放到桌面上
15.3 实时文件夹(LiveFolder)
15.4 小结
第16章 NDK编程
16.1 Android NDK简介
16.2 安装、配置和测试NDK开发环境
16.2.1 系统和软件要求
16.2.2 下载和安装Android NDK
16.2.3 下载和安装Cygwin
16.2.4 配置Android NDK的开发环境
16.2.5 编译和运行NDK自带的例子
16.3 Android NDK开发
16.3.1 JNI接口设计
16.3.2 编写Android NDK程序的步骤
16.3.3 将文件中的小写字母转换成大写
字母(NDK版本)
16.3.4 配置Android.mk文件
16.3.5 Android NDK定义的变量
16.3.6 Android NDK定义的函数
16.3.7 描述模块的变量
16.3.8 配置Application.mk文件
16.4 小结
第17章 整合Android与脚本语言
17.1 Android脚本环境简介
17.2 Android脚本环境安装
17.3 编写和运行Android脚本
17.4 小结
第18章 蓝牙技术
18.1 蓝牙简介
18.2 打开和关闭蓝牙设备
18.3 搜索蓝牙设备
18.4 蓝牙数据传输
18.5 蓝牙通讯一定需要UUID吗
18.6 小结
第19章 有趣的Android技术
19.1 手势(Gesture)
19.1.1 创建手势文件
19.1.2 通过手势输入字符串
19.1.3 通过手势调用程序
19.1.4 编写自己的手势创建器
19.2 让手机说话(TTS)
19.3 动态壁纸
19.4 小结
第四部分 综合实例篇——实践是检验真理的唯一标准
第20章 万年历
20.1 主界面设计与实现
20.1.1 万年历的核心类:Calendar
20.1.2 日历内容元素的基类:
CalendarParent
20.1.3 绘制万年历边框:Border类
20.1.4 绘制周名称:Week类
20.1.5 绘制日期和网格:Grid类
20.1.6 日历视图:CalendarView类
20.1.7 生成万年历的主界面
20.2 选项菜单功能
20.2.1 切换到今天的日期
20.2.2 指定日期
20.3 可以写日记和提醒的万年历
20.3.1 显示所有的记录信息:
AllRecord类
20.3.2 添加和修改记录:Record类
20.3.3 设置提醒时间
20.3.4 启动服务
20.3.5 在广播接收器中显示提醒界面
20.3.6 访问数据库:DBService
20.4 小结
第21章 知道当前位置的Google GTalk
机器人
21.1 GTalk的通讯协议和技术
21.1.1 Jabber和XMPP
21.1.2 XMPP客户端库:Smack和
Asmack
21.2 登录GTalk:Login类
21.3 联系人信息
21.3.1 显示联系人列表
21.3.2 监听联系人是否上线
21.4 联系人之间的通讯
21.4.1 发送聊天信息
21.4.2 接收聊天信息
21.4.3 自动回复当前的位置
(GPS定位)
21.5 小结
第22章 Android .x支持的新技术
22.1 Android .x的10大特性
22.2 子窗口:Fragments
22.2.1 Fragments的设计原理
22.2.2 创建Fragment
22.2.3 建立一个用户界面
22.2.4 将Fragment添加到Activity中
22.2.5 处理Fragment事务
22.3.6 与Activity通信
22.3 动作栏:Action Bar
22.3.1 添加Action Bar
22.3.2 移除Action Bar
22.3.3 添加Action Item
22.3.4 将应用图标用作菜单项目
22.4 小结
Android开发完全讲义
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×