第1章 初识Android 1
1.1 Android发展史与现状 2
1.2 Android系统架构与特性 3
1.2.1 Android系统架构 3
1.2.2 Dalvik VM和JVM的区别 5
1.2.3 Android系统平台的优势 6
1.3 Android开发环境搭建 7
1.3.1下载安装Java并配置环境变量 7
1.3.2下载安装Android Studio和Android SDK 10
1.4 Android Studio的使用与工程目录解析 12
1.4.1建立新的Android应用 12
1.4.2创建模拟器并使用模拟器运行应用 14
1.4.3工程目录分析 17
1.4.4 Android Studio常见问题 19
1.5小结 20
第2章 界面组件Activity 21
2.1从第一个工程开始 22
2.1.1 App是如何运行的 22
2.1.2项目中的资源 24
2.1.3理解Activity 25
2.2 Activity生命周期 27
2.2.1 Activity生命周期概述 27
2.2.2 Activity生命周期实例 29
2.3 Intent与Activity之间的跳转 33
2.3.1 Intent简介 33
2.3.2使用Intent进行Activity跳转 34
2.4 Activity启动模式 41
2.4.1 standard模式 41
2.4.2 singleTop模式 43
2.4.3 singleTask模式 44
2.4.4 singleInstance模式 45
2.5小结 47
第3章 用户界面UI的开发 48
3.1布局管理器概述 49
3.2 LinearLayout:线性布局管理器 50
3.2.1 LinearLayout实例及属性详解 51
3.2.2使用代码控制线性布局管理器 52
3.3 TableLayout:表格布局管理器 54
3.3.1 TableLayout实例与属性详解 54
3.3.2使用代码控制表格布局管理器 56
3.4 RelativeLayout:相对布局管理器 57
3.4.1 RelativeLayout实例及属性详解 57
3.4.2使用代码控制相对布局管理器 59
3.5 FrameLayout:帧布局管理器 60
3.5.1 FrameLayout布局实例 60
3.5.2使用代码控制帧布局管理器 61
3.6 AbsoluteLayout:绝对布局管理器 62
3.7 GridLayout:网格布局管理器 63
3.7.1 GridLayout实例及属性详解 63
3.7.2使用代码控制网格布局管理器 65
3.8布局管理器之间互相嵌套 67
3.9小结 69
第4章 基本控件与事件处理 70
4.1常用基本控件的使用 71
4.1.1基本控件的使用 71
4.1.2 Android中的尺寸问题 79
4.2 Android中的事件处理 79
4.2.1点击事件 80
4.2.2长按事件 83
4.2.3触摸事件 84
4.2.4按键事件 85
4.2.5下拉列表的选中事件 86
4.2.6单选按钮的改变事件 88
4.2.7焦点事件 89
4.3 ListView的使用 90
4.3.1使用ArrayAdapter实现ListView 90
4.3.2使用SimpleAdapter实现ListView 92
4.3.3继承BaseAdapter自定义Adapter来实现ListView 94
4.3.4 item的事件处理 98
4.4小结 100
第5章Fragment详解 101
5.1 Fragment的创建与使用 102
5.1.1静态使用Fragment 102
5.1.2动态使用Fragment 105
5.1.3使用Fragment时常用的类和方法 109
5.2 Fragment生命周期 110
5.3 ListFragment的使用 116
5.4用DialogFragment创建对话框 118
5.4.1通过重写onCreateView方法来实现对话框 119
5.4.2通过重写onCreateDialog方法来实现对话框 121
5.5 Fragment在开发中遇到的一些常见问题 122
5.5.1旋转屏幕问题 122
5.5.2 Fragment返回栈 122
5.5.3 Fragment与Activity之间的数据通信 127
5.6小结 130
第6章更多的控件与控件开发 131
6.1 ViewPager的使用 132
6.1.1 ViewPager的使用 132
6.1.2 ViewPager与Fragment 135
6.1.3 ViewPager与TabLayout 137
6.2 RecyclerView的使用 140
6.2.1 RecyclerView的实现 140
6.2.2 item分隔线及动画效果 145
6.2.3点击事件的实现 149
6.3自定义View控件 151
6.3.1自绘控件 151
6.3.2继承控件 156
6.3.3组合控件 162
6.4小结 165
第7章 数据存储 166
7.1 SharedPreferences 167
7.2文件存储 173
7.2.1在应用私有文件夹中读写数据 173
7.2.2向SDCard写入数据 176
7.3 SQLite数据库 177
7.3.1 SQLite简介 177
7.3.2 SQLite操作的核心类SQLiteDatabase与SQLiteOpenHelper 178
7.3.3 SQLite操作实例 184
7.4 ContentProvider 194
7.4.1 ContentProvider常用类简介 195
7.4.2自定义ContentProvider 197
7.5动态权限 202
7.5.1动态权限简介 203
7.5.2读取通话记录 204
7.6小结 209
第8章Service详解 210
8.1 Service综述 211
8.1.1 Service的分类 211
8.1.2为什么不使用线程 212
8.1.3 Service的创建与启动 212
8.1.4 Service生命周期 213
8.2 Service的简单实例 214
8.2.1以start方式创建与启动Service 215
8.2.2以bind方式创建与绑定Service 220
8.3 Android消息处理机制 227
8.3.1 Handler机制核心类介绍 227
8.3.2 Handler机制使用实例 231
8.3.3 Handler机制与AsyncTask比较分析 235
8.4前台服务 239
8.4.1 Notifiication简介与使用 240
8.4.2前台服务使用实例 241
8.5 IntentService 245
8.6小结 248
第9章Android广播机制 249
9.1广播机制概述 250
9.2使用系统广播 251
9.2.1动态注册广播实例 251
9.2.2静态注册广播实例 256
9.3自定义广播:普通广播与有序广播 257
9.3.1普通广播实例 257
9.3.2有序广播实例 259
9.4使用本地广播 263
9.5小结 265
第10章 网络开发 266
10.1 Android网络通信概述 267
10.1.1 TCP/IP 267
10.1.2 HTTP与Socket 267
10.2使用HTTP协议进行网络通信 268
10.2.1 HttpURLConnection简介 269
10.2.2 HttpURLConnection使用实例 269
10.3客户端类库OkHttp 277
10.3.1 OkHttp简介 277
10.3.2 OkHttp中各种请求的实现 279
10.3.3 OkHttp使用实例 284
10.3.4 JSON简介 289
10.4使用Socket进行网络通信 291
10.4.1 Socket简介 291
10.4.2基于TCP的Socket 292
10.5 WebView 297
10.5.1 WebView的基本使用 297
10.5.2使用HTML进行UI设计 299
10.6小结 303
第11章 多媒体开发 304
11.1拨号功能与短信功能 305
11.1.1拨号的实现 305
11.1.2短信发送 310
11.1.3接收短信 316
11.2再论Notifiication 321
11.2.1普通Notifiication回顾与拓展 321
11.2.2折叠式Notifiication 325
11.2.3悬挂式Notifiication 326
11.2.4 Notifiication的其他应用 326
11.3动画 330
11.3.1帧动画 330
11.3.2补间动画 332
11.3.3属性动画 338
11.4相机与相册 340
11.4.1相机的使用 340
11.4.2相册的使用 344
11.4.3图片的裁剪 346
11.5媒体播放器的开发 351
11.5.1开发一个音频播放器 351
11.5.2开发一个视频器 359
11.6录视频与录音频 366
11.6.1录制音频 366
11.6.2录制视频 371
11.7小结 377
第12章 传感器与地理位置定位 378
12.1传感器 379
12.1.1传感器简介 379
12.1.2加速度传感器 381
12.1.3光线传感器 381
12.2地理位置定位 385
12.2.1 LocationManager的使用 385
12.2.2使用高德地图 389
12.3小结 398
第13章VR开发入门 399
13.1详解VR 400
13.1.1 VR是什么 400
13.1.2 VR的关键技术 400
13.1.3 VR发展历程 402
13.1.4 VR在技术层面上的现状 402
13.1.5 VR当前市场现状 403
13.1.6 VR的市场前景 403
13.1.7主流的硬件设备形态 405
13.1.8谁会领衔VR内容制作 406
13.2基于Unity3 D的Android平台VR应用开发 406
13.2.1下载 Cardboard SDK for Unity 408
13.2.2导入CardboardSDKForUnity.unitypackage 408
13.2.3运行DemoScene 409
13.2.4使用Unity3D创建一个自己的场景 412
13.3小结 414
第14章Android NDK开发入门 415
14.1 NDK简介 416
14.2使用Android Studio进行NDK开发 416
14.2.1 Android NDK开发环境搭建 417
14.2.2第一个NDK应用 420
14.3小结 424
第15章 完成并发布一个产品 425
15.1功能需求分析 426
15.2功能开发(上) 427
15.2.1程序概览 427
15.2.2数据库设计与开发 427
15.2.3用户登录验证 431
15.2.4工具类 437
15.3功能开发(下) 441
15.3.1日记记录 441
15.3.2日记查询 456
15.3.3个人中心 465
15.3.4 AndroidManifest.xml及其他配置文件 471
15.4将应用打包并发布到小米应用商店 474
15.4.1应用打包 474
15.4.2发布应用到小米应用商店 476
15.5小结 480