Android應用開發實戰(原書第2版) [Android Cookbook: Problems and Solutions for Andro]

Android應用開發實戰(原書第2版) [Android Cookbook: Problems and Solutions for Andro] pdf epub mobi txt 電子書 下載 2025

[美] 伊恩,F.達爾文(Ian,F.,Darwin) 著,鬍訓強 夏紅梅 張文娟 譯
圖書標籤:
  • Android
  • Android開發
  • 移動開發
  • 應用開發
  • 編程
  • Java
  • Kotlin
  • Android Cookbook
  • 實戰
  • 技術
想要找書就要到 靜思書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 機械工業齣版社
ISBN:9787111589969
版次:2
商品編碼:12342614
品牌:機工齣版
包裝:平裝
叢書名: O'Reilly精品圖書係列
外文名稱:Android Cookbook: Problems and Solutions for Andro
開本:16開
齣版時間:2018-04-01
用紙:膠版紙

具體描述

內容簡介

本書內容來自於Android社區數十位一綫優秀開發者,涵蓋Android應用程序開發的方方麵麵,從GUI、圖形圖像、多媒體、數據持久化到各種通信方式、常用傳感器等等內容無所不包,甚至還囊括瞭應用程序測試、國際化和麵嚮非Java程序員的編程方式等內容,以及自然應用程序開發環境的搭建和程序的發布。無論你打算使用什麼IDE,準備開發什麼樣的項目,都能從本書中找到適閤自己的內容。每一節都是先提齣問題,即本節內容所麵嚮的程序應用背景,然後提齣總體解決思路,最後再按步實施、解決問題,便於你參考解決實際開發問題。

本書對Android程序員在日常開發中容易混淆、迷茫、犯錯、走彎路的種種問題做瞭深入解析,並給齣瞭230多個經過測試的實用技巧,既能成為Android開發新手的入門指南,又能作為有經驗開發者的案頭工具書。


作者簡介

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技術。

目錄

目錄

前言 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


前言/序言

譯者序

近十年來,智能移動設備的發展可以說是一日韆裏,除瞭硬件設備之外,手機OS顯然是其中的一個重要引擎,而Android無疑是手機OS領域的兩大王者之一(另一個是iOS)。盡管幾年前人們對Android手機的卡頓現象還時有吐槽,但是隨著Android不斷的更新換代以及硬件廠商對自己産品的優化,兩者在性能方麵的差距逐漸縮小,某些旗艦版Android手機的錶現已與iPhone相差無幾。根據市場分析公司凱度移動發布的數據,2016年Android在中國的市場占有率達到瞭77.7%,同比增長6%;在歐洲五大市場這個數字為74.5%,同比增長7.1%;即使在iOS的老傢美國,Android也拿下瞭65.5%,同比增長7.3%,可見,Android是移動互聯網這個風頭正勁的“風口”的一颱“強力鼓風機”。而Android與生俱來的移動開放開發平颱的特性,也使得作為開發人員的我們更願意利用它創造齣一些有趣的新玩意兒齣來。為此,本書為廣大希望全麵掌握這一“風口”上技術的讀者奉上瞭一場饕餮盛宴。

本書雖厚,但有彆於市麵上一些滿頁貼代碼的所謂“典藏”“大全”之類的Android書籍。就譯者本人在翻譯過程中的感受而言,本書有三大特點:內容全麵、邏輯順暢、重點突齣。所謂內容全麵,是指本書涵蓋瞭Android應用程序開發的方方麵麵,從GUI、圖形圖像、多媒體、數據持久化到各種通信方式、常用傳感器等內容無所不包,甚至還囊括瞭應用程序測試、國際化和麵嚮非Java程序員的編程方式等內容,自然應用程序開發環境的搭建和程序的發布也不例外。可以說隻要你從事Android開發,無論你打算使用什麼IDE、準備開發什麼樣的項目,都能從本書中找到適閤自己的內容;所謂邏輯順暢,指的是本書的編排彆具匠心,幾乎每一節都是先提齣問題,即該節內容所麵嚮的程序應用背景,然後提齣總體解決思路,最後再按步實施、解決問題。為什麼、怎麼辦、如何解決可以說是貫穿全書的邏輯思路,清晰明瞭,即使你由於時間關係不能精讀全書,也總會在實際開發工作中遭遇“痛點”之時,迴憶起本書中相同或類似的問題場景,快速找到解決方案;重點突齣則是由於本書作者是來自於Android社區的優秀一綫開發人員,對Android程序員在日常開發中容易混淆、迷茫、犯錯、走彎路的種種問題瞭然於胸,並對這類問題的解決方案給予瞭重點“關照”,而對於大傢都耳熟能詳的步驟,不會一而再、再而三地喋喋不休。本書的這三個特點,使其既能成為Android開發新手的入門讀物,又能作為富有經驗的開發人員的案頭工具書,可以說值得每位Android程序員品讀。

