Android開發詳解

Android開發詳解

《Android 開發詳解》 是一本綜合開發參考書,書中幾乎囊括了使用Android 進行程式開發的全部知識,既適合初學者入門,又適合開發者進階。本書共28 章,依次講解了Android 旅程之起點,Android Studio 的常用技巧,App UI 設計,初級UI 控制項,中級UI 控制項,高級UI 控制項,Android 許可權機制與支持庫的套用,自定義控制項,主角(Activity)與配角(Intent),Android 程式的修理工,事件與手勢,Android 基本資源訪問,Android 高級資源的調用,Action Bar 的使用,訊息、通知、廣播與鬧鐘,圖形圖像處理技術,Android 中的動畫,播放音頻與視頻,拍照與顯示圖片,利用OpenGL 實現3D 圖形,數據存儲技術,默默付出的後台工作者,感測器套用,位置服務與地圖套用,網路編程及Internet 套用,Android 中的小部件,常用的第三方技術,發布你的App。書中所有知識都結合具體實例進行講解,實例代碼給出了詳細的注釋,可以逐步引導讀者學習並掌握Android 程式開發的知識、方法和技巧,快速提升開發技能。

內容簡介

Android是由Google 公司發布的專門為移動設備開發的、完全免費的平台,使用它不需要授權費,可以完全定製。另外,由於Android 底層架構使用開源的Linux 作業系統,同時開放了應用程式開發工具,使所有程式開發人員都可以在統一的、開放的平台上進行開發,從而保證了Android應用程式的可移植性。因此Android 已經成為全球最受歡迎的智慧型手機作業系統之一,受到越來越多編程愛好者的青睞。

本書知識系統全面,講解詳細,結合大量實例,幫助讀者更好地鞏固所學知識,提升能力。書中設定e 學碼,不易理解的專業術語、代碼難點只需用手機掃描文字下方的e 學碼即可獲取更多擴展解釋,隨時掃除學習障礙。此外,登錄明日學院還可以獲取更多學習資源和技術支持。

目錄

第1章 Android 旅程之起點.....1

1.1 走近Android ................................1

1.1.1 智慧型手機作業系統....................1

1.1.2 Android發展史.......................2

1.1.3 Android套用領域.....................3

1.2 搭建Android開發環境........................4

1.2.1 開發環境概述........................4

1.2.2 集成Android開發環境的下載...........5

1.2.3 集成Android開發環境的安裝...........8

1.3 與Android套用初次相見.................... 15

1.3.1 創建Android應用程式............... 15

1.3.2 Android項目結構類型............... 21

1.3.3 使用Android模擬器................. 26

1.3.4 運行Android套用................... 30

1.4 知識回顧................................. 33

第2第2章 Android Studio 的常用技巧............ 34

2.1 Android Studio的基本了解.................. 34

2.1.1 了解配置界面...................... 34

2.1.2 外觀設定.......................... 37

2.1.3 Android Studio的主視窗............. 39

2.1.4 常用的工具視窗.................... 41

2.2 導入項目與模組........................... 43

2.2.1 導入Android Studio項目............ 43

2.2.2 導入Eclipse項目................... 45

2.2.3 導入模組.......................... 47

2.2.4 創建與導入.AAR包................. 48

2.3 自定義圖示............................... 51

2.4 Android Studio快捷鍵的使用................ 55

2.4.1 編輯類............................ 55

2.4.2 視圖類............................ 62

2.4.3 編碼類............................ 65

2.5 知識回顧................................. 68

第3第3章 App UI 設計.......... 69

3.1 UI設計相關的概念......................... 69

3.1.1 View ............................. 69

3.1.2 ViewGroup ........................ 70

3.2 設計UI界面............................... 72

3.2.1 使用XML布局檔案設計UI界面....... 72

3.2.2 在Java代碼中設計UI界面........... 74

3.2.3 使用XML和Java代碼混合設計UI界面.. 77

3.2.4 開發自定義的View類............... 78

3.3 布局管理器............................... 81

3.3.1 相對布局管理器.................... 81

