第1章 Android的基础知识
1.1 Android与Andy Rubin
1.2 Android的开发环境
1.2.1 Android Studio的下载
1.2.2 Android Studio的安装
1.2.3 Android SDK的下载安装
1.2.4 Android Studio界面
1.2.5 Gradle更新
1.2.6 重构工程
1.3 创建Android工程
1.3.1 Android工程的新建命令
1.3.2 Android工程的创建向导
1.3.3 虚拟设备运行工程
1.3.4 物理设备运行工程
1.3.5 生成签名的APK文件
1.4 Android的工程结构
1.4.1 Project视图
1.4.2 AndroidManifest.xml文件
1.4.3 build.gradle文件
1.4.4 res文件夹
第2章 Kotlin基础
2.1 简介
2.2 变量
2.2.1 变量的命名规则
2.2.2 变量的命名方法
2.2.3 变量的声明
2.3 数据类型
2.3.1 基本数据类型
2.3.2 基本数据类型的自动转换
2.3.3 基本数据类型的强制转换
2.3.4 引用数据类型
2.4 运算符和位运算
2.4.1 算术运算符
2.4.2 关系运算符
2.4.3 逻辑运算符
2.4.4 赋值运算符
2.4.5 运算符优先级
2.5 字符串
2.5.1 字符串字面量
2.5.2 String类
2.5.3 StringBuffer类和StringBuilder类
2.6 分支语句
2.6.1 if语句
2.6.2 ifelse语句
2.6.3 ifelse ifelse语句
2.6.4 when语句
2.7 循环语句
2.7.1 while语句
2.7.2 dowhile语句
2.7.3 for语句
2.7.4 repeat语句
2.7.5 break语句
2.7.6 continue语句
2.8 数组
2.8.1 创建元素未初始化的数组
2.8.2 创建元素初始化的数组
2.8.3 空数组
2.8.4 二维数组
2.9 函数和Lambda表达式
2.9.1 函数和高阶函数
2.9.2 匿名函数
2.9.3 Lambda表达式的基本形式
2.9.4 Lambda表达式参数的省略形式
2.9.5 let、also、apply、with和run函数
第3章 Kotlin的面向对象基础
3.1 类
3.1.1 类的声明
3.1.2 创建类的实例
3.1.3 属性的get()和set()方法
3.1.4 扩展属性和扩展方法
3.1.5 自动生成KDoc文档
3.1.6 继承
3.2 重写与重载
3.3 抽象类和抽象方法
3.4 包
3.5 封装和访问控制符
3.6 接口
3.7 委托
3.7.1 类的委托
3.7.2 变量的委托
3.8 属性的延迟初始化
3.8.1 lateinit
3.8.2 by lazy
第4章 Kotlin的面向对象进阶
4.1 数据类
4.2 密封类
4.3 对象类
4.4 伴生对象
4.5 枚举
4.5.1 枚举基础用法
4.5.2 枚举进阶用法
4.6 集合
4.6.1 Set集合
4.6.2 List集合
4.6.3 Map类
4.7 泛型
4.7.1 泛型类
4.7.2 泛型接口
4.7.3 泛型方法
4.8 异常处理
4.8.1 异常处理基础用法
4.8.2 异常处理进阶用法
4.8.3 自定义异常处理用法
4.9 多线程
4.9.1 Thread类
4.9.2 Runnable接口
4.9.3 Callable接口
4.9.4 Synchronized注解和
synchronized代码块
4.9.5 volatile注解
4.10 协程
4.10.1 添加依赖库
4.10.2 协程作用域
4.10.3 启动协程
4.10.4 挂起协程
第5章 Android的基础控件
5.1 控件基础
5.1.1 控件的创建方式
5.1.2 View类
5.1.3 UI控件的常用单位
5.2 文本视图
5.2.1 TextView控件
5.2.2 实例工程:显示文本
5.3 输入框
5.3.1 EditText控件
5.3.2 实例工程:输入发送信息
5.4 按钮
5.4.1 Button控件
5.4.2 实例工程:单击按钮获取系统时间
5.5 图像视图
5.5.1 ImageView控件
5.5.2 实例工程:显示图像
5.6 图像按钮
5.6.1 ImageButton控件
5.6.2 实例工程:提示广播信息状态的图像按钮
5.7 单选按钮
5.7.1 RadioButton控件
5.7.2 实例工程:选择性别的单选框
5.8 复选框
5.8.1 Checkbox控件
5.8.2 实例工程:兴趣爱好的复选框
5.9 开关按钮
5.9.1 Switch控件
5.9.2 实例工程:房间灯的开关按钮
5.10 提示信息
5.10.1 Toast控件
5.10.2 实例工程:不同位置显示的提示信息
5.11 对话框
5.11.1 AlertDialog控件
5.11.2 实例工程:默认对话框和自定义对话框
5.12 日期选择器
5.12.1 DatePicker控件
5.12.2 实例工程:设置日期的日期选择器
5.13 时间选择器
5.13.1 TimePicker控件
5.13.2 实例工程:设置时间的时间选择器
5.14 滚动条视图
5.14.1 ScrollView控件
5.14.2 实例工程:滚动显示视图
5.15 通知
5.15.1 Notification控件
5.15.2 实例工程:弹出式通知和自定义视图通知
第6章 Android的布局组件
6.1 线性布局
6.1.1 LinearLayout组件
6.1.2 实例工程:动态视图的线性布局
6.2 相对布局
6.2.1 RelativeLayout组件
6.2.2 实例工程:显示方位的相对布局
6.3 表格布局
6.3.1 TableLayout组件
6.3.2 实例工程:登录界面的表格视图
6.4 网格布局
6.4.1 GridLayout组件
6.4.2 实例工程:模仿计算器界面的网格布局
6.5 帧布局
6.5.1 FrameLayout组件
6.5.2 实例工程:分层显示图像的帧布局
6.6 约束布局
6.6.1 ConstraintLayout组件
6.6.2 实例工程:模仿朋友圈顶部的约束布局
第7章 Android的进阶控件与适配绑定
7.1 数据适配原理
7.2 列表视图
7.2.1 ListView控件
7.2.2 实例工程:简单数据的列表视图
7.2.3 实例工程:带缓存的自定义视图列表
7.3 网格视图
7.3.1 GridView控件
7.3.2 实例工程:显示商品类别的网格视图
7.4 悬浮框
7.4.1 PopupWindow控件
7.4.2 实例工程:单击按钮显示自定义悬浮框
7.5 翻转视图
7.5.1 ViewFlipper控件
7.5.2 实例工程:轮流显示图像的翻转视图
7.6 分页视图
7.6.1 ViewPager控件
7.6.2 实例工程:欢迎引导页
7.7 视图绑定
7.7.1 ViewBinding
7.7.2 实例工程:使用视图绑定改造欢迎引导页
7.8 数据绑定
7.8.1 DataBinding
7.8.2 BaseObservable类
7.8.3 ObservableField类
7.8.4 实例工程:使用数据绑定改造欢迎引导页
第8章 Android的基本程序单元
8.1 活动
8.1.1 Activity组件
8.1.2 Activity的创建和删除
8.1.3 Activity的启动和关闭
8.1.4 Activity的生命周期
8.1.5 Activity的启动模式
8.1.6 实例工程:Activity的数据传递
8.2 碎片
8.2.1 Fragment组件
8.2.2 Fragment的生命周期
8.2.3 实例工程:导航分页的主界面
第9章 Android的后台服务与广播
9.1 服务
9.1.1 Service组件
9.1.2 Service的生命周期
9.1.3 实例工程:Service的开启和停止
9.1.4 实例工程:Service的绑定和数据传递
9.1.5 实例工程:Service显示Notification
9.2 广播接收器
9.2.1 BroadcastReceiver组件
9.2.2 接收广播
9.2.3 实例工程:显式和隐式接收广播
9.2.4 发送广播
9.2.5 实例工程:发送标准广播和有序广播
第10章 Android的数据存储与共享
10.1 共享偏好设置
10.1.1 SharedPreferences组件
10.1.2 实例工程:用户登录
10.2 轻量级数据库
10.2.1 SQLite的字段类型
10.2.2 SQLite组件
10.2.3 实例工程:自定义通讯录
10.3 内容提供者
10.3.1 URI
10.3.2 数据交换原理
10.3.3 ContentProvider组件
10.3.4 实例工程:自定义内容提供者
10.3.5 实例工程:访问和修改系统通讯录数据
10.4 JavaScript对象表示法
10.4.1 JSON的数据结构
10.4.2 JSONObject类
10.4.3 实例工程:合成和解析JSON数据
第11章 Android的多媒体与传感器
11.1 系统相机和相册
11.1.1 实例工程:拍照、选取和显示图片
11.1.2 实例工程:录制、选取和播放视频
11.2 拍摄照片和录制视频
11.2.1 Camera2组件
11.2.2 ImageReader类
11.2.3 MediaRecorder类
11.2.4 实例工程:使用Camera类拍摄照片
11.2.5 实例工程:使用Camera2类录制视频
11.3 录制音频
11.3.1 AudioRecord类
11.3.2 AudioTrack类
11.3.3 实例工程:使用AudioRecord类录音
11.3.4 实例工程:使用MediaRecorder类录音
11.4 传感器
11.4.1 Sensor组件
11.4.2 运动类传感器
11.4.3 实例工程:摇一摇比大小
11.4.4 位置类传感器
11.4.5 实例工程:指南针
11.4.6 环境类传感器
11.4.7 实例工程:光照计和气压计
11.5 位置服务
11.5.1 Location组件
11.5.2 实例工程:获取经纬度坐标
……
第12章 Android的HTTP网络通信
第13章 Android的快速开发套件
第14章 “粉色辣椒”开发流程
参考文献