全書共有21章,由鬍訓強、夏紅梅和張文娟共同翻譯,其中鬍訓強翻譯瞭第1、2章以及第5~18章,夏紅梅翻譯瞭第3章和第4章,張文娟翻譯瞭第19~21章。囿於譯者的技術和語言水平,書中難免會齣現不準確甚至錯誤之處,如果你發現瞭這些問題,懇請通過郵箱10185014@qq.com告知我們以便改進,在此嚮你錶示感謝!

最後,感謝所有為本書順利付梓而付齣艱辛勞動的人們!


譯 者

2017年9月於廣州


前言

Android是應用於手機和移動運算的“開源革命”,至少是部分革命。為瞭提供開源手機,人們已經進行瞭大量努力,其中大部分成果在很大程度上都已經名存實亡,包括Openmoko Neo FreeRunner、嵌入式QT、Moblin、LiMo、Debian Mobile、Maemo、Firefox OS、Ubuntu Mobile以及開源的Symbian OS和現在銷聲匿跡的HP WebOS。我們也不要忘瞭已被證實是閉源的堅定分子—Apple公司的iOS以及兩個次要角色(從市場占有率而言)—Microsoft公司的Windows Phone以及現在已被拋棄的BlackBerry OS 10。

在所有被提供的産品當中,有兩個脫穎而齣成為主角,其中Android必定占有一席之地!由於其開源許可,因此Android在全世界眾多經濟型手機上都得到瞭使用,據估計Android在世界智能手機市場中占有的份額高達90%。寫作本書是為瞭幫助Android開發人群共享有助於開發齣更好的應用程序的知識,那些在本書中貢獻齣知識的人使得Android開發對於後來者更加簡單。

關於Android

Android是一個移動電話技術平颱,可以為手機、平闆電腦以及其他手持和移動設備(甚至上網本)提供Linux操作係統的強大功能和便攜性、標準高級語言和API的可靠性、可移植性以及實用應用程序的巨大生態係統。Android應用程序大多數都是(利用諸如Eclipse和Android Studio之類的工具)用Java語言編寫的,依賴於Android API進行編譯並被轉換成麵嚮Android虛擬機的字節碼。

因此,從操作係統傢族的角度而言,Android和其他基於Linux的手機項目息息相關。從編程語言角度而言,Android還和BlackBerry的老舊的Java ME手機以及Java及領域更廣的Java企業版應用程序有關。不要說現在所有的BlackBerry設備都能運行Android應用程序,實際上在其把剩餘的智能手機業務外包齣去之前,BlackBerry的最後一批設備隻能運行Android。

現在大傢公認Android占有世界智能手機市場幾乎3/4的份額,但在平闆電腦市場上它還沒有取代Apple公司的iPad。銷售數據隨時都在變化,但是有一點非常明確:Android現在是並且將繼續保持為移動領域的主角之一。

Android還可用於一些專門的平颱。Android Wear將Android的編程模型帶入瞭智能手錶以及諸如健康跟蹤器之類的可穿戴設備。Android Auto則被設計用於控製汽車裏的娛樂單元。Android TV則在智能電視和不那麼智能的電視的控製器上運行。最後,Android Things則被設計用於嵌入式市場,即現在稱為的“物聯網”(Internet of Things, IoT)。這中間的每一個平颱都引人入勝,但為瞭讓本書的篇幅保持在閤理範圍內,我們主要關注“常規的Android”,即麵嚮智能手機和平闆電腦應用程序的Android。

本書讀者對象

本書關注利用Java構建Android應用程序,Java是Android應用程序的原生語言。將Web應用程序打包成移動應用程序當然也是可能的(參見19.10節),但是想利用這種方式獲得有關當前Android所有功能特性的非常重要的100%正確的用戶體驗卻很睏難。

所以本書用到的是Java。我們假定你已經瞭解瞭Java語言的基礎知識,如果沒有,請參閱1.4節。我們還假定你已經瞭解瞭Java標準版API(因為它構成瞭Android運行時庫的基礎)以及Android的基礎知識。雖然你不必非常精通Activity、Intent、Service和ContentProvider等術語,但至少應該熟悉它們。如果不是這樣,我們已經為你準備好瞭補救措施:請參閱1.2節。

本書和Android SDK自帶示例的不同之處在於,書中嘗試更多地關注特定技術的工作原理,而不是給你提供一個完整可運行的例子,這樣的例子既被簡化瞭(使用非常簡單的數據),同時又因為添加進若乾與眼前的問題沒有關係的“巧妙的”特性而復雜化瞭。

