Android Studio移动开发教程
第1章 Android应用开发概述及开发环境11.1 移动开发与智能手机11.1.1 移动开发概述11.1.2 Android智能手机的使用特点11.1.3 手机智能操作系统及分类21.2 Android系统架构21.2.1 Linux内核层31.2.2 函数库和Android运行时环境层41.2.3 应用程序框架层41.2.4 应用程序层51.3 Android Studio开发环境51.3.1 Android Studio概述51.3.2 下载和安装Android Studio 3.1.251.3.3 Android Studio相关文件夹61.3.4 Android SDK与Android API61.3.5 Android Studio常用组合键101.4 创建和运行Android应用101.4.1 创建一个Hello级Android Studio项目101.4.2 手机模拟器与AVD Manager141.4.3 安装和运行Android应用16习题117实验118第2章 Android项目结构分析及调试192.1 Android项目的文件系统结构192.1.1 项目配置清单文件夹manifests192.1.2 源程序文件夹Java202.1.3 资源程序文件夹res202.1.4 项目多模块及构建Gradle Scripts222.1.5 使用Project或Packages视图242.2 Android应用程序的基本组成252.2.1 Activity组件与视图View252.2.2 Service组件252.2.3 BroadcastReceiver组件252.2.4 ContentProvider组件262.2.5 Application、Context和Intent262.2.6 Android应用程序的运行入口272.3 Android虚拟机Dalvik282.4 Android Studio项目调试292.4.1 主动调试(Toast与Logcat)292.4.2 动态调试312.4.3 单元测试32习题235实验236第3章 Android UI与Activity组件373.1 用户界面UI设计373.1.1 Android界面视图类373.1.2 Android用户界面事件383.1.3 界面与布局393.2 活动组件Activity473.2.1 AppCompatActivity、Activity和Context473.2.2 Activity组件的基本方法483.2.3 Activity类具有的扩展方法483.2.4 Activity的生命周期493.2.5 手机横/竖屏自动切换问题503.3 常用Widget控件的使用513.3.1 文本控件TextView和EditText513.3.2 图像控件ImageView523.3.3 命令按钮控件Button、ImageButton及其单击事件监听器设计533.3.4 单选按钮控件RadioButton与复选框控件CheckBox543.3.5 消息提醒对话框控件AlertDialog与进度控件ProgressDialog553.3.6 列表控件及其数据适配器和列表项选择监听器573.3.7 下拉列表控件Spinner623.4 高级UI程序设计633.4.1 日期和时间选择器(DatePicker和TimePicker)633.4.2 自动完成文本控件AutoCompleteTextView643.4.3 标题栏Toolbar与OptionMenu菜单设计643.4.4 Fragment与ListFragment663.4.5 底部导航BottomNavigationView72习题375实验376第4章 手机基本功能程序设计794.1 预备知识794.1.1 Activity组件的调用与返回794.1.2 Android权限、权限组与运行时权限动态检测834.1.3 SharedPreferences存储与文件存储874.1.4 抽象类android.net.Uri及其静态方法parse()924.2 打电话程序设计924.3 短信程序设计944.3.1 SMS简介944.3.2 短信管理器944.3.3 短信发送程序的实现944.4 手机音频播放与录音程序设计964.4.1 音频播放964.4.2 手机录音984.5 手机视频播放1014.6 手机拍照程序设计102习题4105实验4106第5章 服务组件及其应用1095.1 服务组件Service的基本用法1095.1.1 Android系统服务1095.1.2 Service组件及其生命周期1115.1.3 自定义服务与服务注册1135.1.4 服务的显式启动与隐式启动1135.1.5 绑定服务方式与服务代理1155.2 远程服务1175.2.1 远程服务概念1175.2.2 Android跨进程调用与接口定义语言AIDL1185.2.3 远程服务的建立与使用实例1185.3 综合应用实例—自动挂断来电后回复短信123习题5131实验5132第6章 广播组件与通知1356.1 广播与BroadcastReceiver组件1356.1.1 Android广播机制1356.1.2 使用BroadcastReceiver组件定义广播接收者1366.1.3 接收系统短信广播应用实例1406.2 自定义广播及其使用1416.2.1 自定义广播1416.2.2 以动态注册方式使用自定义广播1426.2.3 以静态注册方式使用自定义广播1436.3 通知1446.3.1 通知与通知类Notification1446.3.2 通知管理器类NotificationManager1456.3.3 使用PendingIntent查看通知内容145习题6148实验6149第7章 SQLite数据库编程1517.1 SQLite数据库简介1517.1.1 SQLite数据库软件的特点1517.1.2 Android系统对SQLite数据库的支持1517.2 使用SQLiteOpenHelper创建、打开或更新数据库1527.2.1 SQLite数据库及表的创建与打开1527.2.2 使用SQLiteSpy验证创建的数据库1537.2.3 SQLite数据库的更新1547.3 使用SQLiteDatabase实现数据库表的增加、删除、修改和查询1557.3.1 记录的增加、删除、修改和查询1557.3.2 使用适配器SimpleAdapter显示查询结果1577.3.3 以DAO方式访问数据库编写程序1587.3.4 使用数据库事务166习题7169实验7171第8章 Android内容提供者组件1738.1 ContentProvider组件及其相关类1738.1.1 抽象类ContentProvider(内容提供者)1738.1.2 抽象类ContentResolver(内容解析器)1758.1.3 内容提供者的URI定义及其相关类(UriMatcher和ContentUris)1768.2 自定义ContentProvider及其使用1778.2.1 在Android应用里创建并注册内容提供者1778.2.2 在另一个应用程序里使用内容提供者1808.3 读取手机联系人信息1838.3.1 手机联系人相关类ContactsContract1838.3.2 手机联系人数据库及其相关表1838.3.3 读取手机联系人程序设计1848.4 Android后台线程与Android组件的综合应用1878.4.1 Android UI主线程1878.4.2 使用Handler向UI线程传递消息1878.4.3 使用AsyncTask更新UI线程1898.4.4 使用ContentProvider AsyncTask实现群发短信191习题8199实验8200第9章 Android近距离通信技术2029.1 WiFi通信2029.1.1 WiFi简介2029.1.2 Android对WiFi的支持2029.1.3 WiFi应用实例2049.2 蓝牙通信Bluetooth2089.2.1 Bluetooth简介2089.2.2 Android对Bluetooth的支持2089.2.3 蓝牙聊天实例2119.3 近场通信NFC2299.3.1 NFC简介2299.3.2 Android对NFC的支持2319.3.3 NFC应用实例:读/写Tag标签231习题9238实验9239第10章 位置服务与地图应用开发24110.1 位置服务概述24110.1.1 基于位置的服务LBS24110.1.2 Android API提供的位置包24210.1.3 Google Map APIs24310.2 Android定位实现24410.2.1 GPS定位实现24510.2.2 网络连接及状态相关类24710.2.3 WiFi或GPRS定位实现24710.3 百度定位及地图应用开发25410.3.1 百度定位应用开发基础25410.3.2 注册百度开发者账号,申请位置应用的Key25610.3.3 在清单文件中注册权限、服务及应用的Key25810.3.4 百度综合定位实现25910.3.5 百度地图显示261习题10267实验10268第11章 Android网络编程27011.1 基于HTTP协议的Android网络编程27011.1.1 Android网络编程概述27011.1.2 HTTP请求与响应27111.1.3 使用HttpURLConnection访问网络资源27111.1.4 使用网络接口HttpClient调用Web服务27411.2 Android网络图像下载与通信框架27611.2.1 网络图像下载框架Glide27611.2.2 网络通信框架Volley27711.3 手机App与Web服务器通信28311.3.1 Web服务器项目28311.3.2 App的登录程序设计28511.3.3 App的主界面程序设计293习题11295实验11296习题答案298参考文献302