Android套用開發實戰(原書第2版)

Android套用開發實戰(原書第2版)

《Android套用開發實戰(原書第2版)》是2018年機械工業出版社出版的圖書,作者是,主要講述了本書雖厚,但有別於市面上一些滿頁貼代碼的所謂“典藏”“大全”之類的Android書籍。

基本介紹

  • 書名:Android套用開發實戰(原書第2版) 
  • 作者:[美]伊恩·f.達爾文
  • 出版社:機械工業出版社
  • ISBN:9787111589969
內容簡介,圖書目錄,作者簡介,

內容簡介

本書內容來自於Android社區數十位一線優秀開發者,涵蓋Android應用程式開發的方方面面,從GUI、圖形圖像、多媒體、數據持久化到各種通信方式、常用感測器等等內容無所不包,甚至還囊括了應用程式測試、國際化和面向非Java程式設計師的編程方式等內容,以及自然應用程式開發環境的搭建和程式的發布。無論你打算使用什麼IDE,準備開發什麼樣的項目,都能從本書中找到適合自己的內容。每一節都是先提出問題,即本節內容所面向的程式套用背景,然後提出總體解決思路,最後再按步實施、解決問題,便於你參考解決實際開發問題。
本書對Android程式設計師在日常開發中容易混淆、迷茫、犯錯、走彎路的種種問題做了深入解析,並給出了230多個經過測試的實用技巧,既能成為Android開發新手的入門指南,又能作為有經驗開發者的案頭工具書。

圖書目錄