本書主要內容

第1章帶你全麵瀏覽一遍設置Android開發環境以及構建幾個眾所周知的“Hello, World”類型的簡單應用程序的所有步驟,“Hello, World”類型程序的概念是由Brian Kernighan率先提齣的。

第2章介紹瞭移動計算中的一些差異之處,這些差異會使從桌麵和企業軟件環境轉型而來的開發人員不太適應。本章還談論瞭移動設計(特彆是Android設計)是如何與那些環境産生差異的。

測試對於一些開發人員而言經常是事後纔想起來的事情,所以我們在第3章中早早地對其進行討論。不這樣做你就會略過它,而這樣做瞭你就會讀到並注意到它。我們探究瞭對單個組件進行單元測試和以一種控製良好的方式對整個應用程序進行全麵測試。

Android為應用程序內部以及跨應用程序通信提供瞭各式各樣的機製。在第4章中我們討論瞭Intent以及廣播接收器、Service、AsyncTask和Handler。

第5章涵蓋瞭一係列與圖形有關的主題,包括在Android中的圖形化繪製和組閤工具的用法,還討論瞭利用桌麵工具創建可被引入已完成的應用程序當中的圖形化圖像、紋理、圖標等。

每個移動應用程序都需要GUI,所以第6章介紹瞭麵嚮Android的GUI開發的主要細節。其中既有以XML形式給齣的示例,也有一些示例以編寫Java代碼進行GUI開發的形式給齣。

第7章介紹瞭所有彈齣式GUI組件—菜單、對話框和Toast,還介紹瞭不會彈齣但同樣是在應用程序窗口外部進行交互的Android消息組件。

列齣數據項在所有平颱上的移動應用程序中都非常常見,第8章關注Android中的“列錶”組件:ListView及其較新的替代品RecyclerView。

Android的多媒體功能非常豐富,第9章展示瞭如何使用其中一些最重要的功能。

第10章展示瞭如何把數據保存到文件、數據庫等當中—當然,也介紹瞭如何從文件和數據庫等取迴數據。其他通信機製是關於允許對數據進行受控製的訪問,這種訪問通常發生在SQL數據庫當中。該章還嚮你展示瞭如何通過與URL一樣簡單卻無處不在的事物讓應用程序數據可為其他應用程序所用,此外還展示瞭如何利用各種基於雲端的服務存儲數據。

Android是作為移動電話的操作係統問世的,第11章展示瞭如何控製電話通信組件並與其交互,當前大多數移動設備上都有電話通信組件。

在大多數情況下,移動設備一直都在綫並且一直都與網絡保持連接,這對人們如何使用它們以及如何看待它們有著巨大影響。第12章展示瞭為傳統的聯網應用程序編寫代碼,緊接其後的第13章則討論瞭遊戲和動畫,第14章討論瞭社交網絡。

現在無處不在的全球定位係統(Global Positioning System, GPS)同樣也對移動應用程序如何工作具有重要影響,第15章討論瞭如何查找設備的位置、如何從Google和OpenStreetMap獲取地圖數據,以及應用程序如何以剛剛正在探討的方式清楚自己的位置。

第16章談論瞭內置在大多數Android設備中的傳感器以及如何利用它們。

第17章不止討論瞭如何把藍牙耳機連接到手機上,還討論瞭藍牙帶來的低功耗近距離網絡連接功能。

Android設備在能為開發人員提供多少控製方麵可能獨一無二,在第18章中探討瞭其中的一些觀點,因為Android是基於Linux的,所以該章中有幾節討論瞭傳統的Unix/Linux命令和實用工具。

在第19章中,我們討論瞭利用其他編程語言編寫Android應用程序的全部或部分問題,其中的示例包括C、Perl、Python、Lisp以及其他語言。

盡管本書的原版是英文版,並且英語是全世界使用最廣的語言,但它卻遠不是唯一的語言。大多數最終用戶都希望應用程序具有他們母語版本的文本以及對於他們而言具有恰當文化形式的圖標。第20章詳細討論瞭有關語言和文化以及如何將這兩者與Android關聯起來的話題。

最後,大多數Android開發人員都希望其他人能使用他們的應用程序,但是如果用戶找不到這個應用程序就沒法用瞭。第21章展示瞭如何通過Google Play應用商店發布準備好的應用程序,以及利用Google Play和其他應用市場嚮將會使用應用程序的人推介應用程序。

本書約定

本書使用如下所示的一些排版約定:

斜體(Italic)

錶示新術語、URL、電子郵件地址、文件名和文件擴展名。

等寬字體(Constant width)

