有人說看完Android 4高級編程這本書之后你就能整體了解了Android應用程序的系統結構和執行原理,盡管書中的代碼有一些“小毛病”,但這并不影響這本書被很多讀者贊為“很不錯的android書,比較全面”,本節內容小編為大家整理帶來的是pdf格式完整高清版、中文第3版android 4高級編程電子書,以下是關于這本書籍的介紹,希望對大家有所幫助!如果你需要查閱這本電子書的全部內容的話,點擊本文相應的下載地址進行下載即可!
Android 4高級編程(中文第3版)目錄
第1章 Android簡介 1
1.1 一些背景信息 2
1.1.1 不遠的過去 2
1.1.2 未來的前景 2
1.2 對Android的誤解 3
1.3 Android:開放的移動開發平臺 3
1.4 原生Android應用程序 4
1.5 Android SDK的特征 5
1.5.1 訪問硬件(包括攝像頭、GPS和傳感器) 5
1.5.2 使用Wi-Fi、藍牙技術和NFC進行數據傳輸 6
1.5.3 地圖、地理編碼和基于位置的服務 6
1.5.4 后臺服務 6
1.5.5 使用SQLite數據庫進行數據存儲和檢索 7
1.5.6 共享數據和應用程序間通信 7
1.5.7 使用Widget和Live Wallpaper增強主屏幕 7
1.5.8 廣泛的媒體支持和2D/3D圖形 7
1.5.9 Cloud to Device Messaging 8
1.5.10 優化的內存和進程管理 8
1.6 開放手機聯盟簡介 8
1.7 運行Android的環境 9
1.8 從事移動開發的原因 9
1.9 從事Android開發的原因 9
1.9.1 推動Android普及的因素 10
1.9.2 Android的獨到之處 10
1.9.3 改變移動開發格局 11
1.10 開發框架簡介 11
1.10.1 開發包中的資源 12
1.10.2 理解Android軟件棧 12
1.10.3 Dalvik虛擬機 14
1.10.4 Android應用程序架構 14
1.10.5 Android庫 15
第2章 開始入手 17
2.1 Android開發 18
2.1.1 開始前的準備工作 18
2.1.2 創建第一個Android應用程序 24
2.1.3 Android應用程序的類型 31
2.2 面向移動設備和嵌入式設備的開發 32
2.2.1 硬件限制帶來的設計考慮事項 32
2.2.2 考慮用戶環境 35
2.2.3 Android開發 36
2.3 Android開發工具 40
2.3.1 Android虛擬設備管理器 41
2.3.2 Android SDK管理器 42
2.3.3 Android模擬器 42
2.3.4 Dalvik調試監控服務(DDMS) 42
2.3.5 Android調試橋(ADB) 43
2.3.6 Hierarchy Viewer和Lint工具 43
2.3.7 Monkey和Monkey Runner 43
第3章 創建應用程序和Activity 45
3.1 Android應用程序的組成部分 46
3.2 應用程序Manifest文件簡介 47
3.3 使用Manifest編輯器 54
3.4 分離資源 55
3.4.1 創建資源 55
3.4.2 使用資源 63
3.4.3 為不同的語言和硬件創建資源 66
3.4.4 運行時配置更改 68
3.5 Android應用程序生命周期 70
3.6 理解應用程序的優先級和進程狀態 70
3.7 Android Application類簡介 72
3.7.1 擴展和使用Application類 72
3.7.2 重寫應用程序的生命周期事件 73
3.8 深入探討Android Activity 74
3.8.1 創建Activity 74
3.8.2 Activity的生存期 76
3.8.3 Android Activity類 81
第4章 創建用戶界面 83
4.1 Android UI基本設計 84
4.2 Android UI的基礎知識 84
4.3 布局簡介 85
4.3.1 定義布局 86
4.3.2 使用布局創建設備無關的UI 87
4.3.3 優化布局 90
4.4 To-Do List示例 93
4.5 Fragment介紹 100
4.5.1 創建新的Fragment 101
4.5.2 Fragment的生命周期 101
4.5.3 Fragment Manager介紹 105
4.5.4 向Activity中添加Fragment 105
4.5.5 Fragment和Activity之間的接口 110
4.5.6 沒有用戶界面的Fragment 111
4.5.7 Android Fragment 類 112
4.5.8 對To-Do List示例使用Fragment 112
4.6 Android widget 工具箱 116
4.7 創建新視圖 117
4.7.1 修改現有的視圖 118
4.7.2 創建復合控件 122
4.7.3 使用布局創建簡單的復合控件 124
4.7.4 創建定制的視圖 124
4.7.5 使用定制的控件 137
4.8 Adapter簡介 137
4.8.1 部分原生Adapter簡介 138
4.8.2 定制ArrayAdapter 138
4.8.3 使用Adapter綁定數據到視圖 139
第5章 Intent和Broadcast Receiver 145
5.1 Intent簡介 145
5.1.1 使用Intent來啟動Activity 146
5.1.2 Linkify簡介 153
5.1.3 使用Intent廣播事件 155
5.1.4 Local Broadcast Manager 159
5.1.5 Pending Intent簡介 160
5.2 創建Intent Filter和Broadcast Receiver 161
5.2.1 使用Intent Filter為隱式Intent提供服務 161
5.2.2 使用Intent Filter作為插件和擴展 170
5.2.3 監聽本地Broadcast Intent 173
5.2.4 使用Broadcast Intent監控設備的狀態變化 174
5.2.5 在運行時管理Manifest Receiver 176
第6章 使用Internet資源 177
6.1 下載和分析Internet資源 177
6.1.1 連接Internet資源 178
6.1.2 使用XML Pull Parser分析XML 179
6.1.3 創建一個地震查看器 180
6.2 使用Download Manager 186
6.2.1 下載文件 186
6.2.2 自定義Download Manager Notification 187
6.2.3 指定下載位置 188
6.2.4 取消和刪除下載 189
6.2.5 查詢Download Manager 189
6.3 使用Internet服務 192
6.4 連接到Google App Engine 192
6.5 下載數據而不會耗盡電量的最佳實踐 194
第7章 文件、保存狀態和首選項 195
7.1 保存簡單的應用程序數據 195
7.2 創建并保存Shared Preference 196
7.3 檢索Shared Preference 197
7.4 為地震查看器創建一個設置Activity 197
7.5 首選項框架和Preference Activity概述 205
7.5.1 在XML中定義一個Preference Screen布局 206
7.5.2 Preference Fragment簡介 208
7.5.3 使用Preference Header定義Preference Fragment的層次結構 208
7.5.4 Preference Activity簡介 209
7.5.5 向后兼容性與Preference Screen 210
7.5.6 找到并使用Preference Screen設置的Shared Preference 210
7.5.7 Shared Preference Change Listener簡介 211
7.6 為地震查看器創建一個標準的Preference Activity 211
7.7 持久化應用程序實例的狀態 215
7.7.1 使用Shared Preference保存Activity狀態 215
7.7.2 使用生命周期處理程序保存和還原Activity實例 215
7.7.3 使用生命周期處理程序保存和還原Fragment實例狀態 216
7.8 將靜態文件作為資源添加 218
7.9 在文件系統下工作 218
7.9.1 文件管理工具 218
7.9.2 使用特定于應用程序的文件夾存儲文件 219
7.9.3 創建私有的應用程序文件 219
7.9.4 使用應用程序文件緩存 220
7.9.5 存儲公共可讀的文件 220
第8章 數據庫和Content Provider 223
8.1 Android數據庫簡介 223
8.1.1 SQLite數據庫簡介 224
8.1.2 Content Provider簡介 224
8.2 SQLite簡介 224
8.3 Content Value和Cursor 225
8.4 使用SQLite數據庫 225
8.4.1 SQLiteOpenHelper簡介 226
8.4.2 在不使用SQLiteOpenHelper的情況下打開和創建數據庫 228
8.4.3 Android數據庫設計注意事項 228
8.4.4 查詢數據庫 228
8.4.5 從Cursor中提取值 229
8.4.6 添加、更新和刪除行 230
8.5 創建Content Provider 232
8.5.1 注冊Content Provider 233
8.5.2 發布Content Provider的URI地址 233
8.5.3 創建Content Provide的數據庫 234
8.5.4 實現Content Provider查詢 235
8.5.5 Content Provider事務 236
8.5.6 在Content Provider中存儲文件 239
8.5.7 一個Content Provider的實現框架 240
8.6 使用Content Provider 244
8.6.1 Content Resolver簡介 244
8.6.2 查詢Content Provider 244
8.6.3 使用Cursor Loader異步查詢內容 247
8.6.4 添加、刪除和更新內容 249
8.6.5 訪問Content Provider中存儲的文件 251
8.6.6 創建一個To-Do List數據庫和Content Provider 253
8.7 將搜索功能添加到應用程序中 260
8.7.1 使Content Provider可搜索 261
8.7.2 為應用程序創建一個搜索Activity 261
8.7.3 將搜索Activity設置為應用程序的默認搜索Provider 263
8.7.4 使用搜索視圖微件 266
8.7.5 由Content Provider支持搜索建議 267
8.7.6 在快速搜索框中顯示搜索結果 270
8.8 創建可搜索的地震Content Provider 270
8.8.1 創建Content Provider 270
8.8.2 使用地震Content Provider 276
8.8.3 搜索EarthquakeContent Provider 279
8.9 本地Android Content Provider 285
8.9.1 使用Media StoreContent Provider 285
8.9.2 使用Contacts Contract Content Provider 286
8.9.3 使用Calendar Content Provider 293
第9章 在后臺操作 297
9.1 Service簡介 298
9.1.1 創建和控制Service 298
9.1.2 將Service綁定到Activity 302
9.1.3 地震監控Service示例 304
9.1.4 創建前臺Service 308
9.2 使用后臺線程 309
9.2.1 使用AsyncTask運行異步任務 310
9.2.2 Intent Service簡介 312
9.2.3 Loader簡介 313
9.2.4 手動創建線程和GUI線程同步 313
9.3 使用Alarm 315
9.3.1 創建、設置和取消Alarm 316
9.3.2 設置重復Alarm 317
9.3.3 使用重復Alarm調度網絡刷新 318
9.4 使用Intent Service簡化Earthquake更新Service 320
第10章 擴展用戶體驗 323
10.1 操作欄簡介 324
10.1.1 自定義操作欄 325
10.1.2 自定義操作欄來控制應用程序的導航行為 328
10.1.3 操作欄操作簡介 333
10.2 向地震監控程序添加一個操作欄 333
10.3 創建并使用菜單和操作欄操作項 339
10.3.1 Android菜單系統簡介 340
10.3.2 創建菜單 341
10.3.3 指定操作欄的操作 342
10.3.4 菜單項選項 343
10.3.5 添加操作View和操作提供程序 344
10.3.6 在Fragment中添加菜單項 345
10.3.7 使用XML定義菜單層次結構 345
10.3.8 動態更新菜單項 347
10.3.9 處理菜單選擇 347
10.3.10 子菜單和上下文菜單簡介 348
10.4 更新地震監控程序 351
10.5 全屏顯示 353
10.6 對話框簡介 355
10.6.1 創建一個對話框 356
10.6.2 使用AlertDialog類 356
10.6.3 使用專門的輸入對話框 357
10.6.4 通過Dialog Fragment管理和顯示對話框 358
10.6.5 通過Activity事件處理程序管理和顯示對話框 360
10.6.6 將Activity用作對話框 361
10.7 創建Toast 361
10.7.1 自定義Toast 362
10.7.2 在工作線程中使用Toast 364
10.8 Notification簡介 365
10.8.1 Notification Manager簡介 366
10.8.2 創建Notification 366
10.8.3 設置和自定義通知托盤UI 369
10.8.4 配置持續和連續的Notification 373
10.8.5 觸發、更新和取消Notification 374
10.9 向地震監控程序中添加Notification和對話框 376
第11章 高級用戶體驗 381
11.1 為每個屏幕尺寸和分辨率做設計 382
11.1.1 分辨率無關 382
11.1.2 為不同的屏幕大小提供支持和優化 383
11.1.3 創建可縮放的圖形資源 386
11.1.4 創建優化的、自適應的、動態的設計 390
11.1.5 反復測試 390
11.2 確保可訪問性 391
11.2.1 為非觸屏設備提供導航 391
11.2.2 為每個View提供文本描述 391
11.3 Android Text-to-Speech簡介 392
11.4 使用語音識別 394
11.4.1 使用語音識別進行語音輸入 395
11.4.2 使用語音識別進行搜索 396
11.5 控制設備振動 396
11.6 使用動畫 397
11.6.1 補間View動畫 397
11.6.2 創建和使用逐幀動畫 400
11.6.3 插值屬性動畫 400
11.7 強化View 404
11.7.1 高級Canvas繪圖 404
11.7.2 硬件加速 419
11.7.3 Surface View簡介 420
11.7.4 創建交互式控件 423
11.8 高級Drawable資源 428
11.9 復制、粘貼和剪貼板 431
11.9.1 向剪貼板中復制數據 431
11.9.2 粘貼剪貼板數據 431
第12章 硬件傳感器 433
12.1 使用傳感器和傳感器管理器 433
12.1.1 受支持的Android傳感器 434
12.1.2 虛擬傳感器簡介 435
12.1.3 查找傳感器 435
12.1.4 監視傳感器 436
12.1.5 解釋傳感器值 438
12.2 監視設備的移動和方向 439
12.2.1 確定設備的自然方向 440
12.2.2 加速計簡介 441
12.2.3 檢測加速度變化 442
12.2.4 創建一個重力計 443
12.2.5 確定設備方向 446
12.2.6 創建一個指南針和人工地平儀 450
12.2.7 陀螺儀傳感器簡介 453
12.3 環境傳感器簡介 454
12.3.1 使用氣壓計傳感器 454
12.3.2 創建氣象站 455
第13章 地圖、地理編碼和基于位置的服務 461
13.1 使用基于位置的服務 461
13.2 在模擬器中使用基于位置的服務 462
13.2.1 更新模擬器位置提供器中的位置 463
13.2.2 配置模擬器來測試基于位置的服務 463
13.3 選擇一個位置提供器 464
13.3.1 查找位置提供器 464
13.3.2 通過指定條件查找位置提供器 464
13.3.3 確定位置提供器的能力 465
13.4 確定當前位置 466
13.4.1 位置的隱私性 466
13.4.2 找出上一次確定的位置 466
13.4.3 Where Am I示例 466
13.4.4 刷新當前位置 469
13.4.5 在Where Am I中跟蹤位置 472
13.4.6 請求單獨一次位置更新 473
13.5 位置更新的最佳實踐 474
13.6 使用近距離提醒 477
13.7 使用地理編碼器 478
13.7.1 反向地理編碼 479
13.7.2 前向地理編碼 480
13.7.3 對“Where Am I”示例進行地理編碼 481
13.8 創建基于地圖的Activity 482
13.8.1 MapView和MapActivity簡介 482
13.8.2 獲得地圖的API key 483
13.8.3 創建一個基于地圖的Activity 483
13.8.4 地圖和Fragment 485
13.8.5 配置和使用MapView 486
13.8.6 使用MapController 486
13.8.7 對“Where Am I”示例使用地圖 487
13.8.8 創建和使用覆蓋(Overlay) 490
13.8.9 MyLocationOverlay簡介 497
13.8.10 ItemizedOverlay和OverlayItem簡介 498
13.8.11 將視圖固定到地圖和地圖的某個位置上 500
13.9 對Earthquake示例添加地圖功能 501
第14章 個性化主屏幕 507
14.1 主屏幕Widget簡介 507
14.2 創建App Widgets 509
14.2.1 創建Widget的XML布局資源 509
14.2.2 定義Widget設置 511
14.2.3 創建Widget Broadcast Receiver并將其添加到應用程序的manifest文件中 512
14.2.4 AppWidgetManager和RemoteView簡介 513
14.2.5 刷新Widget 518
14.2.6 創建并使用Widget配置Activity 521
14.3 創建地震Widget 522
14.4 Collection View Widget簡介 528
14.4.1 創建Collection View Widget的布局 529
14.4.2 創建RemoteViewsService 530
14.4.3 創建一個RemoteViews-Factory 531
14.4.4 使用RemoteViewsService填充CollectionViewWidget 533
14.4.5 向Collection View Widget中的項添加交互性 534
14.4.6 將Collection View Widget綁定到Content Provider 535
14.4.7 刷新Collection View Widget 537
14.4.8 創建Earthquake Collection View Widget 537
14.5 Live Folder簡介 543
14.5.1 創建Live Folder 544
14.5.2 創建Earthquake Live Folder 548
14.6 使用快速搜索框顯示應用程序搜索結果 551
14.6.1 在快速搜索框中顯示搜索結果 551
14.6.2 將Earthquake示例的搜索結果添加到快速搜索框中 552
14.7 創建Live Wallpaper 553
14.7.1 創建Live Wallpaper定義資源 553
14.7.2 創建Wallpaper Service 554
14.7.3 創建Wallpaper Service引擎 555
第15章 音頻、視頻以及攝像頭的使用 557
15.1 播放音頻和視頻 558
15.1.1 Media Player簡介 559
15.1.2 準備音頻播放 559
15.1.3 準備視頻播放 560
15.1.4 控制Media Player的播放 564
15.1.5 管理媒體播放輸出 566
15.1.6 響應音量控制 566
15.1.7 響應Media播放控件 567
15.1.8 請求和管理音頻焦點 569
15.1.9 當音頻輸出改變時暫停播放 571
15.1.10 Remote Control Client簡介 572
15.2 操作原始音頻 574
15.2.1 使用AudioRecord錄制聲音 574
15.2.2 使用AudioTrack播放音頻 575
15.3 創建一個Sound Pool 577
15.4 使用音效 578
15.5 使用攝像頭拍攝照片 579
15.5.1 使用Intent拍攝照片 579
15.5.2 直接控制攝像頭 581
15.5.3 讀取并寫入 JPEG EXIF圖像詳細信息 588
15.6 錄制視頻 589
15.6.1 使用Intent錄制視頻 589
15.6.2 使用MediaRecorder錄制視頻 590
15.7 使用媒體效果 593
15.8 向媒體庫中添加新媒體 594
15.8.1 使用媒體掃描儀插入媒體 594
15.8.2 手動插入媒體 595
第16章 藍牙、NFC、網絡和Wi-Fi 597
16.1 使用藍牙 597
16.1.1 管理本地藍牙設備適配器 598
16.1.2 可發現性和遠程設備發現 600
16.1.3 藍牙通信 604
16.2 管理網絡和Internet連接 609
16.2.1 Connectivity Manager簡介 609
16.2.2 支持用戶首選項以進行后臺數據傳輸 609
16.2.3 查找和監視網絡連接 611
16.3 管理Wi-Fi 612
16.3.1 監視Wi-Fi連接 613
16.3.2 監視活動的Wi-Fi連接的詳細信息 613
16.3.3 掃描熱點 613
16.3.4 管理Wi-Fi配置 614
16.3.5 創建Wi-Fi網絡配置 615
16.4 使用Wi-Fi Direct傳輸數據 615
16.4.1 初始化Wi-Fi Direct框架 615
16.4.2 啟用Wi-Fi Direct并監視其狀態 617
16.4.3 發現對等設備 618
16.4.4 連接對等設備 618
16.4.5 在對等設備之間傳輸數據 620
16.5 近場通信 621
16.5.1 讀取NFC標簽 622
16.5.2 使用前臺分派系統 623
16.5.3 Android Beam簡介 625
第17章 電話服務和SMS 629
17.1 電話服務的硬件支持 629
17.1.1 將電話功能指定為必需的硬件功能 629
17.1.2 檢查電話硬件 630
17.2 使用電話服務 630
17.2.1 啟動電話呼叫 630
17.2.2 替換本機撥號程序 631
17.2.3 訪問電話服務的屬性及狀態 632
17.2.4 使用PhoneStateListener監視電話狀態的變化 635
17.2.5 使用Intent Receiver監視傳入的電話呼叫 639
17.3 SMS和MMS簡介 640
17.3.1 在應用程序中使用SMS和MMS 640
17.3.2 使用Intent從應用程序中發送SMS和MMS 640
17.3.3 使用SMS Manager發送SMS消息 641
17.3.4 監聽傳入的SMS消息 644
17.3.5 緊急響應程序SMS示例 646
17.3.6 自動緊急響應程序 654
17.4 SIP和VOIP簡介 662
第18章 Android高級開發 663
18.1 Android的安全性 664
18.1.1 Linux內核安全 664
18.1.2 權限簡介 664
18.2 Cloud to Device Messaging簡介 666
18.2.1 C2DM的局限性 667
18.2.2 注冊使用C2DM 667
18.2.3 在C2DM服務器上注冊設備 667
18.2.4 向設備發送C2DM消息 670
18.2.5 接收C2DM消息 672
18.3 使用License Verification Library實現版權保護 673
18.3.1 安裝License Verification Library 673
18.3.2 獲得License Verification公鑰 673
18.3.3 配置License Validation Policy 674
18.3.4 執行許可驗證檢查 674
18.4 應用程序內收費 675
18.4.1 應用程序內收費的局限性 676
18.4.2 安裝IAB庫 676
18.4.3 獲得公鑰和定義可購買的物品 676
18.4.4 開始IAB交易 677
18.4.5 處理IAB購買請求的響應 678
18.5 使用Wake Lock 679
18.6 使用AIDL支持Service的IPC 680
18.7 處理不同硬件和軟件的可用性 686
18.7.1 指定硬件的要求 686
18.7.2 確認硬件可用性 687
18.7.3 構建向后兼容的應用程序 687
18.8 利用STRICT模式優化UI性能 689
第19章 推廣和發布應用程序并從中獲利 691
19.1 簽名和發布應用程序 691
19.2 發布應用程序 693
19.2.1 Google Play簡介 693
19.2.2 開始使用Google Play 694
19.2.3 發布應用程序 695
19.2.4 開發者控制臺上的應用程序報告 697
19.2.5 查看應用程序錯誤報告 697
19.3 如何通過應用程序賺錢 698
19.4 應用程序銷售、推廣和分發的策略 699
19.4.1 應用程序的起步策略 699
19.4.2 在Google Play上推廣 700
19.4.3 國際化 700
19.5 分析數據和跟蹤推薦人 701
19.5.1 使用移動應用程序的Google Analytics 702
19.5.2 使用Google Analytics追蹤推薦 703
Android 4高級編程(中文第3版)內容簡介
該書由Android權威專家編寫,涵蓋了所有最新的內容,是學習使用Android 4 SDK開發移動應用程序的理想指南。本書見解深刻,幫助經驗豐富的Android開發人員充分挖掘Android 4的新特性的潛力,同時講解了Android開發的基礎知識,使初學者也可以借助本書入門。作為一本以實用性為目的的指導圖書,本書帶領您逐步完成復雜程度越來越高的Android項目,每個項目中都引入一種新的Android平臺特性,并著重指出有助于編寫引人入勝的應用程序的技術和最佳實踐。
Android 4高級編程作者簡介
Reto Meier目前是Google Android 團隊的一名Android 開發人員倡導者,幫助Android 開發人員創建最優秀的應用程序。Reto 是一位經驗豐富的軟件開發人員,擁有逾10 年的GUI 應用程序開發經驗。進入Google 之前,他曾在多種行業中工作過,包括海洋石油、天然氣以及金融業。
Reto 始終不渝地追求掌握新技術,從2007 年Android 發布之初Reto 就迷戀上了此項技術。在Reto 的個人網站Radioactive Yak(http://blog. radioactiveyak.com) 上可以了解Reto 的興趣和愛好。他還在Google+(http://profiles.google.com/reto.meier) 和Twitter(www.twitter.com/retomeier) 上分享各種信息。
技術編輯簡介
Dan Ulery 是一名軟件工程師,具有.NET、Java 和PHP 的開發經驗,并且十分熟悉軟件部署。他畢業于愛達荷大學,獲得了計算機科學學士學位,并且輔修了數學專業。
android 4高級編程電子書內容截圖
- PC官方版
- 安卓官方手機版
- IOS官方手機版