3.3.2 線性布局管理器.................... 84

3.3.3 幀布局管理器...................... 88

3.3.4 表格布局管理器.................... 90

3.3.5 格線布局管理器.................... 93

3.3.6 布局管理器的嵌套.................. 97

3.4 常用App UI界面設計....................... 99

3.5 知識回顧................................ 107

第第4章 初級UI 控制項........ 108

4.1 文本類控制項(初級)...................... 108

4.1.1 文本框........................... 108

4.1.2 編輯框............................112

4.2 按鈕類控制項(初級).......................115

4.2.1 普通按鈕..........................116

4.2.2 圖片按鈕..........................119

4.3 圖像類控制項.............................. 123

III

4.3.1 圖像視圖......................... 124

4.3.2 格線視圖......................... 127

4.4 知識回顧................................ 130

第5章 中級UI 控制項......... 131

5.1 文本類控制項(中級)...................... 131

5.1.1 自動完成文本框................... 131

5.1.2 文本切換器....................... 134

5.2 按鈕類控制項(中級)...................... 137

5.2.1 狀態開關按鈕..................... 137

5.2.2 單選按鈕......................... 140

5.2.3 複選框........................... 145

5.3 進度條類控制項............................ 148

5.3.1 進度條........................... 149

5.3.2 拖動條........................... 153

5.3.3 星級評分條....................... 156

5.4 知識回顧................................ 160

第第6章 高級UI 控制項......... 161

6.1 圖像類控制項(高級)...................... 161

6.1.1 圖像切換器(ImageSwitcher)...... 161

6.1.2 畫廊視圖(Gallery)............... 166

6.2 列表類控制項.............................. 169

6.2.1 下拉列表框(Spinner)............ 169

6.2.2 列表視圖(ListView).............. 173

6.3 切換類控制項.............................. 177

6.3.1 控制項的切換(ViewFlipper)......... 178

6.3.2 翻頁控制項(ViewPager)............ 180

6.3.3 翻頁的標題欄(PagerTabStrip)..... 185

6.4 通用控制項................................ 188

6.4.1 滾動視圖......................... 188

6.4.2 選項卡........................... 192

6.4.3 搜尋框(SearchView)............... 195

6.5 知識回顧................................ 199

第7第7章 Android 許可權機制與

支持庫的套用........ 200

7.1 Android許可權機制.......................... 200

7.2 Android支持庫的常用控制項.................. 204

7.2.1 工具列(ToolBar)................. 204

7.2.2 摺疊標題欄

(CollapsingToolbarLayout)......... 208

7.2.3 卡片式布局(CardView)........... 212

7.2.4 滑動選單(DrawerLayout)......... 215

7.2.5 下拉刷新(SwipeRefreshLayout)... 219

7.3 增強型滾動控制項.......................... 222

7.3.1 RecyclerView的基礎用法........... 223

7.3.2 RecyclerView的格線布局........... 228

7.3.3 RecyclerView的瀑布流格線布局..... 230

7.4 知識回顧................................ 234

第第8章 自定義控制項.......... 235

8.1 自定義控制項實現流程...................... 235

8.1.1 自定義屬性....................... 235

8.1.2 測量尺寸......................... 238

8.1.3 繪製View......................... 239

8.2 自定義控制項.............................. 242

8.2.1 嵌套在ScrollView中的列表.......... 242

8.2.2 外星人手機時鐘................... 243

8.3 知識回顧................................ 248

第第9章 主角(Activity)與配角(Intent)............ 249

9.1 主角的作用.............................. 249

9.2 主角的艱辛歷程.......................... 251

9.2.1 創建Activity....................... 251

9.2.2 配置Activity....................... 253

9.2.3 啟動和關閉Activity................. 253

9.3 主角之間的交流.......................... 256

9.3.1 配角很重要....................... 256

9.3.2 顯式Intent........................ 258

9.3.3 隱式Intent........................ 258

9.3.4 Intent過濾器...................... 262

9.3.5 多個Activity之間交換數據........... 266