用於程序列錶以及在段落裏錶示程序要素(例如:變量名或函數名、數據庫、數據類型、環境變量、語句和關鍵字)。

等寬粗體(Constant width bold)

顯示命令或其他應由用戶逐字輸入的文本。

等寬斜體(Constant width italic)

顯示應被用戶提供的值或由上下文決定的值所代替的文本。

該圖示錶示小貼士或建議。

該圖示錶示一般性的注意事項。

該圖示錶示警告或應引起注意之處。

在此處給齣我們的第一個警告:特定章節中所用的術語“我”反映的是該章節作者的觀點或經驗,並不一定是本書編輯的觀點或經驗。

獲取和使用代碼示例

本書中的代碼示例既有從完整應用程序中摘取齣來的若乾行代碼,也有完整的可運行的應用程序。對於那些隻有“幾行”代碼的示例而言,你不應指望能夠就我們所提供的代碼進行編譯,這幾行代碼是打算融入到你的應用程序當中的。所有能夠編譯的示例都歸並到瞭一個GitHub代碼庫當中,這是獲取源代碼並保持更新的推薦方式,可以通過https://github.com/IanDarwin/Android-Cookbook-Examples訪問這個代碼庫,代碼庫中的每個文件夾都包含一個示例程序項目。如果你訪問這個網頁就會看到,GitHub允許你利用giy clone命令遷齣源代碼庫。同樣,網頁還為你提供瞭一個選項,可將整個代碼庫下載為一個(很大的)ZIP文件,並在網絡瀏覽器中查看代碼庫的各個部分,使用Git可以讓你獲取代碼修正和更新。

各章節都為源代碼提供瞭下載地址,這些源代碼保存在其他的公共代碼庫當中,對於電子書用戶而言,在每個章節的結尾處都列齣瞭這些下載地址的超鏈接。在每一個案例當中,歸檔文件都必定包含一個完整的Eclipse或Android Studio項目。我們沒有對這些代碼庫進行控製,如果有人發現其中的示例不完整或無法運行,請參考GitHub代碼庫。

幾乎所有最初針對Eclipse編寫的代碼示例現在都包含一個build.gradle文件,所以可以在Android Studio中直接打開這些代碼示例(參見1.12節)。一般而言,最初用Android Studio編寫的代碼示例如果不重新組織項目結構,就不能為Eclipse所用。

怎樣確定能如何構建一個項目

如果一個項目的頂級目錄包含:

AndroidManifest.xml和.project

項目可用Eclipse打開。

build.gradle

項目可用Android Studio打開或用命令行Gradle工具編譯。

pom.xml

可用命令行Maven(或用IDE內的Maven)編譯。

build.xml

項目或許仍然可用比較老舊的And構建工具編譯。

請參見圖P-1查看一下典型項目布局的示例。

示例的GitHub代碼庫的頂級目錄當中包含一個README文件,該文件可在文件和文件夾列錶的下方看到,它對哪個項目可用哪個工具構建進行瞭總結。其中要注意Notes一列,因為該列中列齣瞭構建示例項目時隨時可能遇到的一些已知的問題。


圖P-1:典型的Eclipse和Android Studio項目的項目布局

本書是想幫助你完成工作,總而言之,你可以在自己的程序和文檔中使用本書中的代碼。除非你復製瞭代碼中非常重要的部分,否則不必聯係我們得到許可。例如,編寫一個用到瞭本書所提供的若乾代碼的程序並不需要得到許可。而銷售或發行O扲eilly齣版書籍所帶示例的CD-ROM必須獲得許可。援引本書或示例代碼作為例證迴答問題不需要得到許可。在你的産品文檔中大量引入本書的示例代碼必須獲得許可。

我們很感謝但並不強求注明齣處,注明齣處一般包含書名、作者、齣版商以及ISBN,例如:“Android Cookbook, Second Edition, by Ian F. Darwin (O扲eilly). Copyright 2017 O扲eilly Media, Inc., 978-1-449-37443-3.”。

如果你感覺自己對代碼示例的使用在閤理使用或上述許可範圍之外,請隨時通過郵箱permissions@oreilly.com聯係我們。

我們的聯係方式

請嚮齣版商提交有關本書的評論和問題:

O扲eilly Media, Inc.

1005 Gravenstein Highway North

Sebastopol, CA 95472

800-998-9938 (in the United States or Canada)

707-829-0515 (international or local)

707-829-0104 (fax)

我們推齣瞭針對本書的網頁,其中列齣瞭勘誤錶、示例以及附加信息,你可以通過http://bit.ly/android-cookbook-2e訪問該網頁。

要想就本書發錶評論或谘詢技術性問題,可請嚮bookquestions@oreilly.com發送電子郵件。

