Android 高級編程(第4版)(移動開發(fā)經(jīng)典叢書) 版權(quán)信息
- ISBN:9787302539520
- 條形碼:9787302539520 ; 978-7-302-53952-0
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>
Android 高級編程(第4版)(移動開發(fā)經(jīng)典叢書) 本書特色
自Android首次發(fā)布10年來,經(jīng)過多次修訂與擴(kuò)展,《Android高級編程(第4版)》重磅來襲。其中不僅涵蓋開發(fā)新手需要學(xué)習(xí)的基礎(chǔ)知識,而且探索了經(jīng)驗(yàn)豐富的Android開發(fā)人員在構(gòu)建極致用戶體驗(yàn)時(shí)所必需的高級特性和*佳實(shí)踐。
《Android高級編程(第4版)》作為實(shí)踐類書籍,將會深入淺出地解釋各種復(fù)雜的概念,注重實(shí)際操作,讓讀者對Android開發(fā)的各類工具、API和*佳實(shí)踐有直觀的認(rèn)識,并將新技能轉(zhuǎn)換成實(shí)際的用戶解決方案。
開發(fā)環(huán)境更新至Android Studio 3.5/Android 10,作者Reto Meier分享Google Android開發(fā)代言人10年+的經(jīng)驗(yàn),講述Android開發(fā)的各類工具、API和更佳實(shí)踐,將新技能轉(zhuǎn)換成實(shí)際的用戶解決方案。
專業(yè)編程人員的*佳 Android讀物。
—— l2 若你喜歡通過閱讀傳統(tǒng)教科書而非YouTube視頻或漫畫來學(xué)習(xí)Android技術(shù),本書將是你的理想之選!本書的前幾版都是備受讀者喜愛的暢銷書;這個(gè)新版本將質(zhì)量推進(jìn)到更高水準(zhǔn),濃墨重彩地描述Android Studio、Kotlin和*新的API,堪稱Android知識寶庫。本書的編排井井有條,示例詳明,緊貼實(shí)用,質(zhì)量一流,是網(wǎng)上技術(shù)資料無法比擬的! 精心打磨的匠心之作。
—— barbre 我是一名Java開發(fā)人員,以前未開發(fā)過Android應(yīng)用。閱讀本書,我就像在森林里呼吸新鮮的空氣,一切都是清新的、有趣的。這本大塊頭書籍并沒有多余的文字,充滿了真知灼見;示例都是作者精挑細(xì)選的,清晰明了。本書是我的案頭**,是我的貼心伴侶。
幫助Android編程人員實(shí)現(xiàn)抱負(fù)的平臺。
—— Susie Q.
本書深入講解Android語言和架構(gòu),將幫助Android程序員進(jìn)入更高的技術(shù)境界。本書涵蓋Broadcast Receiver、Content Provider、Android設(shè)計(jì)理念、硬件傳感器等主題,講解每個(gè)主題時(shí),都列出示例代碼;你只需要稍加修改即可將這些代碼用于自己的項(xiàng)目中。如果你有志于在Android領(lǐng)域取得一番成就,強(qiáng)烈推薦你閱讀本書! Android開發(fā)**寶典!
—— C. Pick 這是Reto和Ian為我們奉獻(xiàn)的又一本經(jīng)典書籍!這本綜合性書籍與時(shí)俱進(jìn),根據(jù)*新Android版本做了全面細(xì)致的更新。這本大塊頭書籍中蘊(yùn)藏著大智慧。Android學(xué)習(xí)曲線不再陡峭,變得平緩!
我是一名有10年資歷的Android開發(fā)老兵;僅讀了開頭幾章,就仿若甘露入心,似醍醐灌頂,獲益良多。
作者提供的見解十分寶貴,能讓你少走很多彎路。強(qiáng)烈向你推薦本書!
講解清晰透徹,令我茅塞頓開!
—— Andy 本書將復(fù)雜的技術(shù)講得簡單易懂,將枯燥的技術(shù)講得活靈活現(xiàn)。手捧本書,像在吃美味可口的蛋糕,令人回味無窮;你只需要專心地品讀和練習(xí)。我的書架上擺滿Android書籍,但本書是其中*優(yōu)秀的!
重量級參考書籍,新手的指路明燈。
—— Louis 在閱讀本書前,你*好先了解一些Android和Java基礎(chǔ)知識。
本書代碼豐富,內(nèi)容深刻,很多細(xì)節(jié)都是在別處找不到的。在精辟講解每項(xiàng)技術(shù)的主要功能和概念后,都列舉一些示例應(yīng)用,助你扎實(shí)掌握要點(diǎn)。如果你是一名Android編程新手,本書將指導(dǎo)你走上專業(yè)之路,助你實(shí)現(xiàn)華麗蛻變!
Android 高級編程(第4版)(移動開發(fā)經(jīng)典叢書) 內(nèi)容簡介
主要特色 涵蓋Android*新的API,包括Job Scheduler、Android架構(gòu)組件(包括Live Data和Room)和數(shù)據(jù)綁定 提供Android Studio IDE的詳細(xì)說明以及Kotlin的介紹 詳細(xì)介紹材料設(shè)計(jì)原則、設(shè)計(jì)指南、導(dǎo)航模式和UI的*佳實(shí)踐 演示如何為所有形式的Android設(shè)備創(chuàng)建引人注目的UI 探索Firebase和Google Play服務(wù)的API庫,包括地圖、基于位置的服務(wù)以及Awareness API 掌握為將來的Android開發(fā)項(xiàng)目提供堅(jiān)實(shí)支持的技能。
Android 高級編程(第4版)(移動開發(fā)經(jīng)典叢書) 目錄
目 錄
第1章 你好,Android 1
1.1 Android應(yīng)用開發(fā) 1
1.2 小背景 2
1.2.1 不遠(yuǎn)的過去 2
1.2.2 未來的發(fā)展 2
1.3 Android生態(tài)系統(tǒng) 3
1.4 Android的預(yù)安裝應(yīng)用 3
1.5 Android SDK的特性 4
1.6 Android在哪里運(yùn)行 4
1.7 為什么要為移動設(shè)備開發(fā)應(yīng)用 5
1.8 為什么要進(jìn)行Android開發(fā) 5
1.9 Android開發(fā)框架介紹 5
1.9.1 Android SDK中都包含什么 5
1.9.2 了解Android軟件堆層 6
1.9.3 Android運(yùn)行時(shí) 7
1.9.4 Android應(yīng)用架構(gòu) 8
1.9.5 Android庫 8
第2章 入門 9
2.1 Android應(yīng)用開發(fā)入門 9
2.2 Android開發(fā) 10
2.2.1 準(zhǔn)備工作 11
2.2.2 創(chuàng)建首個(gè)Android應(yīng)用 14
2.2.3 開始使用Kotlin編寫Android應(yīng)用 23
2.2.4 使用Android Support Library包 24
2.3 進(jìn)行移動和嵌入式設(shè)備開發(fā) 25
2.3.1 硬件設(shè)計(jì)考慮因素 25
2.3.2 考慮用戶環(huán)境 28
2.3.3 進(jìn)行Android開發(fā) 28
2.4 Android開發(fā)工具 31
2.4.1 Android Studio 32
2.4.2 Android虛擬機(jī)管理器 33
2.4.3 Android模擬器 34
2.4.4 Android Profiler 34
2.4.5 Android 調(diào)試橋 35
2.4.6 APK分析器 35
2.4.7 Lint檢查工具 36
2.4.8 Monkey、Monkey Runner和Espresso UI測試 36
2.4.9 Gradle 37
第3章 應(yīng)用、Activity和Fragment 38
3.1 應(yīng)用、Activity和Fragment 38
3.2 Android應(yīng)用的組件 39
3.3 Android應(yīng)用的生命周期、優(yōu)先級和進(jìn)程狀態(tài) 39
3.4 Android的Application類 41
3.5 進(jìn)一步了解Android的Activity 41
3.5.1 創(chuàng)建Activity 41
3.5.2 使用AppCompatActivity 42
3.5.3 Activity的生命周期 42
3.5.4 響應(yīng)內(nèi)存壓力 47
3.6 Fragment 48
3.6.1 創(chuàng)建新的Fragment 49
3.6.2 Fragment的生命周期 49
3.6.3 Fragment Manager介紹 52
3.6.4 添加Fragment到Activity中 52
3.6.5 Fragment與Activity之間的通信 57
3.6.6 沒有UI的Fragment 57
3.7 構(gòu)建Earthquake Viewer應(yīng)用 58
第4章 定義Android配置清單和Gradle構(gòu)建文件,并外部化資源 64
4.1 配置清單、構(gòu)建文件和資源 64
4.2 Android配置清單 64
4.3 配置Gradle構(gòu)建文件 68
4.3.1 settings.gradle 文件 68
4.3.2 項(xiàng)目的build.gradle文件 68
4.3.3 模塊級build.gradle文件 69
4.4 外部化資源 72
4.4.1 創(chuàng)建資源 72
4.4.2 使用資源 79
4.4.3 為不同的語言和硬件創(chuàng)建資源 82
4.4.4 運(yùn)行時(shí)配置更改 84
第5章 構(gòu)建用戶界面 87
5.1 Android設(shè)計(jì)基礎(chǔ) 87
5.2 密度無關(guān)設(shè)計(jì) 88
5.3 Android UI基礎(chǔ) 88
5.4 布局介紹 89
5.4.1 定義布局 91
5.4.2 使用布局創(chuàng)建設(shè)備無關(guān)的用戶界面 91
5.4.3 優(yōu)化布局 94
5.5 Android小部件工具箱 97
5.6 使用列表和網(wǎng)格 97
5.6.1 RecyclerView和Layout Manager 98
5.6.2 關(guān)于適配器 98
5.6.3 返回到Earthquake Viewer應(yīng)用 101
5.7 關(guān)于數(shù)據(jù)綁定 102
5.7.1 使用數(shù)據(jù)綁定 102
5.7.2 數(shù)據(jù)綁定中的變量 103
5.7.3 數(shù)據(jù)綁定在Earthquake Viewer中的應(yīng)用 103
5.8 創(chuàng)建新的View 105
5.8.1 修改現(xiàn)有的View 105
5.8.2 創(chuàng)建復(fù)合控件 108
5.8.3 創(chuàng)建作為布局的簡單復(fù)合控件 109
5.8.4 創(chuàng)建自定義View 110
5.8.5 使用自定義控件 119
第6章 Intent與Broadcast Receiver 121
6.1 使用Intent和Broadcast Receiver 121
6.2 使用Intent啟動Activity 122
6.2.1 顯式啟動新的Activity 122
6.2.2 隱式Intent與后期運(yùn)行時(shí)綁定 123
6.2.3 確定Intent是否會被解析 123
6.2.4 返回Activity結(jié)果 124
6.2.5 使用平臺本地動作啟動Activity 126
6.3 創(chuàng)建Intent Filter以接收隱式Intent 127
6.3.1 定義Intent Filter 127
6.3.2 使用Intent Filter實(shí)現(xiàn)插件和擴(kuò)展性 133
6.4 介紹Linkify 135
6.4.1 原生Linkify鏈接類型 136
6.4.2 創(chuàng)建自定義的鏈接字符串 136
6.4.3 使用MatchFilter接口 136
6.4.4 使用TransformFilter接口 137
6.5 使用Intent廣播事件 137
6.5.1 使用Intent廣播事件 137
6.5.2 使用Broadcast Receiver監(jiān)聽Intent廣播 138
6.5.3 使用代碼注冊Broadcast Receiver 139
6.5.4 在應(yīng)用配置清單中注冊Broadcast Receiver 139
6.5.5 在運(yùn)行時(shí)管理配置清單中注冊的Receiver 140
6.5.6 通過廣播Intent監(jiān)聽設(shè)備狀態(tài)的變化 140
6.6 介紹Local Broadcast Manager 142
6.7 Pending Intent介紹 143
第7章 使用網(wǎng)絡(luò)資源 144
7.1 連接網(wǎng)絡(luò) 144
7.2 連接、下載和解析網(wǎng)絡(luò)資源 145
7.2.1 為何要?jiǎng)?chuàng)建原生網(wǎng)絡(luò)應(yīng)用 145
7.2.2 連接到網(wǎng)絡(luò)資源 145
7.2.3 使用View Model、Live Data和Asynchronous Task在后臺線程中執(zhí)行網(wǎng)絡(luò)操作 146
7.2.4 使用XML Pull Parser解析XML 149
7.2.5 將Earthquake Viewer連接到網(wǎng)絡(luò) 150
7.2.6 使用JSON Reader解析JSON 156
7.3 使用Download Manager 159
7.3.1 下載文件 160
7.3.2 自定義Download Manager通知 161
7.3.3 指定下載位置 162
7.3.4 取消和移除下載 163
7.3.5 查詢Download Manager 163
7.4 下載數(shù)據(jù)而不損耗電池的*佳實(shí)踐 165
7.5 網(wǎng)絡(luò)服務(wù)及云計(jì)算簡介 166
第8章 文件、存儲狀態(tài)和用戶偏好 167
8.1 存儲文件、狀態(tài)和偏好 167
8.2 通過生命周期處理程序保存并恢復(fù)Activity和Fragment的實(shí)例狀態(tài) 168
8.3 使用Headless Fragment和View Model保存實(shí)例狀態(tài) 169
8.3.1 View Model和Live Data 169
8.3.2 Headless Fragment 171
8.4 創(chuàng)建和保存Shared Preference 172
8.5 獲取Shared Preference 173
8.6 關(guān)于Shared Preference Change Listener的介紹 173
8.7 配置應(yīng)用文件和Shared Preference的自動備份 173
8.8 構(gòu)建偏好UI 174
8.8.1 使用Preference Support Library 175
8.8.2 使用XML定義Preference Screen的布局 175
8.8.3 Preference Fragment介紹 177
8.9 為Earthquake Monitor創(chuàng)建設(shè)置Activity 178
8.10 包含靜態(tài)文件作為資源 182
8.11 使用文件系統(tǒng) 183
8.11.1 文件管理工具 183
8.11.2 在特定于應(yīng)用的內(nèi)部存儲上創(chuàng)建文件 183
8.11.3 在特定于應(yīng)用的外部存儲上創(chuàng)建文件 183
8.11.4 使用范圍化目錄訪問權(quán)限訪問公共目錄 184
8.12 使用File Provider共享文件 187
8.12.1 創(chuàng)建File Provider 187
8.12.2 使用File Provider共享文件 188
8.12.3 從File Provider接收文件 188
8.13 使用Storage Access Framework訪問來自其他應(yīng)用的文件 188
8.13.1 請求臨時(shí)訪問文件 189
8.13.2 請求對文件的持久訪問 189
8.13.3 請求訪問目錄 189
8.13.4 創(chuàng)建新文件 190
8.14 使用基于URI的權(quán)限 190
第9章 創(chuàng)建和使用數(shù)據(jù)庫 192
9.1 在Android中引入結(jié)構(gòu)化數(shù)據(jù)存儲 192
9.2 使用Room持久化庫存儲數(shù)據(jù) 193
9.2.1 添加Room持久化庫 193
9.2.2 定義Room Database 194
9.2.3 使用類型轉(zhuǎn)換器持久化復(fù)雜對象 196
9.2.4 使用DAO定義Room Database交互 196
9.2.5 執(zhí)行Room Database交互 199
9.2.6 使用Live Data監(jiān)控查詢結(jié)果的變化 200
9.3 使用Room將地震數(shù)據(jù)持久化到數(shù)據(jù)庫中 201
9.4 使用SQLite數(shù)據(jù)庫 203
9.4.1 輸入驗(yàn)證和SQL注入 204
9.4.2 Cursor與Content Values 204
9.4.3 定義數(shù)據(jù)庫合約類 205
9.4.4 SQLiteOpenHelper介紹 205
9.4.5 使用SQLiteOpenHelper打開數(shù)據(jù)庫 206
9.4.6 在沒有SQLiteOpenHelper的情況下打開和創(chuàng)建數(shù)據(jù)庫 207
9.4.7 添加、更新和刪除行 207
9.4.8 從Cursor中提取值 209
9.5 Firebase Realtime Database介紹 210
9.5.1 將Firebase Realtime Database添加到應(yīng)用中 211
9.5.2 定義Firebase Realtime Database并定義訪問規(guī)則 213
9.5.3 添加、修改、刪除和查詢Firebase Realtime Database中的數(shù)據(jù) 214
第10章 Content Provider與搜索 216
10.1 Content Provider介紹 216
10.2 使用Content Provider的原因 217
10.3 創(chuàng)建Content Provider 217
10.3.1 創(chuàng)建Content Provider的數(shù)據(jù)庫 218
10.3.2 注冊Content Provider 218
10.3.3 公開Content Provider的URI地址 219
10.3.4 實(shí)現(xiàn)Content Provider查詢 219
10.3.5 Content Provider事務(wù) 221
10.3.6 使用Content Provider共享文件 222
10.3.7 向Content Provider添加權(quán)限要求 223
10.4 使用Content Resolver訪問Content Provider 224
10.4.1 查詢Content Provider 225
10.4.2 取消查詢 226
10.4.3 使用Cursor Loader異步查詢內(nèi)容 227
10.4.4 添加、刪除和更新內(nèi)容 229
10.4.5 訪問存儲在Content Provider中的文件 230
10.4.6 訪問權(quán)限受限的Content Provider 231
10.5 使用Android原生Content Provider 232
10.5.1 訪問Call Log Content Provider 232
10.5.2 使用Media Store Content Provider 233
10.5.3 使用聯(lián)系人Content Provider 234
10.5.4 使用日歷Content Provider 238
10.6 在應(yīng)用中添加搜索 241
10.6.1 定義搜索元數(shù)據(jù) 241
10.6.2 創(chuàng)建搜索結(jié)果Activity 241
10.6.3 搜索Content Provider 242
10.6.4 使用Search View小部件 245
10.6.5 使用Content Provider提供搜索建議 246
10.6.6 搜索地震監(jiān)測數(shù)據(jù)庫 249
第11章 工作在后臺 257
11.1 為什么要工作在后臺 257
11.2 使用后臺線程 258
11.2.1 使用AsyncTask異步運(yùn)行任務(wù) 258
11.2.2 使用Handler Thread手動創(chuàng)建線程 261
11.3 調(diào)度后臺作業(yè) 262
11.3.1 為Job Scheduler創(chuàng)建Job Service 263
11.3.2 使用Job Scheduler調(diào)度作業(yè) 265
11.3.3 使用Firebase Job Dispatcher計(jì)劃作業(yè) 266
11.3.4 使用Work Manager計(jì)劃作業(yè) 268
11.3.5 Job Service在Earthquake示例中的應(yīng)用 270
11.4 使用Notification通知用戶 273
11.4.1 Notification Manager簡介 273
11.4.2 使用通知渠道 274
11.4.3 創(chuàng)建通知 274
11.4.4 設(shè)置通知的優(yōu)先級 277
11.4.5 添加通知?jiǎng)幼? 280
11.4.6 添加直接回復(fù)動作 280
11.4.7 分組多個(gè)通知 281
11.4.8 通知在Earthquake示例中的應(yīng)用 283
11.5 使用Firebase Cloud Messaging 285
11.5.1 使用Firebase Notification遠(yuǎn)程觸發(fā)通知 285
11.5.2 使用Firebase Cloud Messaging接收數(shù)據(jù) 288
11.6 使用鬧鐘 288
11.6.1 創(chuàng)建、設(shè)置和取消鬧鐘 289
11.6.2 設(shè)置鬧鐘 289
11.7 服務(wù)介紹 290
11.7.1 使用綁定服務(wù) 290
11.7.2 創(chuàng)建啟動服務(wù) 291
11.7.3 創(chuàng)建服務(wù) 292
11.7.4 啟動和停止服務(wù) 292
11.7.5 控制服務(wù)重啟行為 293
11.7.6 自終止服務(wù) 294
11.7.7 創(chuàng)建前臺服務(wù) 294
第12章 貫徹Android設(shè)計(jì)理念 295
12.1 Android設(shè)計(jì)理念介紹 295
12.2 為每個(gè)屏幕進(jìn)行設(shè)計(jì) 296
12.2.1 分辨率獨(dú)立性 296
12.2.2 支持和優(yōu)化不同的屏幕尺寸 297
12.2.3 創(chuàng)建可縮放的圖像資源 299
12.3 Material Design介紹 303
12.3.1 從紙和墨水的角度思考 303
12.3.2 使用顏色和基準(zhǔn)線(Keyline)作為指導(dǎo) 304
12.3.3 運(yùn)動帶來的連貫性 306
12.4 Material Design UI元素 308
12.4.1 應(yīng)用欄 308
12.4.2 Material Design在Earthquake示例中的應(yīng)用 310
12.4.3 使用Card顯示內(nèi)容 311
12.4.4 懸浮按鈕 313
第13章 實(shí)現(xiàn)現(xiàn)代Android用戶體驗(yàn) 315
13.1 現(xiàn)代Android UI 315
13.2 使用AppCompat創(chuàng)建外觀一致的現(xiàn)代用戶界面 316
13.2.1 使用AppCompat創(chuàng)建并應(yīng)用主題 316
13.2.2 為特定視圖創(chuàng)建Theme Overlay 317
13.3 向應(yīng)用欄添加菜單和動作 317
13.3.1 定義菜單資源 317
13.3.2 向Activity添加菜單 318
13.3.3 向Fragment添加菜單 319
13.3.4 動態(tài)更新菜單項(xiàng) 319
13.3.5 處理菜單選擇 319
13.3.6 添加Action View和Action Provider 320
13.4 不僅限于默認(rèn)應(yīng)用欄 321
13.4.1 用工具欄替換應(yīng)用欄 321
13.4.2 工具欄的高級滾動技術(shù) 322
13.4.3 如何不用應(yīng)用欄添加菜單 324
13.5 改進(jìn)Earthquake示例的應(yīng)用欄 324
13.6 應(yīng)用的導(dǎo)航模式 326
13.6.1 使用選項(xiàng)卡導(dǎo)航 326
13.6.2 實(shí)現(xiàn)底部導(dǎo)航欄 328
13.6.3 使用導(dǎo)航抽屜 330
13.6.4 組合導(dǎo)航模式 334
13.7 向Earthquake示例添加選項(xiàng)卡 334
13.8 選擇正確的提示等級 337
13.8.1 初始化對話框 337
13.8.2 生成一條Toast消息 338
13.8.3 使用Snackbar的內(nèi)聯(lián)中斷 339
第14章 用戶界面的高級定制 341
14.1 拓展用戶體驗(yàn) 341
14.2 支持無障礙訪問性 342
14.2.1 支持無觸摸屏的導(dǎo)航 342
14.2.2 為每個(gè)視圖提供文本描述 342
14.3 Android文本語音轉(zhuǎn)換介紹 342
14.4 使用語音識別 344
14.4.1 使用語音識別進(jìn)行語音輸入 345
14.4.2 使用語音識別進(jìn)行搜索 345
14.5 控制設(shè)備振動 346
14.6 全屏模式 346
14.7 使用屬性動畫 347
14.7.1 創(chuàng)建屬性動畫 348
14.7.2 創(chuàng)建屬性動畫集 349
14.7.3 使用動畫監(jiān)聽器 349
14.8 增強(qiáng)你的視圖 350
14.9 高級Canvas繪圖 350
14.9.1 能繪制什么 350
14.9.2 充分利用Paint 351
14.9.3 通過抗鋸齒提高Paint繪圖質(zhì)量 354
14.9.4 Canvas繪圖*佳實(shí)踐 354
14.9.5 高級羅盤面板示例 355
14.9.6 創(chuàng)建交互式控件 361
14.9.7 使用設(shè)備鍵、按鈕和十字鍵 364
14.10 復(fù)合Drawable資源 365
14.10.1 可變形的Drawable資源 365
14.10.2 Layer Drawable 366
14.10.3 State List Drawable 366
14.10.4 Level List Drawable 367
14.11 復(fù)制、粘貼和剪貼板 367
14.11.1 將數(shù)據(jù)復(fù)制到剪貼板 368
14.11.2 粘貼剪貼板數(shù)據(jù) 368
第15章 位置、情境感知和地圖 369
15.1 向應(yīng)用添加位置、地圖和情境感知 369
15.2 Google Play服務(wù)介紹 370
15.2.1 向應(yīng)用添加Google Play服務(wù) 370
15.2.2 確定Google Play服務(wù)的可用性 372
15.3 使用Google位置信息服務(wù)查找設(shè)備位置 372
15.3.1 使用模擬器測試基于位置的功能 373
15.3.2 查找*后的位置 374
15.3.3 Where Am I示例 375
15.3.4 請求位置更改更新 378
15.3.5 通過Pending Intent接收位置更新 380
15.3.6 定義更新的過期條件 381
15.3.7 后臺位置更新限制 381
15.3.8 更改設(shè)備位置設(shè)置 382
15.3.9 在Where Am I示例中更新位置 384
15.3.10 使用位置時(shí)的*佳實(shí)踐 386
15.4 設(shè)置和管理地理圍欄 387
15.5 使用傳統(tǒng)平臺的LBS 389
15.5.1 選擇Location Provider 390
15.5.2 查找*后位置 391
15.5.3 請求位置更改更新 392
15.5.4 使用傳統(tǒng)LBS的*佳實(shí)踐 393
15.6 使用Geocoder 396
15.6.1 逆向地理編碼 396
15.6.2 正向地理編碼 397
15.6.3 地理編碼在Where Am I項(xiàng)目中的應(yīng)用 398
15.7 創(chuàng)建基于地圖的Activity 399
15.7.1 獲取Google Maps API密鑰 399
15.7.2 創(chuàng)建基于地圖的Activity 400
15.7.3 配置Google地圖 401
15.7.4 通過CameraUpdate更改相機(jī)位置 402
15.7.5 地圖在Where Am I項(xiàng)目中的應(yīng)用 404
15.7.6 使用My Location層顯示當(dāng)前位置 407
15.7.7 顯示交互式地圖標(biāo)記 407
15.7.8 向Google地圖添加形狀 409
15.7.9 向Google地圖添加圖像疊加層 411
15.7.10 向Where Am I項(xiàng)目添加標(biāo)記和形狀 412
15.8 地圖在Earthquake示例中的應(yīng)用 414
15.9 添加情境感知 417
15.9.1 連接到Google Play服務(wù)API客戶端并獲取API密鑰 417
15.9.2 使用感知快照 418
15.9.3 設(shè)置和監(jiān)控感知圍欄 419
15.9.4 Awareness*佳實(shí)踐 422
第16章 硬件傳感器 423
16.1 Android傳感器介紹 423
16.1.1 使用Sensor Manager 424
16.1.2 理解Android傳感器 424
16.1.3 發(fā)現(xiàn)和識別傳感器 426
16.1.4 確定傳感器的功能 427
16.1.5 Wakeup和非Wakeup傳感器 428
16.1.6 監(jiān)測傳感器結(jié)果 428
16.1.7 讀取傳感器值 431
16.2 使用Android虛擬設(shè)備和模擬器測試傳感器 433
16.3 使用傳感器的*佳實(shí)踐 434
16.4 監(jiān)控設(shè)備的移動和朝向 434
16.4.1 確定設(shè)備的自然朝向 435
16.4.2 加速度計(jì)介紹 435
16.4.3 檢測加速度變化 436
16.4.4 創(chuàng)建重力儀 437
16.4.5 確定設(shè)備的朝向 439
16.4.6 創(chuàng)建指南針和人工地平線 443
16.5 使用環(huán)境傳感器 445
16.5.1 使用氣壓計(jì)傳感器 445
16.5.2 創(chuàng)建氣象站 446
16.6 使用身體傳感器 449
16.7 用戶活動識別 451
第17章 音頻、視頻和使用攝像頭 453
17.1 播放音頻和視頻,以及使用攝像頭 453
17.2 播放音頻和視頻 454
17.2.1 媒體播放器簡介 454
17.2.2 使用Media Play播放視頻 456
17.2.3 使用ExoPlayer播放視頻 458
17.2.4 請求和管理音頻焦點(diǎn) 459
17.2.5 輸出改變時(shí)暫停播放 461
17.2.6 響應(yīng)音量按鍵 461
17.2.7 使用Media Session 462
17.3 使用Media Router和Cast Application框架 464
17.4 后臺音頻播放 467
17.4.1 構(gòu)建音頻播放服務(wù) 468
17.4.2 將Activity連接到Media Browser服務(wù) 469
17.4.3 Media Browser服務(wù)的生命周期 470
17.5 在前臺服務(wù)中播放音頻 471
17.6 使用Media Recorder錄制音頻 473
17.7 使用攝像頭拍照 475
17.7.1 使用Intent拍照 475
17.7.2 直接控制攝像頭 476
17.7.3 讀取和寫入JPEG EXIF圖像詳情 480
17.8 錄制視頻 481
17.8.1 使用Intent錄制視頻 481
17.8.2 使用Media Recorder錄制視頻 482
17.9 將媒體添加到Media Store 483
17.9.1 使用Media Scanner插入新的媒體 484
17.9.2 手動插入媒體 484
第18章 使用藍(lán)牙、NFC和Wi-Fi點(diǎn)對點(diǎn)進(jìn)行通信 486
18.1 網(wǎng)絡(luò)和點(diǎn)對點(diǎn)通信 486
18.2 使用藍(lán)牙API傳輸數(shù)據(jù) 486
18.2.1 管理本地藍(lán)牙設(shè)備適配器 487
18.2.2 可被發(fā)現(xiàn)和遠(yuǎn)程設(shè)備發(fā)現(xiàn) 488
18.2.3 藍(lán)牙通信 491
18.2.4 藍(lán)牙配置文件 494
18.2.5 低功耗藍(lán)牙 495
18.3 使用Wi-Fi點(diǎn)對點(diǎn)協(xié)議傳輸數(shù)據(jù) 497
18.3.1 初始化Wi-Fi點(diǎn)對點(diǎn)框架 497
18.3.2 發(fā)現(xiàn)節(jié)點(diǎn) 498
18.3.3 連接節(jié)點(diǎn)設(shè)備 499
18.3.4 在節(jié)點(diǎn)間傳輸數(shù)據(jù) 500
18.4 使用近場通信 501
18.4.1 讀取NFC標(biāo)簽 501
18.4.2 使用前臺分派系統(tǒng) 502
18.5 使用Android Beam 504
18.5.1 創(chuàng)建Android Beam消息 504
18.5.2 分配Android Beam負(fù)載數(shù)據(jù) 505
18.5.3 接收Android Beam消息 506
第19章 使用主屏 507
19.1 自定義主屏 507
19.2 主屏小部件介紹 507
19.2.1 定義小部件的布局 509
19.2.2 定義小部件的尺寸和其他元數(shù)據(jù) 510
19.2.3 實(shí)現(xiàn)小部件 511
19.2.4 使用App Widget Manager和Remote View更新Widget UI 512
19.2.5 強(qiáng)制刷新小部件的數(shù)據(jù)和UI 514
19.2.6 創(chuàng)建和使用小部件Configuration Activity 516
19.3 創(chuàng)建地震小部件 517
19.4 Collection View小部件介紹 521
19.4.1 創(chuàng)建Collection View小部件的布局 522
19.4.2 使用Remote Views Factory更新Collection View 523
19.4.3 使用Remote Views Service更新Collection View 524
19.4.4 使用Remote Views Service填充Collection View小部件 525
19.4.5 為Collection View小部件中的條目添加交互性 526
19.4.6 刷新Collection View小部件 526
19.4.7 創(chuàng)建地震Collection View小部件 526
19.5 創(chuàng)建Live Wallpaper 531
19.5.1 創(chuàng)建Live Wallpaper定義資源 532
19.5.2 創(chuàng)建Wallpaper Service Engine 532
19.5.3 創(chuàng)建Wallpaper Service 533
19.6 創(chuàng)建App快捷方式 534
19.6.1 靜態(tài)快捷方式 535
19.6.2 動態(tài)快捷方式 535
19.6.3 追蹤App快捷方式的使用 537
第20章 高級Android開發(fā) 538
20.1 高級Android 538
20.2 偏執(zhí)的Android 539
20.2.1 Linux內(nèi)核安全性 539
20.2.2 再述權(quán)限 539
20.2.3 在Android Keystore中存儲密鑰 541
20.2.4 使用指紋傳感器 541
20.3 處理不同的軟硬件可用性 542
20.3.1 指定所需的硬件 542
20.3.2 確認(rèn)硬件的可用性 543
20.3.3 構(gòu)建向后兼容的應(yīng)用 543
20.4 使用嚴(yán)格模式優(yōu)化UI性能 544
20.5 電話和短信 545
20.5.1 電話 546
20.5.2 收發(fā)短信 550
第21章 應(yīng)用的發(fā)布、分發(fā)和監(jiān)控 564
21.1 準(zhǔn)備發(fā)布應(yīng)用 564
21.1.1 準(zhǔn)備發(fā)布材料 565
21.1.2 準(zhǔn)備代碼以進(jìn)行發(fā)布構(gòu)建 565
21.2 在應(yīng)用清單文件中更新應(yīng)用元數(shù)據(jù) 566
21.2.1 檢查應(yīng)用安裝限制 566
21.2.2 應(yīng)用的版本管理 567
21.3 給應(yīng)用的生產(chǎn)構(gòu)建版本簽名 567
21.3.1 使用Android Studio創(chuàng)建Keystore和簽名密鑰 568
21.3.2 獲取基于私有發(fā)布密鑰的API密鑰 569
21.3.3 構(gòu)建生產(chǎn)發(fā)布版本并簽名 569
21.4 在Google Play商店中發(fā)布應(yīng)用 570
21.4.1 Google Play商店簡介 571
21.4.2 Google Play 商店初體驗(yàn) 571
21.4.3 在Google Play商店中創(chuàng)建應(yīng)用 572
21.4.4 發(fā)布應(yīng)用 577
21.4.5 監(jiān)控生產(chǎn)環(huán)境中的應(yīng)用 579
21.5 應(yīng)用變現(xiàn)介紹 582
21.6 App營銷、促銷和分發(fā)策略 583
21.6.1 應(yīng)用上線策略 583
21.6.2 國際化 584
21.7 使用Firebase監(jiān)控應(yīng)用 584
21.7.1 把Firebase添加到應(yīng)用中 585
21.7.2 使用Firebase Analytics 585
21.7.3 Firebase Performance Monitoring 587
展開全部
Android 高級編程(第4版)(移動開發(fā)經(jīng)典叢書) 作者簡介
Reto Meier自2007年首次發(fā)布Android以來,就一直致力于幫助Android開發(fā)人員為用戶創(chuàng)建最佳應(yīng)用。Reto在澳大利亞西部的珀斯長大,之后在倫敦度過了“接下來的18個(gè)月”,總共6年。2011年他與妻子在舊金山灣區(qū)定居。
Reto在Google擔(dān)任開發(fā)人員代言人已有10年的時(shí)間,他為開發(fā)人員社區(qū)提供文章、在線培訓(xùn)、會議演講和YouTube視頻。
在智能手機(jī)出現(xiàn)之前,Reto已在各個(gè)行業(yè)(包括海上石油天然氣和金融業(yè))擔(dān)任軟件開發(fā)人員超過10年。
Ian Lake 在2013年于舊金山灣區(qū)定居前,曾在美國的9個(gè)州居住過。Ian是Google Android Toolkit團(tuán)隊(duì)的成員,專注于提供現(xiàn)代Android開發(fā)所需的庫和API。在此之前,他曾是一名Android開發(fā)人員倡導(dǎo)者、Android應(yīng)用開發(fā)人員和企業(yè)應(yīng)用開發(fā)人員,那時(shí),Android還未盛行。