9.3.6 調用另一個Activity並返回結果....... 269

9.4 使用碎片(Fragment).................... 273

9.4.1 Fragment的生命周期............... 273

9.4.2 創建Fragment..................... 274

IV

9.4.3 在Activity中添加Fragment.......... 275

9.5 知識回顧................................ 280

第1第10章 Android 程式的修理工................. 281

10.1 DDMS工具的使用....................... 281

10.1.1 在Android Studio中打開DDMS..... 281

10.1.2 DDMS常用功能詳解.............. 282

10.2 輸出日誌信息........................... 285

10.2.1 Log.e()方法...................... 286

10.2.2 Log.w()方法..................... 286

10.2.3 Log.i()方法...................... 286

10.2.4 Log.d()方法...................... 287

10.2.5 Log.v()方法...................... 287

10.3 程式調試............................... 288

10.3.1 Android Studio編輯器調試......... 288

10.3.2 Android Studio調試器調試......... 289

10.4 知識回顧............................... 291

第11第11章 事件與手勢......... 292

11.1 互動規則................................ 292

11.1.1 基於監聽的事件處理.............. 292

11.1.2 基於回調的事件處理.............. 293

11.2 物理按鍵互動............................ 293

11.3 觸控螢幕互動.............................. 296

11.3.1 單擊事件........................ 296

11.3.2 長按事件........................ 296

11.3.3 觸摸事件........................ 298

11.3.4 單擊事件與觸摸事件的區別........ 300

11.3.5 事件的綜合套用.................. 301

11.4 手勢檢測................................ 304

11.5 知識回顧................................ 307

第第12章 Android 基本資源訪問............ 308

12.1 字元串(string)資源.................... 308

12.1.1 定義字元串資源檔案.............. 308

12.1.2 使用字元串資源.................. 309

12.2 顏色(color)資源....................... 310

12.2.1 顏色值的定義.................... 310

12.2.2 定義顏色資源檔案................ 310

12.2.3 使用顏色資源.....................311

12.3 尺寸(dimen)資源...................... 312

12.3.1 Android支持的尺寸單位........... 312

12.3.2 使用尺寸資源.................... 312

12.4 布局(layout)資源...................... 316

12.5 數組(array)資源....................... 316

12.5.1 定義數組資源檔案................ 317

12.5.2 使用數組資源.................... 317

12.6 樣式(style)資源....................... 319

12.7 Android程式國際化....................... 321

12.8 知識回顧............................... 324

第13第13章 Android 高級資源的調用............... 325

13.1 選單(menu)資源...................... 325

13.1.1 定義選單資源檔案................ 325

13.1.2 使用選單資源.................... 326

13.2 圖像資源............................... 330

13.2.1 圖片資源........................ 330

13.2.2 StateListDrawable資源............ 333

13.2.3 ShapeDrawable資源.............. 337

13.2.4 LevelListDrawable資源............ 342

13.2.5 ClipDrawable資源................ 345

13.2.6 LayerDrawable資源............... 348

13.2.7 mipmap資源..................... 350

13.3 知識回顧............................... 351

第1第14章 Action Bar 的使用... 352

14.1 Action Bar概述.......................... 352

14.2 Action Bar基本套用...................... 353

14.2.1 顯示和隱藏Action Bar............. 353

14.2.2 添加Action Item選項.............. 355

14.2.3 添加Action View................. 357

14.2.4 Action Bar與Tab.................. 359

14.3 實現層級式導航......................... 363

14.3.1 啟用程式圖示導航................ 363

14.3.2 配置父Activity.................... 363

14.3.3 控制導航圖示的顯示.............. 364

V

14.4 知識回顧............................... 366

第15第15章 訊息、通知、廣播與鬧鐘............... 367

15.1 通過Toast類顯示訊息提示框............... 367

15.2 對話框與彈出視窗的使用................. 368

15.2.1 使用AlertDialog類實現對話框...... 368

15.2.2 TimePickerDialog與

DatePickerDialog的使用.......... 374