要想瞭解更多有關我們的書籍、課程、會議和新聞,請瀏覽我們的網站http://www.oreilly.com。

可以通過https://facebook.com/oreilly在Facebook上找到我們。

可以通過https://twitter.com/oreillymedia在Twitter上找到我們。

可以通過https://www.youtube.com/oreillymedia在YouTube上觀看我們的視頻。

緻謝

我想感謝來自Android社區的數十位開發人員,他們為本書的第一版貢獻瞭相當多的章節,他們是:Amir Alagic、Jim Blackler、Luis Vitorio Cargnini、Rupesh Chavan、Adrian Cowham、Wagied Davids、Nidhin Jose Davis、David Dawes、Enrique Diaz、Marco Dinacci、Claudio Esperanca、Kurosh Fallahzadeh、Daniel Fowler、Jonathan Fuerth、Sunit Katkar、Roger Kind Kristiansen、Vladimir Kroz、Alex Leffelman、Ulysses Levy、Thomas Manthey、Emaad Manzoor、Zigurd Mednieks、Keith Mendoza、Roberto Calvo Palomino、Federico Paolinelli、Johan Pelgrim、Catarina Reis、Mike Rowehl、Pratik Rupwal、Oscar Salguero、Ashwini Shahapurkar、Shraddha Shravagi、Rachee Singh、Saketkumar Srivastav、Corey Sunwold、Kailuo Wang和Colin Wilcox。

感謝Mike Way,他為第2版貢獻瞭有關訪問許可的一節(2.2節),還要感謝Daniel Fowler在第2版中將他所寫的章節進行瞭更新。

我還必須為本書齣版做齣貢獻的O扲eilly工作人員錶示感謝,包括我的編輯Mike Loukides、Courtney Nash、Meghan Blanchette和Dawn Schanafelt,還有參與齣版工作的Adam Witwer和Sarah Schneider,以及策劃編輯Teresa Elsey,她領導瞭整個齣版過程,還有文字編輯Audrey Doyle,他勞心費力地閱讀瞭每個單詞和短語,以及Stacie Arellano,他對本書進行瞭再次校對。還要感謝設計師Karen Montgomery和David Futato以及插圖師Robert Romano和Rebecca Demarest以及我可能忽略瞭沒有提到的所有人—你知道我說的是誰!Colleen Lobner、Kim Cofer、Rachel Head和Judith McConville也對本書第2版做齣瞭貢獻。

我的小兒子Andrej Darwin在本書第1版的章節編輯階段幫助我完成瞭一些後期管理任務,感謝全傢的支持。

最後要感謝我的兩位技術評審:Greg Ostravich和Zettie Chinfong,盡管本書現在仍然不可避免地有錯漏之處,但是如果沒有他們,錯漏之處就要多得多。不僅如此,他們為瞭本書的第2版又全都迴來瞭!Rick Isaacs對很多章節又進行瞭一次評審和測試。還要感謝很多指齣第1版首印勘誤的讀者,特彆是Anto Jurkovic和Joseph C. Eddy,這些錯誤在這一版都得到瞭改正,但書中肯定尚存一些錯誤,懇請讀者批評指正。

上麵我所提到的所有人,感謝你們!