目錄
前言 1
第1章 入門 9
1.1 理解Android應用程式體系結構 9
1.2 理解Android Activity的生命周期 11
1.3 了解Android發行版本 13
1.4 學習Java語言 15
1.5 從命令行創建“Hello World”應用程式 16
1.6 用Apache Maven創建“Hello World”應用程式 20
1.7 為Android開發選擇集成開發環境(IDE) 22
1.8 安裝Android Studio 26
1.9 安裝Platform Editions並保持SDK更新 28
1.10 用Android Studio創建“Hello World”應用程式 31
1.11 將Eclipse ADT項目轉換成Android Studio項目 37
1.12 從Eclipse向Android Studio轉換時保留歷史記錄 40
1.13 用Eclipse和Android Studio共同構建Android應用程式 42
1.14 安裝帶有AndMore的Eclipse(代替ADT) 44
1.15 用Eclipse創建“Hello World”應用程式 51
1.16 在Eclipse中安裝Eclipse Marketplace Client 56
1.17 將項目從Eclipse ADT升級到Eclipse AndMore 59
1.18 用命令行ADB控制模擬器/設備 62
1.19 共享其他Eclipse項目中的Java類 64
1.20 引用庫實現外圍功能 66
1.21 通過兼容庫在老設備上使用新功能 70
1.22 套用SDK示例幫助避免讓人頭疼的問題 72
1.23 從模擬器/Android設備上截圖/截取視頻 73
1.24 程式:一個簡單的定時器示例 78
1.25 程式:Tipster, Android作業系統上的小費計算器 82
第2章 設計成功的應用程式 98
2.1 異常處理 101
2.2 運行時請求Android訪問許可權 104
2.3 以“單例”模式訪問Android的Application對象 106
2.4 在用戶旋轉設備時保持數據 109
2.5 監控Android設備上的電池電量 111
2.6 在Android中創建閃屏 112
2.7 設計面向會議/野營/黑客馬拉松/公共機構的應用程式 116
2.8 在Android應用程式中使用Google的分析工具 118
2.9 進行首次運行的偏好設定 120
2.10 格式化數字 122
2.11 用正確的複數形式進行格式化 126
2.12 格式化時間和日期進行顯示 128
2.13 用Java 8的java.time API簡化日期/時間計算 131
2.14 用鍵盤監聽器控制輸入 133
2.15 備份Android應用程式數據 136
2.16 用提示(Hint)代替工具小貼士 142
第3章 應用程式測試 144
3.1 針對測試設定Android虛擬設備 145
3.2 在大量設備上進行雲測試 151
3.3 用Eclipse和JUnit進行測試 152
3.4 用Android Studio和JUnit進行測試 154
3.5 用Robolectric和JUnit 4進行測試 159
3.6 用ATSL、Espresso和JUnit 4進行測試 161
3.7 排查應用程式崩潰原因 165
3.8 用Log.d( )和LogCat進行調試 168
3.9 用Crash Reporting自動獲取崩潰報告 169
3.10 針對現場錯誤或情況使用本地運行時應用程式日誌 172
3.11 為測試重現Activity生命周期場景 176
3.12 利用嚴苛模式讓應用程式保持簡潔 180
3.13 用Android Lint進行靜態代碼測試 181
3.14 用Monkey程式進行動態測試 183
3.15 在AVD之間傳送文本訊息和通話 185
第4章 進程間/進程內通信 187
4.1 用Intent打開網頁、電話號碼本或其他應用程式 187
4.2 從視圖中用電子郵件傳送文本 189
4.3 傳送帶有附屬檔案的電子郵件 192
4.4 用Intent.putExtra( )傳送字元串值 194
4.5 從子Activity向主Activity發回數據 195
4.6 當其他應用程式在螢幕上顯示的同時讓後台服務保持運行 198
4.7 傳送/接收廣播訊息 200
4.8 在設備重啟後啟動服務 201
4.9 使用執行緒創建高可回響的應用程式 202
4.10 使用AsyncTask進行後台處理 203
4.11 利用Activity的執行緒佇列和Handler線上程間傳送訊息 210
4.12 結合Android和HTML/JavaScript創建一個萬年曆應用程式 211
第5章 圖形 218
5.1 使用自定義字型 218
5.2 用OpenGL ES繪製旋轉正方體 221
5.3 為OpenGL旋轉正方體添加控制 224
5.4 手繪光滑曲線 227
5.5 用Intent拍照 232
5.6 用android.media.Camera照相 234
5.7 用Google的條形碼掃描器ZXing掃描條形碼和二維碼 238
5.8 用AndroidPlot顯示圖表和圖形 240
5.9 使用Inkscape藉助OpenClipArt.org創建Android啟動器圖示 244
5.10 使用Paint.NET藉助OpenClipArt.org創建Android啟動器圖示 248
5.11 使用九宮格檔案 254
5.12 使用Android RGraph創建HTML5圖表 258
5.13 添加一個簡單的光柵動畫 262
5.14 用拇指和食指進行縮放 265
第6章 圖形用戶界面 268
6.1 理解和遵循用戶界面準則 269
6.2 用原質化設計賦予應用程式良好外觀 270
6.3 選擇布局管理器(ViewGroup)排列組件 274
6.4 通過解耦視圖與模型處理配置變化 275
6.5 處理動作欄 277
6.6 向動作欄添加共享動作 281
6.7 用Fragment API構建現代UI 285
6.8 創建按鈕及其單擊事件監聽器 289
6.9 用圖像按鈕增強UI設計 290
6.10 使用FloatingActionButton 291
6.11 以多種不同方式編寫事件監聽器 294
6.12 使用複選框和單選按鈕 298
6.13 使用卡片視窗部件 302
6.14 通過Spinner類提供下拉選擇器 304
6.15 處理長按/長點事件 307
6.16 用TextView和EditText顯示文本域 308
6.17 用屬性和TextWatcher接口限制EditText的值 309
6.18 實現AutoCompleteTextView 311
6.19 使用SQLite資料庫查詢填充AutoCompleteTextView 313
6.20 將文本域轉換為密碼域 315
6.21 將軟鍵盤上的回車鍵改為“下一個” 315
6.22 在Activity中處理鍵盤按鍵事件 318
6.23 讓他們看星星:使用RatingBar 319
6.24 讓視圖晃動 323
6.25 提供觸覺反饋 325
6.26 在TabView中的各個Activity之間切換 328
6.27 創建在兩個Activity之間顯示的載入界面 329
6.28 為布局添加帶有圓角的框線 331
6.29 在Android中檢測手勢 333
6.30 創建一個簡單的應用程式視窗小部件 340
第7章 GUI中的警告:選單、對話框、Toast、
Snackbar和通知 344
7.1 用Toast和Snackbar向用戶發出警告 344
7.2 自定義Toast的外觀 346
7.3 創建和顯示選單 348
7.4 處理選單項的選擇 349
7.5 創建子選單 350
7.6 創建彈出式/警告對話框 352
7.7 創建時間選擇器視窗部件 353
7.8 針對選擇創建iPhone風格的滾輪選擇器 356
7.9 創建選項卡式對話框 358
7.10 創建進度對話框 361
7.11 創建帶有按鈕、圖像和文本的自定義對話框 362
7.12 創建可重用的“關於對話框”類 364
7.13 在狀態欄中創建通知 368
第8章 其他GUI組件:列表和視圖 373
8.1 用RecyclerView構建基於列表的應用程式 373
8.2 用ListView構建基於列表的應用程式 376
8.3 為ListView創建“無數據”視圖 381
8.4 創建帶有圖像和文本的高級ListView 382
8.5 在ListView中使用分組標題 386
8.6 讓ListView始終處於用戶的關注點上 390
8.7 編寫自定義列表適配器 391
8.8 利用SearchView在ListView中查找數據 394
8.9 處理方向變化:從ListView數據值到全局模式中的圖表繪製 396
第9章 多媒體 402
9.1 播放YouTube視頻 402
9.2 利用MediaRecorder錄製視頻 403
9.3 使用Android的人臉檢測功能 406
9.4 播放音頻檔案 409
9.5 在沒有互動的情況下播放音頻 411
9.6 使用語音文本轉換 412
9.7 利用文本語音轉換讓設備發聲 414
第10章 數據持久化 416
10.1 讀寫記憶體儲器和外存儲器中的檔案 416
10.2 獲取檔案和資料夾信息 421
10.3 讀取應用程式自帶而非檔案系統中的檔案 426
10.4 獲取SD卡的存儲空間信息 427
10.5 提供偏好設定Activity 428
10.6 檢查共享偏好設定的一致性 433
10.7 在Android應用程式中使用SQLite資料庫 435
10.8 在SQLite資料庫上執行高級文本檢索 438
10.9 處理SQLite中的日期 443
10.10 將非SQL數據對外暴露為SQL游標 445
10.11 用CursorLoader顯示數據 448
10.12 利用JSONObject解析JSON 451
10.13 利用DOM API解析XML文檔 453
10.14 利用ContentProvider存儲和獲取數據 455
10.15 編寫一個ContentProvider 456
10.16 通過聯繫人內容提供器添加聯繫人 460
10.17 利用ContentProvider讀取聯繫人數據 462
10.18 實現拖放 464
10.19 通過FileProvider已分享檔案 468
10.20 利用SyncAdapter把SQLite中的數據備份到雲端 473
10.21 利用Google Firebase將數據存放到雲端 482
第11章 電話應用程式 487
11.1 來電處理 487
11.2 處理去電呼叫 490
11.3 撥打電話 494
11.4 傳送單段式或多段式簡訊 495
11.5 接收簡訊 498
11.6 利用模擬器控制台向模擬器傳送簡訊 499
11.7 利用Android的TelephonyManager獲取設備信息 500
第12章 網路應用程式 511
12.1 藉助URLConnection利用RESTful Web服務 512
12.2 藉助Volley利用RESTful Web服務 515
12.3 利用Google Cloud Messaging的“推送訊息”向應用程式發出
通知訊息 517
12.4 利用正則表達式從非結構化文本中提取信息 525
12.5 利用ROME解析RSS/Atom訂閱內容 526
12.6 利用MD5加密純文本 531
12.7 將文本轉換為超連結 531
12.8 利用WebView訪問網頁 532
12.9 自定義WebView 533
12.10 編寫進程間通信服務 534
第13章 遊戲和動畫 539
13.1 利用flixel-gdx製作Android遊戲 540
13.2 利用AndEngine製作Android遊戲 544
13.3 處理與時間相關的鍵盤輸入 549
第14章 社交網路 551
14.1 利用OAUTH2對用戶進行身份認證 551
14.2 利用HTTP集成社交網路 555
14.3 利用HTML或JSON載入用戶的Twitter時間線 557
第15章 定位和地圖應用程式 559
15.1 獲取位置信息 559
15.2 在應用程式內獲取GPS信息 561
15.3 在設備上模擬GPS坐標 563
15.4 使用地理編碼和逆向地理編碼 565
15.5 為使用Google Maps API V2進行開發做好準備 566
15.6 使用Google Maps API V2 571
15.7 利用OpenStreetMap顯示地圖數據 576
15.8 利用OpenStreetMap地圖創建覆蓋圖層 578
15.9 在OpenStreetMap地圖上使用比例尺 581
15.10 在OpenStreetMap覆蓋圖層上處理觸摸事件 582
15.11 利用OpenStreetMap獲取定位更新 584
第16章 加速計 588
16.1 檢查感測器是否存在 588
16.2 利用加速計檢測晃動 589
16.3 檢測設備正面朝上還是朝下 593
16.4 讀取溫度感測器 594
第17章 藍牙 595
17.1 啟用藍牙並讓設備可被發現 595
17.2 連線啟用了藍牙的設備 597
17.3 接受來自藍牙設備的連線 599
17.4 實現發現藍牙設備的功能 600
第18章 系統和設備控制 602
18.1 獲取手機的網路/連線信息 602
18.2 從應用程式清單檔案中獲取信息 603
18.3 將來電通知改為靜音、振動或普通鈴聲 604
18.4 複製文本並從剪下板中獲取文本 606
18.5 使用基於LED的通知 606
18.6 讓設備振動 607
18.7 確定指定的應用程式是否正在運行 608
第19章 世上並非只有Java:其他程式語言和框架 609
19.1 了解跨平台解決方案 610
19.2 在應用程式中執行Shell命令 611
19.3 利用JNI在NDK上運行原生C/C++代碼 613
19.4 Android腳本編程層SL4A入門 618
19.5 在SL4A中創建警告訊息 620
19.6 利用SL4A獲取Google文檔並在ListView中顯示 624
19.7 在二維碼中共享SL4A腳本 626
19.8 通過JavaScript在WebView中使用原生的手機功能 628
19.9 利用Xamarin構建跨平台應用程式 630
19.10 利用PhoneGap/Cordova構建跨平台應用程式 634
第20章 世上並非只有英語:字元串和國際化 639
20.1 國際化應用程式中的文本 640
20.2 查找和翻譯字元串 643
20.3 處理strings.xml中的細微差別 644
第21章 打包、部署及發布/出售應用程式 650
21.1 創建簽名證書並用其對應用程式簽名 650
21.2 通過Google Play套用商店發布應用程式 653
21.3 通過其他套用商店發布應用程式 655
21.4 利用AdMob讓你的應用程式賺錢 656
21.5 利用ProGuard進行混淆和最佳化 662
21.6 讓應用程式駐留在你自己的伺服器上 664
21.7 創建“自行更新”的應用程式 666
21.8 為Google Play套用商店中其他已發布的應用程式提供連結 668

作者簡介

Ian F. Darwin在計算機行業已經工作了30多年。他編寫了用於Linux和BSD的免費檔案命令,是《Checking C Programs with Lint》《Java Cookbook》等書的作者並撰寫了100多篇有關C、UNIX、Java及Android的文章和教程。除了編程和顧問工作之外,Ian還為世界性的技術培訓公司——Learning Tree International服務,講授UNIX、Java和Android技術。

相關詞條

熱門詞條

聯絡我們