15.2.3 進度對話框(ProgressDialog)....... 377

15.2.4 彈出視窗(PopupWindow)....... 380

15.3 使用Notification在狀態欄上顯示通知....... 385

15.4 BroadcastReceiver使用.................. 388

15.4.1 BroadcastReceiver簡介........... 388

15.4.2 BroadcastReceiver套用........... 390

15.5 使用AlarmManager設定鬧鐘.............. 392

15.5.1 AlarmManager簡介............... 392

15.5.2 設定一個簡單的鬧鐘.............. 393

15.6 知識回顧............................... 395

第1第16章 圖形圖像處理技術... 396

16.1 常用繪圖類............................. 396

16.1.1 Paint類.......................... 396

16.1.2 Canvas類....................... 398

16.1.3 Path類.......................... 399

16.1.4 Bitmap類........................ 400

16.1.5 BitmapFactory類................. 401

16.2 繪製2D圖像............................. 401

16.2.1 繪製幾何圖形.................... 401

16.2.2 繪製文本........................ 404

16.2.3 繪製圖片........................ 405

16.2.4 繪製路徑........................ 407

16.3 知識回顧................................411

第1第17章 Android 中的動畫.... 412

17.1 逐幀動畫............................... 412

17.2 補間動畫............................... 414

17.2.1 旋轉動畫(RotateAnimation)..... 415

17.2.2 縮放動畫(ScaleAnimation)...... 416

17.2.3 平移動畫(Translate Animation).. 417

17.2.4 透明度漸變動畫(AlphaAnimation).. 418

17.3 屬性動畫............................... 421

17.3.1 屬性動畫的使用.................. 421

17.3.2 屬性動畫組合.................... 426

17.4 知識回顧............................... 430

第1第18章 播放音頻與視頻..... 431

18.1 播放音頻............................... 431

18.1.1 使用MediaPlayer播放音頻......... 431

18.1.2 使用SoundPool類播放音頻........ 436

18.1.3 動態顯示歌詞的音樂播放器........ 439

18.2 播放視頻............................... 444

18.2.1 使用VideoView播放視頻........... 444

18.2.2 使用MediaPlayer和SurfaceView

播放視頻........................ 446

18.2.3 添加視頻彈幕.................... 450

18.3 知識回顧............................... 455

第1第19章 拍照與顯示圖片..... 456

19.1 控制攝像頭............................. 456

19.1.1 拍照............................ 456

19.1.2 使用Camera2進行拍照........... 460

19.1.3 錄製視頻........................ 470

19.2 調用系統相機與圖庫..................... 475

19.2.1 使用Intent啟動系統相機........... 475

19.2.2 使用Intent瀏覽圖庫並選取圖片..... 478

19.3 知識回顧............................... 482

第第20章 利用OpenGL 實現3D圖形............... 483

20.1 OpenGL簡介............................ 483

20.2 繪製3D圖形............................. 484

20.2.1 構建3D開發的基本框架............ 484

20.2.2 繪製一個模型.................... 486

20.3 添加效果............................... 491

20.3.1 套用紋理貼圖.................... 491

20.3.2 旋轉............................ 493

20.3.3 光照效果........................ 494

20.3.4 透明效果........................ 496

20.4 知識回顧............................... 497

第2第21章 數據存儲技術....... 498

21.1 SharedPreferences存儲.................. 498

21.1.1 獲取SharedPreferences類......... 499

21.1.2 向SharedPreferences檔案中存儲數據... 499

21.1.3 讀取SharedPreferences檔案中

存儲的數據...................... 500

21.2 檔案存儲............................... 502

21.2.1 內部存儲........................ 502

21.2.2 外部存儲........................ 506

21.3 資料庫存儲............................. 509

21.3.1 創建資料庫...................... 509

21.3.2 數據操作........................ 509

21.4 使用Content Provider實現數據共享........ 515

21.4.1 Content Provider概述............. 515

21.4.2 創建Content Provider............. 517

21.4.3 使用Content Provider............. 519

21.5 知識回顧............................... 522