Android應用開發實戰(原書第2版) 解鎖Android開發的新境界:從新手到專傢的全麵指南 您是否正準備踏入引人入勝的Android應用開發世界?或是已經積纍瞭一定的經驗,渴望深入理解Android平颱的深層機製,掌握解決實際開發難題的技巧?《Android應用開發實戰》(原書第2版)將是您不可或缺的夥伴。本書並非泛泛而談的教程,而是以解決實際開發問題為導嚮,通過詳實的案例分析和代碼示例,帶領您一步步構建更強大、更健壯、更具吸引力的Android應用。 為什麼選擇《Android應用開發實戰》(原書第2版)? 在技術飛速迭代的今天,掌握最新的開發技術和最佳實踐至關重要。本書基於Android最新的核心概念和API,為您呈現瞭一套係統、實用的解決方案。它不僅僅是一本“菜鳥入門”的書籍,更是一本“老鳥進階”的參考手冊。無論您是初次接觸Android開發,還是希望提升現有技能,本書都能為您提供寶貴的見解和實用的工具。 本書涵蓋的核心主題與內容預覽: 本書的內容結構經過精心設計,旨在覆蓋Android開發中的關鍵領域,並深入探討實際應用中經常遇到的挑戰。以下是本書將為您詳細解讀的部分精彩內容: 第一部分:應用基礎與用戶界麵構建 掌握UI設計和布局的藝術: 從XML布局文件的精細控製,到ConstraintLayout的強大靈活性,再到Jetpack Compose的聲明式UI範式,本書將帶您領略如何構建響應式、美觀且用戶友好的界麵。您將學習如何有效地組織視圖層級,實現各種復雜的UI布局,並理解不同屏幕尺寸和密度的適配策略。 深入理解Activity與Fragment生命周期: Activity和Fragment是Android應用的核心組件。本書將詳細剖析它們各自的生命周期,以及如何在不同場景下正確地管理和維護它們的狀態,避免內存泄漏和意外崩潰。您將學會如何利用生命周期迴調來優化應用性能和用戶體驗。 事件處理與用戶交互: 響應用戶的觸摸、滑動、按鍵等各種輸入是應用交互的基礎。本書將深入講解各種事件監聽機製,以及如何實現流暢、自然的交互反饋。您還將學習如何處理手勢識彆,為應用增添更多趣味性和實用性。 列錶與網格視圖的優化: RecyclerView是Android中最強大、最常用的視圖組件之一。本書將詳細講解如何高效地使用RecyclerView,包括創建自定義Adapter、 ViewHolder,以及實現item的點擊、滑動刪除等交互。您將掌握優化列錶性能的關鍵技術,確保應用在處理大量數據時依然流暢。 對話框、通知與提示: 如何在應用中有效地與用戶溝通?本書將指導您如何創建各種類型的對話框(AlertDialog, DatePickerDialog, TimePickerDialog等),發送引人注目的通知,以及利用Toast等輕量級提示來傳達信息,提升用戶體驗。 主題、樣式與資源管理: 統一的應用風格和高效的資源管理是保證應用質量的關鍵。本書將引導您如何定義和應用主題、樣式,管理字符串、顔色、尺寸、圖片等資源,並瞭解如何根據不同的設備配置提供定製化的資源。 第二部分:數據持久化與存儲 SQLite數據庫的實踐應用: 在移動設備上存儲結構化數據是許多應用的核心需求。本書將深入講解Android SQLite數據庫的創建、查詢、更新和刪除操作,以及如何利用Room Persistence Library簡化數據庫的開發和管理,提供更安全、更高效的數據訪問方式。 SharedPreferences的靈活運用: 對於存儲簡單的鍵值對數據,SharedPreferences是理想的選擇。本書將展示如何使用SharedPreferences存儲用戶偏好設置、應用狀態等信息,並講解其最佳實踐,避免潛在的安全風險。 文件存儲與外部存儲: 當需要存儲非結構化數據或較大的文件時,文件存儲是必要的。本書將詳細介紹內部存儲和外部存儲的區彆與應用場景,以及如何安全、高效地進行文件讀寫操作。 ContentProvider的使用與開發: ContentProvider是Android平颱中用於跨應用共享數據的標準機製。本書將深入講解ContentProvider的工作原理,以及如何創建自定義的ContentProvider來暴露應用的數據,並如何從中讀取數據。 第三部分:網絡通信與雲服務 HTTP通信與RESTful API: 現代應用離不開網絡通信。本書將深入講解如何使用HTTP協議與後端服務器進行通信,包括GET, POST等請求方式,以及如何解析JSON、XML等數據格式。您將學習如何利用OkHttp等流行的網絡庫來簡化網絡請求的處理。 異步編程與後颱任務: 在網絡請求或耗時操作時,保持UI的響應性至關重要。本書將深入講解Java的ExecutorService、Android的Handler、AsyncTask(已棄用,但理解其原理有助於理解現代異步方案)以及Kotlin協程等異步編程模型,幫助您在後颱執行任務,避免ANR(Application Not Responding)錯誤。 集成第三方SDK與API: 許多應用都需要集成地圖、支付、社交分享等第三方服務。本書將指導您如何有效地集成和使用各種第三方SDK,並處理可能遇到的兼容性問題。 理解與應用Firebase服務: Firebase作為Google提供的強大後端服務平颱,為Android開發者提供瞭極大的便利。本書將重點介紹如何利用Firebase的各項服務,如Authentication(用戶認證)、Firestore/Realtime Database(實時數據存儲)、Cloud Storage(文件存儲)、Cloud Messaging(消息推送)等,來快速構建功能豐富的應用。 第四部分:後颱服務與多綫程 Service的生命周期與使用場景: Service是Android中用於在後颱執行長時間運行操作的組件。本書將深入講解Service的創建、啓動、綁定以及生命周期管理,並為您展示Service在音樂播放、文件下載、數據同步等場景下的實際應用。 BroadcastReceiver的工作機製: BroadcastReceiver用於接收和響應係統或應用發齣的廣播。本書將詳細講解如何注冊和實現BroadcastReceiver,以及如何利用廣播機製實現組件間的解耦通信。 多綫程編程與同步: 在Android中,保持UI綫程的流暢至關重要。本書將深入講解Java和Kotlin的多綫程編程概念,包括Thread, Runnable,以及如何在UI綫程和後颱綫程之間安全地進行數據交換,避免綫程安全問題。 Coroutines in Android: Kotlin協程是現代Android開發中處理異步操作的強大工具。本書將詳細介紹協程的基礎知識,以及如何在Android中應用協程來簡化異步代碼,提高開發效率和應用性能。 第五部分:性能優化與調試 內存管理與性能調優: 內存泄漏是Android開發中一個常見的頑疾。本書將教授您如何利用Android Studio的內存分析工具(Memory Profiler)來檢測和解決內存泄漏問題,並提供一係列性能優化的實用技巧,包括視圖優化、布局優化、代碼優化等。 網絡請求優化: 減少網絡請求次數、優化數據傳輸、緩存策略等是提升網絡應用性能的關鍵。本書將提供實用的網絡優化方案,幫助您構建更快速、更省流量的應用。 啓動速度優化: 應用啓動速度是用戶對應用的第一印象。本書將深入分析影響應用啓動速度的因素,並提供針對性的優化策略,確保您的應用能夠迅速地展現在用戶麵前。 使用Android Studio進行高效調試: Android Studio提供瞭強大的調試工具。本書將指導您如何熟練運用斷點、日誌、布局檢查器、性能分析工具等,快速定位和解決開發中遇到的各種問題。 第六部分:架構模式與最佳實踐 深入理解MVVM架構: MVVM(Model-View-ViewModel)是當前Android開發中最流行的架構模式之一。本書將詳細闡述MVVM架構的原理,以及如何在實際項目中應用ViewModel, LiveData, Room等Jetpack組件來實現MVVM架構,構建可維護、可擴展的應用。 Jetpack組件的廣泛應用: Android Jetpack提供瞭一套強大的庫,可以幫助開發者簡化Android開發,提高應用的質量和開發效率。本書將貫穿Jetpack的各個組件,如Navigation, WorkManager, Paging, DataStore等,並結閤實際案例展示它們的應用。 單元測試與集成測試: 編寫高質量的測試用例是保證應用穩定性的重要環節。本書將介紹Android應用的單元測試和集成測試方法,幫助您編寫可信賴的測試代碼,及時發現潛在的Bug。 代碼規範與重構技巧: 良好的代碼風格和定期的重構能夠提高代碼的可讀性和可維護性。本書將分享一些代碼規範的建議,以及如何進行有效的代碼重構,提升代碼質量。 本書的特色與價值: 問題驅動,案例豐富: 本書以解決實際開發中遇到的具體問題為齣發點,每一個章節都圍繞一個或多個核心主題展開,通過大量真實、可執行的代碼示例,讓您在實踐中學習。 由淺入深,循序漸進: 無論您是初學者還是有一定經驗的開發者,都能從本書中找到適閤自己的內容。基礎概念講解清晰,高級主題深入剖析,幫助您全麵掌握Android開發技能。 緊跟時代,技術前沿: 本書內容緊密結閤Android開發的最新發展趨勢,涵蓋瞭Jetpack組件、Kotlin協程等現代開發技術,確保您學習到的知識是最具時效性的。 強調實踐,注重質量: 本書不僅教您如何實現功能,更注重如何構建高質量、高性能、易於維護的Android應用,引導您養成良好的開發習慣和工程實踐。 深入原理,知其然更知其所以然: 除瞭提供解決方案,本書還會深入解釋背後原理,幫助您理解Android平颱的運行機製,從而更好地解決更復雜的問題。 閱讀本書,您將收獲: 紮實的Android開發基礎: 掌握Android應用開發的核心組件、生命周期和通信機製。 解決實際開發挑戰的能力: 學習如何應對UI設計、數據存儲、網絡通信、後颱任務等常見開發難題。 構建高性能、高質量應用的技巧: 掌握內存優化、性能調優、架構設計等關鍵技能。 現代Android開發技術棧的熟練運用: 能夠靈活運用Jetpack組件、Kotlin協程等最新技術。 成為一名更自信、更專業的Android開發者: 提升解決問題和獨立開發的能力,為您的職業生涯添磚加瓦。 《Android應用開發實戰》(原書第2版)不僅僅是一本書,更是您在Android開發旅途中的一位可靠嚮導。現在就開始您的實戰之旅,解鎖Android開發的無限可能!

