精通Android

精通Android

《精通Android》是由(印度)Satya Komatineni與(美) Dave MacLean編著,人民郵電出版社出版。該書在上一版的基礎上進行了全面改進,不僅在結構上有了相應的調整,內容上更是與時俱進,增加了Android內部構件的相關知識。

內容介紹

《精通Android》介紹了執行緒、進程、長期運行的服務、廣播接收程式、鬧鐘管理器、設備配置變化和異步任務。關於碎片、碎片對話框、ActionBar和拖放等全新內容更是映入大家的眼帘。此外,《精通Android》對服務和感測器的相關章節做了大幅改進。《精通Android》囊括了Android開發人員所需的一切知識,既可為Android開發人員夯實基礎,又能提高Android開發人員的技能。

作者介紹

Satya Komatineni是一位有著20多年程式開發經驗的IT工程師,在C\C++\Java\C#\HTML\Java Script以及其他相關語言方言方面有著深厚的經驗。

Dave MacLean曾服務於SUN、IBM、Trimble Navigation、General Motors等多家企業,是一位經驗豐富的軟體工程師和架構師。

作品目錄

第1章  Android計算平台簡介 1
1.1  面向新PC的全新平台 1
1.2  Android的歷史 2
1.3  Dalvik VM剖析 4
1.4  理解Android軟體棧 5
1.5  使用Android SDK開發最終用戶應用程式 6
1.5.1  Android模擬器 6
1.5.2  Android UI 7
1.5.3  Android基礎組件 7
1.5.4  高級UI概念 8
1.5.5  Android Service組件 10
1.5.6  Android媒體和電話組件 10
1.5.7  Android Java包 11
1.6  利用Android原始碼 14
1.6.1  線上瀏覽Android原始碼 14
1.6.2  使用Git下載Android原始碼 15
1.7  本書的示例項目 16
1.8  小結 16
第2章  設定開發環境 17
2.1  設定環境 17
2.1.1  下載JDK 6 18
2.1.2  下載Eclipse 3.6 19
2.1.3  下載Android SDK 19
2.1.4  命令行視窗 20
2.1.5  安裝ADT 21
2.2  了解基本組件 23
2.2.1  View 23
2.2.2  Activity 23
2.2.3  Fragment 24
2.2.4  Intent 24
2.2.5  ContentProvider 24
2.2.6  Service 24
2.2.7  AndroidManifest.xml 24
2.2.8  AVD 25
2.3  Hello World! 25
2.4  AVD 29
2.5  在真實設備上運行 30
2.6  剖析Android應用程式的結構 31
2.7  了解應用程式生命周期 33
2.8  簡單調試 35
2.9  參考資料 37
2.10  小結 37
2.11  面試問題 37
第3章  使用Android資源 39
3.1  資源 39
3.1.1  字元串資源 39
3.1.2  布局資源 41
3.1.3  資源引用語法 43
3.1.4  定義資源ID供以後使用 44
3.1.5  已編譯和未編譯的Android資源 45
3.2  Android關鍵資源 46
3.3  使用任意XML資源檔案 54
3.4  使用原始資源 55
3.5  使用資產 56
3.6  了解資源目錄結構 56
3.7  資源和配置更改 56
3.8  參考資料URL 59
3.9  小結 60
3.10  面試問題 60
第4章  ContentProvider 62
4.1  探索Android內置的ContentProvider 63
4.1.1  在模擬器和可用設備上利用資料庫 63
4.1.2  快速了解SQLite 66
4.2  ContentProvider的架構 66
4.2.1  Android內容URI的結構 68
4.2.2  Android MIME類型的結構 68
4.2.3  使用URI讀取數據 70
4.2.4  使用游標 71
4.2.5  使用where子句 72
4.2.6  插入記錄 74
4.2.7  將檔案添加到ContentProvider中 75
4.2.8  更新和刪除 76
4.3  實現ContentProvider 76
4.3.1  計畫資料庫 76
4.3.2  擴展ContentProvider 78
4.3.3  履行MIME類型契約 83
4.3.4  實現query方法 83
4.3.5  實現insert方法 83
4.3.6  實現update方法 84
4.3.7  實現delete方法 84
4.3.8  使用UriMatcher來解析URI 84
4.3.9  使用投影映射 85
4.3.10  註冊提供程式 86
4.4  練習圖書提供程式 86
4.4.1  添加圖書 86
4.4.2  刪除圖書 87
4.4.3  獲取圖書數量 87
4.4.4  顯示圖書列表 87
4.5  資源 88
4.6  小結 89
4.7  面試問題 89
第5章  Intent 90
5.1  Android Intent基礎知識 90
5.2  Android中可用的Intent 91
5.3  Intent的組成 93
5.3.1  Intent和數據URI 93
5.3.2  一般操作 94
5.3.3  使用extra信息 95
5.3.4  使用組件直接調用活動 96
5.3.5  Intent類別 97
5.3.6  將Intent解析為組件的規則 99
5.4  練習使用ACTION_PICK 101
5.5  練習使用GET_CONTENT操作 103
5.6  掛起的Intent 104
5.7  資源 105
5.8  小結 106
5.9  面試問題 106
第6章  構建用戶界面和使用控制項 107
6.1  Android中的UI開發 107
6.1.1  完全利用代碼來構建UI 108
6.1.2  完全使用XML構建UI 110
6.1.3  使用XML結合代碼構建UI 111
6.2  Android中的常見控制項 113
6.2.1  文本控制項 113
6.2.2  按鈕控制項 116
6.2.3  ImageView控制項 123
6.2.4  日期和時間控制項 124
6.2.5  MapView控制項 127
6.3  適配器 127
6.3.1  SimpleCursorAdapter 128
6.3.2  了解ArrayAdapter 129
6.4  結合使用適配器和AdapterView 131
6.4.1  基本的列表控制項:ListView 131
6.4.2  GridView控制項 138
6.4.3  Spinner控制項 140
6.4.4  Gallery控制項 141
6.4.5  創建自定義適配器 142
6.4.6  Android中的其他控制項 146
6.5  樣式和主題 147
6.5.1  使用樣式 147
6.5.2  使用主題 149
6.6  布局管理器 150
6.6.1  LinearLayout布局管理器 150
6.6.2  TableLayout布局管理器 153
6.6.3  RelativeLayout布局管理器 156
6.6.4  FrameLayout布局管理器 157
6.6.5  GridLayout布局管理器 159
6.6.6  為各種設備配置自定義布局 160
6.7  參考資料 161
6.8  小結 161
6.9  面試問題 161
第7章  使用選單 163
7.1  Android選單 163
7.1.1  創建選單 164
7.1.2  使用選單組 165
7.1.3  回響選單項 166
7.2  使用其他選單類型 168
7.2.1  展開的選單 168
7.2.2  使用圖示選單 169
7.2.3  使用子選單 169
7.2.4  使用上下文選單 170
7.2.5  使用交替選單 173
7.2.6  動態選單 175
7.3  通過XML檔案載入選單 175
7.3.1  XML選單資源檔案的結構 176
7.3.2  填充XML選單資源檔案 177
7.3.3  回響基於XML的選單項 177
7.3.4  4.0版本中的彈出式選單 178
7.3.5  其他XML選單標記簡介 179
7.4  資源 181
7.5  小結 181
7.6  面試問題 181
第8章  多用途的碎片 183
8.1  什麼是碎片 183
8.1.1  何時使用碎片 184
8.1.2  碎片的結構 185
8.1.3  碎片的生命周期 186
8.1.4  展示生命周期的示例碎片應用程式 189
8.2  FragmentTransactions和碎片後退棧 194
8.3  FragmentManager 196
8.3.1  引用碎片時的注意事項 197
8.3.2  保存片段狀態 198
8.3.3  ListFragments和<fragment> 198
8.3.4  在需要時調用獨立的活動 200
8.3.5  碎片的持久化 201
8.4  碎片之間的通信方式 202
8.5  使用ObjectAnimator自定義動畫 203
8.6  參考資料 205
8.7  小結 205
8.8  面試問題 206
第9章  對話框 207
9.1  使用Android對話框 207
9.2  對話框碎片 207
9.2.1  DialogFragment的基礎知識 208
9.2.2  構建對話框碎片 208
9.2.3  DialogFragment示例應用程式 212
9.3  使用Toast 220
9.4  舊版本Android的對話框碎片 221
9.5  參考資料 221
9.6  小結 222
9.7  面試問題 222
第10章  ActionBar 223
10.1  ActionBar剖析 223
10.2  選項卡導航操作欄活動 225
10.2.1  實現基礎活動類 225
10.2.2  為ActionBar分配統一的行為 227
10.2.3  實現選項卡監聽器 229
10.2.4  實現選項卡操作欄活動 230
10.2.5  可滾動的調試文本視圖布局 232
10.2.6  操作欄和選單互動 233
10.2.7  Android描述檔案 235
10.2.8  測試選項卡操作欄活動 235
10.3  列表導航操作欄活動 236
10.3.1  創建SpinnerAdapter 236
10.3.2  創建列表監聽器 237
10.3.3  設定列表操作欄 237
10.3.4  更改BaseActionBar-Activity 238
10.3.5  更改AndroidManifest.xml 238
10.3.6  測試列表操作欄活動 239
10.4  標準導航操作欄活動 240
10.4.1  設定標準導航操作欄活動 240
10.4.2  更改BaseActionBar-Activity 241
10.4.3  更改AndroidManifest.xml 242
10.4.4  測試標準操作欄活動 242
10.5  工具列與搜尋視圖 243
10.5.1  將搜尋視圖部件定義為選單項 244
10.5.2  配置搜尋結果活動 244
10.5.3  通過可搜尋XML檔案自定義搜尋 245
10.5.4  在配置清單檔案中定義搜尋結果活動 245
10.5.5  確定搜尋視圖部件的搜尋目標 245
10.6  操作欄和碎片 246
10.7  參考資料 246
10.8  小結 247
10.9  面試問題 247
第11章  高級調試與分析 249
11.1  啟用高級調試 249
11.2  Debug透視圖 249
11.3  DDMS透視圖 250
11.4  Hierarchy View透視圖 252
11.5  Traceview 253
11.6  adb命令 254
11.7  模擬器控制台 255
11.8  StrictMode 255
11.8.1  StrictMode策略 255
11.8.2  關閉StrictMode 256
11.8.3  在舊版本Android上使用StrictMode 257
11.8.4  StrictMode練習 258
11.9  參考資料 259
11.10  小結 259
11.11  面試問題 259
第12章  回響配置變化 261
12.1  配置變化過程 261
12.1.1  活動的銷毀/創建過程 262
12.1.2  碎片的銷毀/創建過程 263
12.1.3  使用FragmentManager保存碎片狀態 264
12.1.4  使用碎片的setRetain-Instance 264
12.2  棄用的配置變化方法 264
12.3  參考資料 265
12.4  小結 265
12.5  面試問題 265
第13章  首選項及保存狀態 266
13.1  探索首選項框架 266
13.1.1  ListPreference 266
13.1.2  CheckBoxPreference 273
13.1.3  EditTextPreference 275
13.1.4  RingtonePreference及MultiSelectListPreference 276
13.2  組織首選項 276
13.2.1  使用PreferenceCategory 276
13.2.2  創建依賴的子首選項 279
13.2.3  帶標題的首選項 279
13.3  以編程方式操作首選項 281
13.3.1  使用首選項保存狀態 281
13.3.2  使用DialogPreference 282
13.4  參考資料 283
13.5  小結 283
13.6  面試問題 283
第14章  探索安全性和許可權 284
14.1  理解Android安全性模型 284
14.1.1  安全性概念概述 284
14.1.2  為部署簽名應用程式 285
14.2  執行運行時安全性檢查 290
14.2.1  進程邊界上的安全性 290
14.2.2  聲明和使用許可權 290
14.2.3  理解和使用自定義許可權 292
14.2.4  理解和使用URI許可權 297
14.3  參考資料 298
14.4  小結 298
14.5  面試問題 299
第15章  構建和使用服務 300
15.1  使用HTTP服務 300
15.1.1  將HttpClient用於HTTP GET請求 300
15.1.2  將HttpClient用於HTTP POST請求(多部分POST請求示例) 302
15.1.3  SOAP、JSON和XML分析程式 304
15.1.4  處理異常 305
15.1.5  解決多執行緒問題 307
15.1.6  有趣的逾時 309
15.1.7  使用HttpURLConnection 310
15.1.8  使用AndroidHttpClient 310
15.1.9  使用後台執行緒(AsyncTask) 311
15.1.10  使用DownloadManager獲取檔案 316
15.2  使用Android服務 321
15.2.1  Android中的服務 322
15.2.2  本地服務 323
15.2.3  AIDL服務 329
15.2.4  在AIDL中定義服務接口 329
15.2.5  實現AIDL接口 331
15.2.6  從客戶端應用程式調用服務 333
15.2.7  向服務傳遞複雜的類型 336
15.3  參考資料 345
15.4  小結 345
15.5  面試問題 346
第16章  包 347
16.1  包和進程 347
16.1.1  包規範的細節 347
16.1.2  將包名稱轉換為進程名稱 347
16.1.3  列出安裝的包 348
16.1.4  通過包瀏覽器刪除包 348
16.2  包簽名過程回顧 349
16.2.1  理解數字簽名:場景1 349
16.2.2  理解數字簽名:場景2 350
16.2.3  一種理解數字簽名的模式 350
16.2.4  數字簽名執行方式 350
16.2.5  簽名過程的影響 350
16.3  在包之間共享數據 351
16.3.1  共享用戶ID的性質 351
16.3.2  共享數據的代碼模式 352
16.4  庫項目 353
16.4.1  庫項目的概念 353
16.4.2  庫項目的性質 353
16.4.3  創建庫項目 355
16.4.4  創建使用庫的Android項目 358
16.4.5  使用庫項目的注意事項 365
16.5  參考資料 365
16.6  小結 366
16.7  面試問題 366
第17章  處理程式 368
17.1  Android組件和執行緒 368
17.1.1  活動在主執行緒上運行 369
17.1.2  廣播接收程式在主執行緒上運行 369
17.1.3  服務在主執行緒上運行 369
17.1.4  ContentProvider在主執行緒上運行 370
17.1.5  單一主執行緒的影響 370
17.1.6  執行緒池、ContentProvider及外部服務組件 370
17.1.7  執行緒實用程式:發現執行緒 370
17.2  處理程式 371
17.2.1  持有主執行緒的影響 372
17.2.2  使用處理程式延遲主執行緒上的工作 373
17.2.3  延遲工作的處理程式原始碼示例 373
17.2.4  構造合適的Message對象 375
17.2.5  將Message對象傳送給佇列 375
17.2.6  回響handleMessage回調 376
17.3  使用工作執行緒 376
17.3.1  從選單調用工作執行緒 376
17.3.2  在工作執行緒與主執行緒之間通信 377
17.4  組件和進程壽命 380
17.4.1  活動生命周期 380
17.4.2  服務生命周期 381
17.4.3  接收程式生命周期 381
17.4.4  提供程式生命周期 382
17.5  參考資料 382
17.6  小結 382
17.7  面試問題 383
第18章  AsyncTask詳解 384
18.1  實現一個簡單的AsyncTask 385
18.1.1  實現AsyncTask的泛型 385
18.1.2  創建AsyncTask子類 386
18.1.3  實現第一個AsyncTask 386
18.1.4  調用一個AsyncTask 388
18.1.5  onPreExecute()回調方法和進度對話框 388
18.1.6  doInBackground()方法 389
18.1.7  觸發onProgressUpdate() 389
18.1.8  onPostExecute()方法 390
18.1.9  升級為確定性進度對話框 390
18.2  AsyncTask的性質 392
18.3  設備旋轉與AsyncTask 393
18.4  生命周期方法與AsyncTask 393
18.5  參考資料 393
18.6  小結 394
18.7  面試問題 394
第19章  廣播接收程式和長期運行的服務 395
19.1  廣播接收程式 395
19.1.1  傳送廣播 395
19.1.2  編寫簡單的接收程式:示例代碼 396
19.1.3  在描述檔案中註冊接收程式 396
19.1.4  容納多個接收程式 397
19.1.5  進程外接收程式項目 399
19.2  從接收程式使用通知 399
19.2.1  通過通知管理器監控通知 400
19.2.2  傳送通知 401
19.2.3  在廣播接收程式中啟用活動 404
19.3  長期運行的接收程式和服務 404
19.3.1  長期運行的廣播接收程式協定 404
19.3.2  IntentService 405
19.3.3  IntentService原始碼 406
19.4  為廣播接收程式擴展IntentService 407
19.4.1  長期運行的廣播服務抽象 408
19.4.2  長期運行的接收程式 409
19.4.3  使用LightedGreenRoom抽象喚醒鎖 411
19.5  長期運行的服務的實現 416
19.5.1  非粘滯性服務的細節 417
19.5.2  粘滯性服務的細節 417
19.5.3  非粘滯性的變體:重傳送(redeliver)Intent 418
19.5.4  在onStartCommand中指定服務標誌 418
19.5.5  挑選合適的粘滯性 418
19.5.6  從兩個位置控制喚醒鎖 418
19.5.7  長期運行的服務的實現 419
19.5.8  測試長期運行的服務 420
19.5.9  開發者的職責 420
19.5.10  框架的職責 421
19.6  關於項目下載檔案的一些說明 421
19.7  參考資料 422
19.8  小結 422
19.9  面試問題 422
第20章  鬧鐘管理器 424
20.1  鬧鐘管理器基本知識:設定一個簡單的鬧鐘 424
20.1.1  獲取鬧鐘管理器人的訪問許可權 424
20.1.2  設定鬧鐘時間 424
20.1.3  創建鬧鐘接收程式 425
20.1.4  創建適合鬧鐘的PendingIntent 426
20.1.5  設定鬧鐘 427
20.1.6  測試項目 427
20.2  探索其他鬧鐘管理器場景 428
20.2.1  設定重複鬧鐘 428
20.2.2  取消鬧鐘 429
20.2.3  使用多個鬧鐘 430
20.2.4  Intent在設定鬧鐘時的首要職責 432
20.2.5  鬧鐘的持久化 434
20.3  鬧鐘管理器事實 434
20.4  參考資料 434
20.5  小結 435
20.6  面試問題 435
第21章  2D動畫揭秘 436
21.1  逐幀動畫 436
21.1.1  計畫逐幀動畫 436
21.1.2  創建活動 438
21.1.3  將動畫添加到活動 439
21.2  布局動畫 441
21.2.1  基本的補間動畫類型 442
21.2.2  計畫布局動畫測試工具 442
21.2.3  創建活動和ListView 443
21.2.4  將ListView製作成動畫 445
21.2.5  使用插值器 447
21.3  視圖動畫 449
21.3.1  理解視圖動畫 449
21.3.2  添加動畫 451
21.3.3  使用Camera實現2D圖像的深度效果 454
21.3.4  探索AnimationListener類 455
21.3.5  關於變換矩陣的一些說明 456
21.4  屬性動畫:新動畫API 457
21.4.1  屬性動畫 458
21.4.2  計畫一個屬性動畫的試驗台 459
21.4.3  使用對象動畫生成器創建基本視圖動畫 461
21.4.4  使用AnimatorSet實現順序動畫 462
21.4.5  用AnimatorSetBuilder設定動畫關係 463
21.4.6  使用XML載入動畫生成器 463
21.4.7  使用PropertyValuesHolder 464
21.4.8  視圖屬性動畫 466
21.4.9  類型求值器 466
21.4.10  關鍵幀 468
21.4.11  布局轉變 469
21.5  參考資料 470
21.6  小結 470
21.7  面試問題 471
第22章  地圖和基於位置的服務 472
22.1  地圖包 472
22.1.1  從谷歌獲取map-api密鑰 473
22.1.2  MapView和MapActivity 474
22.1.3  使用覆蓋圖添加標記 479
22.2  位置包 484
22.2.1  使用Android進行地理編碼 484
22.2.2  使用後台執行緒進行地理編碼 487
22.2.3  LocationManager服務 489
22.2.4  使用MyLocationOverlay顯示位置 495
22.2.5  使用接近提醒 498
22.3  參考資料 502
22.4  小結 502
22.5  面試問題 503
第23章  電話API 504
23.1  使用SMS 504
23.1.1  傳送SMS訊息 504
23.1.2  監視傳入的SMS訊息 507
23.1.3  使用SMS資料夾 509
23.1.4  傳送電子郵件 511
23.2  使用電話管理器 511
23.3  SIP 514
23.3.1  體驗SipDemo 514
23.3.2  android.net.sip包 515
23.4  參考資料 516
23.5  小結 517
23.6  面試問題 517
第24章  媒體框架 518
24.1  使用媒體API 518
24.2  播放媒體 522
24.2.1  播放音頻內容 522
24.2.2  播放視頻內容 532
24.3  錄製媒體 534
24.3.1  使用MediaRecorder錄製音頻 535
24.3.2  使用AudioRecord錄製音頻 538
24.3.3  視頻錄製 542
24.3.4  MediaStore類 551
24.3.5  使用Intnet錄製音頻 551
24.3.6  將媒體內容添加到媒體存儲 554
24.3.7  為整個SD卡觸發MediaScanner 556
24.4  參考資料 557
24.5  小結 557
24.6  面試問題 558
第25章  主螢幕部件 559
25.1  主螢幕部件的架構 559
25.1.1  什麼是主螢幕部件 559
25.1.2  主螢幕部件的用戶體驗 560
25.1.3  部件的生命周期 563
25.2  示例部件應用程式 567
25.2.1  定義部件提供程式 568
25.2.2  定義部件尺寸 569
25.2.3  與部件布局相關的檔案 570
25.2.4  實現部件提供程式 571
25.2.5  實現部件模型 573
25.2.6  實現部件配置活動 579
25.3  部件預覽工具 582
25.4  部件局限性和擴展 583
25.5  基於容器的部件 583
25.6  資源 583
25.7  小結 584
25.8  面試問題 584
第26章  列表部件 586
26.1  遠程視圖概述 586
26.2  在遠程視圖中使用列表 587
26.2.1  準備遠程布局 588
26.2.2  載入遠程布局 590
26.2.3  創建RemoteViewsService 591
26.2.4  創建RemoteViewsFactory 592
26.2.5  創建onClick事件 595
26.2.6  回響onClick事件 597
26.3  工作樣例:測試主螢幕列表部件 598
26.3.1  創建測試部件提供程式 599
26.3.2  創建遠程視圖工廠 602
26.3.3  編寫遠程視圖服務的代碼 604
26.3.4  部件主布局檔案 604
26.3.5  部件提供程式元數據 604
26.3.6  AndroidManifest.xml 605
26.4  測試列表部件 605
26.5  參考資料 607
26.6  小結 608
26.7  面試問題 608
第27章  觸控螢幕 609
27.1  MotionEvent 609
27.1.1  MotionEvent對象 609
27.1.2  回收MotionEvent 619
27.1.3  使用VelocityTracker 619
27.2  多點觸摸 621
27.3  觸摸地圖 627
27.4  手勢 629
27.4.1  捏合手勢 629
27.4.2  GestureDetector和OnGestureListener 629
27.4.3  自定義手勢 632
27.4.4  Gestures Builder應用程式 632
27.5  參考資料 638
27.6  小結 638
27.7  面試問題 638
第28章  實現拖放操作 640
28.1  拖放操作簡介 640
28.2  3.0及其以上版本的基本拖放操作 644
28.3  拖放操作示例應用程式 645
28.3.1  檔案列表 646
28.3.2  示例拖放應用程式的布局 646
28.3.3  回響Dropzone的onDrag事件 648
28.3.4  創建拖動源視圖 650
28.4  測試示例拖放應用程式 653
28.5  參考資料 654
28.6  小結 654
28.7  面試問題 654
第29章  感測器 655
29.1  什麼是感測器 655
29.1.1  檢測感測器 656
29.1.2  可以了解的感測器信息 656
29.2  獲取感測器事件 658
29.3  解釋感測器數據 661
29.3.1  光線感測器 661
29.3.2  接近感測器 661
29.3.3  溫度感測器 662
29.3.4  壓力感測器 662
29.3.5  陀螺儀感測器 662
29.3.6  加速度計 663
29.3.7  磁場感測器 667
29.3.8  結合使用加速度計和磁場感測器 668
29.3.9  方向感測器 668
29.3.10  磁偏角和Geomagnetic-Field 673
29.3.11  重力感測器 673
29.3.12  直線加速度感測器 674
29.3.13  旋轉矢量感測器 674
29.3.14  近場通信感測器 674
29.4  參考資料 683
29.5  小結 683
29.6  面試問題 684
第30章  聯繫人API 685
30.1  賬戶 685
30.1.1  賬戶螢幕概覽 686
30.1.2  賬戶與聯繫人的相關性 688
30.1.3  枚舉賬戶 689
30.2  聯繫人應用程式 689
30.2.1  個人賬號簡介 691
30.2.2  顯示聯繫人 692
30.2.3  顯示聯繫人詳細信息 692
30.2.4  編輯聯繫人詳細信息 693
30.2.5  設定聯繫人的照片 694
30.2.6  導出聯繫人 694
30.2.7  各種聯繫人數據類型 696
30.3  聯繫人 696
30.3.1  聯繫人SQLite資料庫 697
30.3.2  原始聯繫人 697
30.3.3  數據表 699
30.3.4  聚合聯繫人 700
30.3.5  view_contacts 701
30.3.6  contact_entities_view 702
30.4  聯繫人API 703
30.4.1  瀏覽賬戶 703
30.4.2  瀏覽聚合聯繫人 705
30.4.3  瀏覽原始聯繫人 712
30.4.4  瀏覽原始聯繫人數據 715
30.4.5  添加聯繫人和它的詳細信息 718
30.5  控制聚合 720
30.6  同步的影響 720
30.7  個人賬號 721
30.7.1  讀取賬號原始聯繫人 722
30.7.2  讀取賬號聯繫人數據 722
30.7.3  添加數據到個人賬號 723
30.8  參考資料 725
30.9  小結 725
30.10  面試問題 726
第31章  部署應用程式Android Market 727
31.1  成為發布者 727
31.1.1  遵守規則 728
31.1.2  開發人員控制台 729
31.2  準備銷售應用程式 731
31.2.1  針對不同設備進行測試 732
31.2.2  支持不同的螢幕尺寸 732
31.2.3  準備上傳AndroidManifest.xml 732
31.2.4  本地化應用程式 733
31.2.5  準備應用程式圖示 734
31.2.6  付費應用程式需要考慮的因素 734
31.2.7  將用戶引導至Market 735
31.2.8  Android授權服務 735
31.2.9  使用ProGuard來最佳化及對抗盜版行為 736
31.2.10  準備上傳.apk檔案 737
31.3  上傳應用程式 738
31.3.1  圖表 738
31.3.2  列出詳細信息 739
31.3.3  發布選項 739
31.3.4  聯繫信息 740
31.3.5  需遵守的規定 740
31.4  Android Market上的用戶體驗 741
31.5  更多發布途徑 742
31.6  參考資料 742
31.7  小結 743
31.8  面試問題 743

相關詞條

相關搜尋

熱門詞條

聯絡我們