第22第22章 默默付出的後台工作者............. 523

22.1 多執行緒................................. 523

22.1.1 創建執行緒........................ 523

22.1.2 開啟執行緒........................ 524

22.1.3 執行緒的休眠...................... 524

22.1.4 中斷執行緒........................ 525

22.2 Handler訊息傳遞機制.................... 527

22.2.1 Handler類簡介................... 529

22.2.2 Handler類中的常用方法........... 529

22.2.3 Handler與Looper、MessageQueue的關係............................ 531

22.2.4 訊息類(Message).............. 532

22.3 Service的套用........................... 534

22.3.1 Service的分類................... 535

22.3.2 Service的生命周期............... 535

22.3.3 創建與配置Service............... 536

22.3.4 啟動和停止Service............... 539

22.3.5 Bound Service................... 542

22.3.6 IntentService.................... 545

22.4 知識回顧............................... 547

第2第23章 感測器套用......... 548

23.1 Android感測器概述....................... 548

23.1.1 Android的常用感測器............. 549

23.1.2 開發步驟........................ 550

23.2 方向感測器............................. 555

23.3 磁場感測器............................. 559

23.4 加速度感測器........................... 562

23.5 知識回顧............................... 564

第第24章 位置服務與地圖套用.. 565

24.1 位置服務............................... 565

24.1.1 獲取LocationProvider............. 567

24.1.2 獲取定位信息.................... 570

24.2 百度地圖服務........................... 573

24.2.1 獲取地圖API密鑰................. 573

24.2.2 下載SDK開發包.................. 576

24.2.3 創建使用百度地圖API的項目....... 577

24.2.4 定位到我的位置.................. 580

24.3 知識回顧............................... 584

第2第25章 網路編程及Internet套用............... 585

25.1 通過HTTP訪問網路...................... 585

25.1.1 傳送GET請求.................... 586

25.1.2 傳送POST請求................... 589

25.2 通過OkHttp3訪問網路.................... 593

25.2.1 OkHttp3簡介..................... 593

25.2.2 OkHttp3的基本用法............... 594

25.3 解析JSON格式數據...................... 597

25.3.1 JSON簡介....................... 597

25.3.2 解析JSON數據................... 598

25.3.3 使用GSON解析數據.............. 600

25.4 使用WebView顯示網頁................... 603

25.4.1 使用WebView控制項瀏覽網頁........ 604

25.4.2 使用WebView載入HTML代碼...... 606

25.4.3 讓WebView支持JavaScript........ 608

25.5 知識回顧................................611

第26第26章 Android 中的小部件... 612

26.1 Widget簡介............................. 612

26.2 Widget基礎............................. 613

26.2.1 設計原則........................ 613

26.2.2 開發步驟........................ 615

26.2.3 安裝及刪除...................... 618

26.3 Widget配置............................. 618

26.3.1 在Widget元數據檔案中聲明Activity... 619

26.3.2 創建配置Widget的Activity.......... 619

26.3.3 獲取Widget的ID.................. 621

26.3.4 更新Widget...................... 621

26.3.5 設定返回信息並關閉Activity........ 621

26.4 Widget與Service........................ 622

26.5 知識回顧............................... 626

第2第27章 常用的第三方技術... 627

27.1 第三方登錄............................. 627

27.1.1 申請第三方賬號.................. 628

27.1.2 實現第三方登錄.................. 628

27.2 社會化分享............................. 636

27.2.1 QQ分享......................... 636

27.3 微信分享............................... 640

27.4 第三方支付............................. 645

27.4.1 微信支付........................ 645

27.4.2 支付寶支付...................... 646

27.5 知識回顧............................... 648

第2第28章 發布你的App....... 649

28.1 導出APK安裝包............................................. 649

28.2 發布App................................ 651

28.2.1 開發者實名認證.................. 651

28.2.2 上傳套用........................ 654

28.3 知識回顧............................... 654

附附錄1 快捷鍵介紹...............655

附附錄2 Android 代碼編寫規範..656

相關詞條

熱門詞條

聯絡我們