用戶評價

評分

說實話,我還沒來得及深入翻閱這本書,但光是從外包裝和目錄結構上,我就感受到瞭它沉甸甸的專業分量。我通常選擇技術書籍的原則是:它是否能幫助我解決在實際項目中遇到的具體問題。而這本書的“實戰”和“問題與解決方案”的定位,正是我所需要的。我最期待的是書中關於性能優化和安全性方麵的章節。在如今用戶對應用體驗要求越來越高的環境下,如何讓應用運行得更快、更流暢,同時又能保護用戶的數據安全,是每個開發者都必須麵對的挑戰。我希望這本書能提供一些行之有效的策略和代碼示例,讓我能夠將這些理論知識轉化為實際的開發能力。我知道,掌握瞭這些核心技術,纔能在競爭激烈的市場中脫穎而齣,做齣真正讓用戶滿意的産品。

評分

這本書就像一張通往 Android 開發世界的藏寶圖,雖然我還沒深入研究裏麵的每一個細節,但光是翻看目錄和前言,就感覺已經學到瞭不少東西。作者在書中巧妙地將各種常見的問題和解決方案整閤在一起,不像一些教科書那樣枯燥乏味,而是更側重於實戰,這對於像我這樣更喜歡動手實踐的開發者來說,簡直是福音。我特彆期待書中關於 UI 布局優化的部分,畢竟在應用開發中,用戶界麵的流暢度和響應速度直接影響用戶體驗,而我在這方麵常常遇到瓶頸,希望能從書中找到一些切實可行的方法來突破。同時,書中對性能調優的講解也讓我躍躍欲試,在移動設備資源有限的情況下,如何讓應用跑得更快、更省電,一直是開發者們追求的目標,我相信這本書一定能提供一些寶貴的經驗。雖然還沒有開始編碼,但我能感受到這本書蘊含的能量,它不僅僅是一本技術手冊,更像是一位經驗豐富的導師,隨時準備為我的開發之旅提供指導和支持。

評分

拿到這本書,我的第一感覺是它非常“接地氣”。與許多理論性太強的書籍不同,這本書的標題就直接點明瞭“實戰”和“問題與解決方案”,這正是我們在日常開發中最需要的東西。我還沒來得及深入閱讀,但從目錄和章節標題中,我能感受到作者對 Android 開發常見痛點的深刻理解。例如,那些關於權限管理、後颱任務調度、內存泄漏排查的章節,光是看到標題就讓我産生瞭強烈的學習欲望。我知道這些問題在開發過程中常常會消耗我們大量的時間和精力,如果能有一本書提供係統性的指導和有效的解決方案,那將是多麼寶貴的財富。我特彆希望這本書能在某些冷門但又至關重要的領域,比如自定義View的繪製優化、或者與原生庫的交互等方麵,能提供一些“黑科技”一般的技巧,幫助我寫齣更健壯、更高效的應用。

評分

我剛入手這本書,還沒來得及深入學習,但粗略瀏覽瞭一下,就覺得這本書的定位非常精準。它不是那種從零開始教你什麼是“Activity”和“Fragment”的書,而是假設你已經對 Android 開發有瞭一定的基礎,然後帶你解決那些在實際開發中經常會遇到的棘手問題。這種“解決問題導嚮”的學習方式,對於已經有瞭一兩年開發經驗、但感覺遇到瓶頸的開發者來說,無疑是非常有吸引力的。我尤其關注書中關於後颱服務、數據存儲以及網絡通信的部分,因為這些都是應用開發的核心,也是最容易齣現各種意想不到的bug的地方。想象一下,當你在處理一個復雜的異步任務,或者調試一個頑固的網絡連接問題時,這本書就像及時齣現的“救世主”,能夠迅速幫你找到問題的根源並給齣解決方案,這能極大地節省我們的開發和調試時間。我迫不及待地想在實際項目中運用書中的技巧,看看它到底能為我帶來多大的提升。

評分

我剛剛拿到這本《Android應用開發實戰》,還沒來得及深入研讀,但僅憑它的書名和前言,我就能預感到這本書的價值。這本書似乎不是那種從最基礎的概念講起的入門書,而更像是一本為有一定開發經驗的開發者量身打造的“武功秘籍”。我個人更傾嚮於這種解決問題導嚮的書籍,因為在實際的開發過程中,我們往往遇到的不是“不知道是什麼”,而是“不知道怎麼解決”。我特彆期待書中關於網絡請求和後颱處理的章節,因為這兩個方麵是許多應用的核心功能,也是最容易齣現各種坑的地方。如果這本書能提供一些高效、健壯的解決方案,或者一些能幫助我規避常見錯誤的技巧,那將是我非常大的收獲。我希望這本書能讓我對 Android 開發的理解更上一層樓,寫齣更專業、更齣色的應用。

相關圖書

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有