瘋狂Android講義(Kotlin版)

瘋狂Android講義(Kotlin版)

《瘋狂Android講義(Kotlin版)》是2018年6月電子工業出版社出版的圖書,作者是李剛。

基本介紹

  • 書名:瘋狂Android講義(Kotlin版)
  • 作者:李剛
  • 出版社:電子工業出版社
  • 出版時間:2018年6月
  • 頁數:752 頁
  • 定價:108 元
  • 開本:16 開
  • ISBN:9787121342370
內容簡介,作者簡介,圖書目錄,

內容簡介

本書是《瘋狂Android講義》的Koltin版,基於《瘋狂Android講義(第3版)》升級而來。本書基於最新的Android 8.0,並採用了Google推薦的IDE:Android Studio作為開發工具,書中每個案例、每個截圖都全面升級到Android 8.0。本書全面地介紹了Android套用開發的相關知識,全書內容覆蓋了Android用戶界面編程、Android四大組件、Android資源訪問、圖形/圖像處理、事件處理機制、Android輸入/輸出處理、音頻/視頻多媒體套用開發、OpenGL與3D套用開發、網路通信編程、Android整合RESTful服務端、感測器套用開發、GPS套用開發、整合第三方Map服務等。本書並不局限於介紹Android編程的各種理論知識,而是從“鴉斷炒項目驅動”的角度來講授理論。全書一共包括近百個實例,這些示範性的實例既可幫讀者更好地理解各知識點在實際開發中的套用,也可供讀者在實際開發時作為參考、拿來就用。本書最後還提供了兩個實用的案例:合金彈頭和電子拍賣系統Android客戶端(基於主流的RESTful服務端),具有極高的參考價值。本書提供了配套的答疑網站,如果讀者在閱讀本書時遇到了技術問題,可以登錄瘋狂Java聯盟發帖,筆者將會及時予以解答。

作者簡介

李剛,十餘年軟體開發從業經驗,瘋狂軟體教育中心教學總監。瘋狂Java實訓營創始人,瘋狂Java體系原創圖書作者。CSDN特邀講師,51CTO專家門診特和促龍危邀嘉賓。國內知名高端IT技術圖書作家,已出版《瘋狂Java講義》《瘋充整狂Android講義》《輕量級JavaEE企業套用實戰》《瘋狂Kotlin講義》《瘋狂前端開發講義》《瘋狂HTML5/CSS3/JavaScript講義》《瘋狂XML講義》《經典JavaEE企業套用實戰》等著作。仔漿甩其中瘋狂Java體系圖書均已沉澱多年,贏得極高的市場認同,多次重印,多部著作印刷數量超過10萬冊,並被多所“985”“211”院校選作教材,部分圖書已被翻譯成繁體中文版,授烏蒸妹權到中國台灣地區。

圖書目錄

第1章 Android套用和開膠膠禁市發環境 1
1.1 Android的發展和歷史 2
1.1.1 Android的發展和簡介 2
1.1.2 Android 8.x平台架構及特性 3
1.2 使用Gradle自動化構建項目 5
1.2.1 下載和安裝Gradle 5
1.2.2 Gradle構建檔案和創建任務 6
1.2.3 Gradle的屬性定義 11
1.2.4 增量式構建 14
1.2.5 Gradle外掛程式和java、application等外掛程式 15
1.2.6 依賴管理 17
1.2.7 自定義任務 20
1.2.8 自定義外掛程式 22
1.3 搭建Android開發環境 24
1.3.1 安裝Android Studio 24
1.3.2 下載和安裝Android SDK 29
1.3.3 安裝過程中常見的錯誤 31
1.3.4 安裝運行、調試環境 32
1.4 Android常用開發工具的用法 39
1.4.1 使用Monitor進行調試 39
1.4.2 Android Debug Bridge的用法 41
1.4.3 使用mksdcard管理虛擬SD卡 42
1.5 開始第一個Android套用 42
1.5.1 使用Android Studio開發第一個Android套用 42
1.5.2 通過Android Studio運行Android套用 45
1.6 Android套用結構分析 46
1.6.1 Android項目結構分析 47
1.6.2 自動生成的R.java 49
1.6.3 res目錄說明 50
1.6.4 Android套用的清單檔案:AndroidManifest.xml 51
1.6.5 應用程式許可權說明 52
1.7 Android套用的基祖局棵本組件介紹 53
1.7.1 Activity和View 53
1.7.2 Service 53
1.7.3 BroadcastReceiver 54
1.7.4 ContentProvider 54
1.7.5 Intent和IntentFilter 54
1.8 使用Android 8的簽名APK 55
1.8.1 使用Android Studio對Android套用簽名 56
1.8.2 使用Android 8的命令對APK簽名 57
1.9 本章小結 58
第2章 Android套用的界面編程 59
2.1 界面編程與視圖(View)組件 60
2.1.1 視圖組件與容器組件 60
2.1.2 使用XML布局檔案控制UI界面 66
2.1.3 在代碼中控制UI界面 66
實例:用編程的方式開發UI界面 66
2.1.4 使用XML布局檔案和代碼混合控制UI界面 67
實例:簡單圖片瀏覽器 68
2.1.5 開發自定義View 69
實例:跟隨手指的小球 70
2.2 第1組UI組件:布局管理器 72
2.2.1 線性布局 73
2.2.2 表格布局 74
實例:豐富的表格布局 75
2.2.3 幀布局 77
實例:霓虹燈效果 79
2.2.4 相對布局 80
實例:梅花布局效果 81
2.2.5 格線布局 82
實例:計算器界面 83
2.2.6 絕對布局 84
2.2.7 Android 8的約束布局 85
2.3 第2組UI組件:TextView及其子類 89
2.3.1 文本框(TextView)和編輯框(EditText)的功能與用法 89
實例:功能豐富的文本框 93
2.3.2 EditText的功能與用法 95
2.3.3 按鈕(Button)組件的功能與用法 95
實例:按鈕、圓形按鈕、帶文字的圖片按鈕 96
2.3.4 使用9Patch圖片作為背景 97
2.3.5 單選鈕(RadioButton)和複選框(CheckBox)的功能與用法 98
實例:利用單選鈕、複選框獲取用戶信息 98
2.3.6 狀態開關按鈕(ToggleButton)和開關(Switch)的功能與用法 100
實例:動態控制布局 101
2.3.7 時鐘(AnalogClock和TextClock)的功能與用法 102
實例:手機里的“勞力士” 103
2.3.8 計時器(Chronometer) 104
2.4 第3組UI組件:ImageView及其子類 104
實例:圖片瀏覽器 106
實例:強大的圖片按鈕 108
實例:使用QuickContactBadge關聯聯繫人 109
2.5 第4組UI組件:AdapterView及子類 111
2.5.1 列表視圖(ListView)和ListActivity 111
實例:改變分隔條、基於數組的ListView 112
2.5.2 Adapter接口及實現類 113
實例:使用ArrayAdapter創建ListView 114
實例:使用SimpleAdapter創建ListView 116
實例:擴展BaseAdapter實現不存儲列表項的ListView 119
2.5.3 自動完成文本框(AutoCompleteTextView)的功能與用法 120
2.5.4 格線視圖(GridView)的功能與用法 122
實例:帶預覽的圖片瀏覽器 123
2.5.5 可展開的列表組件(ExpandableListView) 125
2.5.6 Spinner的功能與用法 128
2.5.7 AdapterViewFlipper的功能與用法 129
實例:自動播放的圖片庫 129
2.5.8 StackView的功能與用法 132
實例:疊在一起的圖片 132
2.6 第5組UI組件:ProgressBar及其子類 134
2.6.1 進度條(ProgressBar)的功能與用法 134
2.6.2 拖動條(SeekBar)的功能與用法 137
實例:通過拖動滑塊來改變圖片的透明度 138
2.6.3 星級評分條(RatingBar)的功能與用法 139
實例:通過星級改變圖片的透明度 139
2.7 第6組UI組件:ViewAnimator及其子類 140
2.7.1 ViewSwitcher的功能與用法 141
實例:仿Android系統的Launcher界面 141
2.7.2 圖像切換器(ImageSwitcher)的功能與用法 145
實例:支持動畫的圖片瀏覽器 145
2.7.3 文本切換器(TextSwitcher)的功能與用法 147
2.7.4 ViewFlipper的功能與用法 147
實例:自動播放的圖片庫 148
2.8 各種雜項組件 149
2.8.1 使用Toast顯示提示信息框 150
實例:帶圖片的訊息提示 150
2.8.2 日曆視圖(CalendarView)組件的功能與用法 151
實例:選擇您的生日 152
2.8.3 日期、時間選擇器(DatePicker和TimePicker)的功能與用法 153
實例:用戶選擇日期、時間 154
2.8.4 數值選擇器(NumberPicker)的功能與用法 156
實例:選擇您意向的價格範圍 156
2.8.5 搜尋框(SearchView)的功能與用法 157
實例:搜尋 158
2.8.6 選項卡(TabHost)的功能和用法 159
2.8.7 滾動視圖(ScrollView)的功能與用法 160
實例:可垂直和水平滾動的視圖 160
2.8.8 Android 8的通知和通知Channel 161
實例:加薪通知 162
2.9 第7組UI組件:對話框 164
2.9.1 使用AlertDialog創建對話框 164
實例:顯示提示訊息的對話框 165
實例:簡單列表項對話框 166
實例:單選列表項對話框 166
實例:多選列表項對話框 167
實例:自定義列表項對話框 168
實例:自定義View對話框 168
2.9.2 對話框風格的視窗 169
2.9.3 使用PopupWindow 170
2.9.4 使用DatePickerDialog、TimePickerDialog 171
2.9.5 使用ProgressDialog創建進度對話框 172
2.10 選單 173
2.10.1 選項選單和子選單(SubMenu) 173
2.10.2 使用監聽器來監聽選單事件 176
2.10.3 創建多選選單項和單選選單項 176
2.10.4 設定與選單項關聯的Activity 177
2.10.5 上下文選單 178
2.10.6 使用XML檔案定義選單 179
實例:使用XML資源檔案定義選單 180
2.10.7 使用PopupMenu創建彈出式選單 183
2.11 使用活動條(ActionBar) 184
2.11.1 啟用ActionBar 184
2.11.2 使用ActionBar顯示選項選單項 185
2.11.3 啟用程式圖示導航 187
2.11.4 添加Action View 189
實例:“標題”上的時鐘 189
2.11.5 使用ActionBar實現Tab導航 189
實例:ActionBar結合Fragment實現Tab導航 190
2.11.6 使用ActionBar實現下拉式導航 192
實例:ActionBar結合Fragment實現下拉式導航 192
2.12 本章小結 194
第3章 Android的事件機制 195
3.1 Android事件處理概述 196
3.2 基於監聽的事件處理 196
3.2.1 監聽的處理模型 196
3.2.2 事件和事件監聽器 199
實例:控制飛機移動 199
3.2.3 內部類作為事件監聽器類 202
3.2.4 外部類作為事件監聽器類 202
3.2.5 Activity本身作為事件監聽器類 203
3.2.6 Lambda表達式作為事件監聽器類 204
3.2.7 直接綁定到標籤 204
3.3 基於回調的事件處理 205
3.3.1 回調機制與監聽機制 205
3.3.2 基於回調的事件傳播 207
3.4 回響系統設定的事件 208
3.4.1 Configuration類簡介 209
實例:獲取系統設備狀態 209
3.4.2 重寫onConfigurationChanged方法回響系統設定更改 210
實例:監聽螢幕方向的改變 211
3.5 Handler訊息傳遞機制 212
3.5.1 Handler類簡介 213
實例:自動播放動畫 213
3.5.2 Handler、Loop、MessageQueue的工作原理 214
實例:使用新執行緒計算質數 216
3.6 異步任務(AsyncTask) 218
實例:使用異步任務執行下載 219
3.7 本章小結 220
第4章 深入理解Activity與Fragment 221
4.1 建立、配置和使用Activity 222
4.1.1 高級Activity 222
實例:用LauncherActivity開發啟動Activity的列表 223
實例:使用ExpandableListActivity實現可展開的Activity 224
實例:PreferenceActivity結合PreferenceFragment實現參數設定界面 224
4.1.2 配置Activity 228
4.1.3 啟動、關閉Activity 230
4.1.4 使用Bundle在Activity之間交換數據 232
實例:用第二個Activity處理註冊信息 233
4.1.5 啟動其他Activity並返回結果 235
實例:用第二個Activity讓用戶選擇信息 236
4.2 Activity的回調機制 238
4.3 Activity的生命周期 239
4.3.1 Activity的生命周期演示 239
4.3.2 Activity與Servlet的相似性和區別 242
4.4 Activity的4種載入模式 243
4.4.1 standard模式 243
4.4.2 singleTop模式 244
4.4.3 singleTask模式 245
4.4.4 singleInstance模式 246
4.5 Fragment詳解 248
4.5.1 Fragment概述及其設計初衷 248
4.5.2 創建Fragment 249
實例:開發顯示圖書詳情的Fragment 250
實例:創建ListFragment 251
4.5.3 Fragment與Activity通信 253
4.5.4 Fragment管理與Fragment事務 254
實例:開發兼顧螢幕解析度的套用 255
4.6 Fragment的生命周期 258
4.7 本章小結 262
第5章 使用Intent和IntentFilter通信 263
5.1 Intent對象簡述 264
5.2 Intent的屬性及intent-filter配置 265
5.2.1 Component屬性 265
5.2.2 Action、Category屬性與intent-filter配置 267
5.2.3 指定Action、Category調用系統Activity 271
實例:查看並獲取聯繫人電話 272
實例:返回系統Home桌面 275
5.2.4 Data、Type屬性與intent-filter配置 275
實例:使用Action、Data屬性啟動系統Activity 281
5.2.5 Extra屬性 283
5.2.6 Flag屬性 283
5.3 本章小結 284
第6章 Android套用資源 285
6.1 套用資源概述 286
6.1.1 資源的類型及存儲方式 286
6.1.2 使用資源 287
6.2 字元串、顏色、尺寸資源 289
6.2.1 顏色值的定義 289
6.2.2 定義字元串、顏色、尺寸資源檔案 290
6.2.3 使用字元串、顏色、尺寸資源 291
6.3 數組(Array)資源 293
6.4 使用Drawable資源 295
6.4.1 圖片資源 296
6.4.2 StateListDrawable資源 296
實例:高亮顯示正在輸入的文本框 297
6.4.3 LayerDrawable資源 298
實例:定製拖動條的外觀 298
6.4.4 ShapeDrawable資源 299
實例:橢圓形、漸變背景的文本框 300
6.4.5 ClipDrawable資源 301
實例:徐徐展開的風景 302
6.4.6 AnimationDrawable資源 303
6.5 屬性動畫(Property Animation)資源 305
實例:不斷漸變的背景色 306
6.6 使用原始XML資源 307
6.6.1 定義原始XML資源 307
6.6.2 使用原始XML檔案 308
6.7 使用布局(Layout)資源 309
6.8 使用選單(Menu)資源 310
6.9 樣式(Style)和主題(Theme)資源 310
6.9.1 樣式資源 310
6.9.2 主題資源 312
實例:給所有視窗添加框線、背景 312
6.10 屬性(Attribute)資源 313
6.11 使用原始資源 316
6.12 國際化 317
6.12.1 為Android套用提供國際化資源 317
6.12.2 國際化Android套用 318
6.13 自適應不同螢幕的資源 320
6.14 本章小結 323
第7章 圖形與圖像處理 324
7.1 使用簡單圖片 325
7.1.1 使用Drawable對象 325
7.1.2 Bitmap和BitmapFactory 325
7.2 繪圖 327
7.2.1 Android繪圖基礎:Canvas、Paint等 327
7.2.2 Path類 331
7.2.3 繪製遊戲動畫 334
實例:採用雙緩衝實現畫圖板 334
實例:彈球遊戲 338
7.3 圖形特效處理 341
7.3.1 使用Matrix控制變換 341
7.3.2 使用drawBitmapMesh扭曲圖像 343
實例:可揉動的圖片 344
7.3.3 使用Shader填充圖形 346
7.4 逐幀(Frame)動畫 347
7.4.1 AnimationDrawable與逐幀動畫 347
7.4.2 實例:在指定點爆炸 349
7.5 補間(Tween)動畫 351
7.5.1 Tween動畫與Interpolator 351
7.5.2 位置、大小、旋轉度、透明度改變的補間動畫 352
實例:蝴蝶飛舞 354
7.5.3 自定義補間動畫 356
7.6 Android 8增強的屬性動畫 359
7.6.1 屬性動畫的API 359
7.6.2 使用屬性動畫 361
實例:大珠小珠落玉盤 365
7.7 使用SurfaceView實現動畫 369
7.7.1 SurfaceView的繪圖機制 369
7.7.2 實例:基於SurfaceView開發示波器 372
7.8 本章小結 374
第8章 Android數據存儲與IO 375
8.1 使用SharedPreferences 376
8.1.1 SharedPreferences與Editor簡介 376
8.1.2 SharedPreferences的存儲位置和格式 377
實例:記錄應用程式的使用次數 378
8.2 File存儲 379
8.2.1 openFileOutput和openFileInput 379
8.2.2 讀寫SD卡上的檔案 381
實例:SD卡檔案瀏覽器 384
8.3 SQLite資料庫 387
8.3.1 SQLiteDatabase簡介 387
8.3.2 創建資料庫和表 388
8.3.3 SQLiteOpenHelper類 389
8.3.4 使用SQL語句操作SQLite資料庫 390
8.3.5 使用sqlite3工具 392
8.3.6 使用特定方法操作SQLite資料庫 393
8.3.7 事務 396
8.3.8 SQLite資料庫最佳實踐建議 396
8.4 手勢(Gesture) 397
8.4.1 手勢檢測 397
實例:通過手勢縮放圖片 399
實例:通過手勢實現翻頁效果 400
8.4.2 增加手勢 402
8.4.3 識別用戶手勢 405
8.5 讓套用說話(TTS) 407
8.6 本章小結 410
第9章 使用ContentProvider實現數據共享 411
9.1 數據共享標準:ContentProvider 412
9.1.1 ContentProvider簡介 412
9.1.2 Uri簡介 413
9.1.3 使用ContentResolver運算元據 414
9.2 開發ContentProvider 415
9.2.1 ContentProvider與ContentResolver的關係 415
9.2.2 開發ContentProvider子類 416
9.2.3 配置ContentProvider 417
9.2.4 使用ContentResolver調用方法 418
9.2.5 創建ContentProvider的說明 420
實例:使用ContentProvider共享單詞數據 421
9.3 作業系統的ContentProvider 426
9.3.1 使用ContentProvider管理聯繫人 426
9.3.2 使用ContentProvider管理多媒體內容 431
9.4 監聽ContentProvider的數據改變 434
9.4.1 ContentObserver簡介 434
9.4.2 實例:監聽用戶發出的簡訊 435
9.5 本章小結 437
第10章 Service與BroadcastReceiver 438
10.1 Service簡介 439
10.1.1 創建、配置Service 439
10.1.2 啟動和停止Service 441
10.1.3 綁定本地Service並與之通信 442
10.1.4 Service的生命周期 446
10.1.5 使用IntentService 447
10.2 跨進程調用Service(AIDL Service) 449
10.2.1 AIDL Service簡介 450
10.2.2 創建AIDL檔案 450
10.2.3 將接口暴露給客戶端 451
10.2.4 客戶端訪問AIDL Service 452
實例:傳遞複雜數據的AIDL Service 453
10.3 電話管理器(TelephonyManager) 458
實例:獲取網路和SIM卡信息 458
實例:監聽手機來電 460
10.4 簡訊管理器(SmsManager) 461
實例:傳送簡訊 461
實例:簡訊群發 462
10.5 音頻管理器(AudioManager) 465
10.5.1 AudioManager簡介 465
10.5.2 實例:使用AudioManager控制手機音頻 465
10.6 振動器(Vibrator) 466
10.6.1 Vibrator簡介 466
10.6.2 使用Vibrator控制手機振動 467
10.7 手機鬧鐘服務(AlarmManager) 468
10.7.1 AlarmManager簡介 468
10.7.2 設定鬧鐘 468
實例:定時更換壁紙 470
10.8 Android 8的廣播接收器 472
10.8.1 BroadcastReceiver簡介 472
10.8.2 傳送廣播 474
10.8.3 有序廣播 475
實例:基於Service的音樂播放器 477
10.9 接收系統廣播訊息 481
實例:Android 8中開機自動運行的限制 482
實例:手機電量提示 483
10.10 本章小結 484
第11章 多媒體套用開發 485
11.1 音頻和視頻的播放 486
11.1.1 Android 8增強的MediaPlayer 486
11.1.2 音樂特效控制 490
實例:音樂的示波器、均衡、重低音和音場 491
11.1.3 Android 8新增的VolumeShaper 498
11.1.4 使用SoundPool播放音效 499
11.1.5 使用VideoView播放視頻 501
11.1.6 使用MediaPlayer和SurfaceView播放視頻 503
11.2 使用MediaRecorder錄製音頻 506
實例:錄製音樂 507
11.3 控制攝像頭拍照 509
11.3.1 使用Camera v2拍照 509
實例:拍照時自動對焦 510
11.3.2 錄製視頻短片 516
實例:錄製生活短片 516
11.4 螢幕捕捉 520
11.5 本章小結 522
第12章 OpenGL與3D開發 523
12.1 3D圖形與3D開發的基本知識 524
12.2 OpenGL和OpenGL ES簡介 525
12.3 繪製2D圖形 526
12.3.1 在Android套用中使用OpenGL ES 526
12.3.2 繪製平面上的多邊形 528
12.3.3 旋轉 534
12.4 繪製3D圖形 537
12.4.1 構建3D圖形 537
12.4.2 套用紋理貼圖 541
12.5 本章小結 546
第13章 Android網路套用 547
13.1 基於TCP協定的網路通信 548
13.1.1 TCP協定基礎 548
13.1.2 使用ServerSocket創建TCP伺服器端 549
13.1.3 使用Socket進行通信 550
13.1.4 加入多執行緒 553
13.2 使用URL訪問網路資源 558
13.2.1 使用URL讀取網路資源 559
13.2.2 使用URLConnection提交請求 560
13.3 使用HTTP訪問網路 565
13.3.1 使用HttpURLConnection 565
實例:多執行緒下載 565
13.3.2 使用OkHttp 570
實例:訪問被保護資源 571
13.4 使用WebView進行混合開發 575
13.4.1 使用WebView瀏覽網頁 575
實例:迷你瀏覽器 575
13.4.2 使用WebView載入HTML代碼 577
13.4.3 使用WebView中的JavaScript調用Android方法 578
13.5 本章小結 580
第14章 管理Android系統桌面 581
14.1 改變壁紙 582
14.1.1 開發動態壁紙(Live Wallpapers) 582
14.1.2 實例:蜿蜒壁紙 583
14.2 Android 8的捷徑 587
14.2.1 靜態捷徑 587
14.2.2 動態捷徑 588
14.2.3 Android 8的桌面捷徑(Pinned Shortcut) 590
實例:讓程式占領桌面 591
14.3 管理桌面控制項 592
14.3.1 開發桌面控制項 592
實例:液晶時鐘 594
14.3.2 顯示帶數據集的桌面控制項 596
14.4 本章小結 599
第15章 感測器套用開發 600
15.1 利用Android的感測器 601
15.2 Android的常用感測器 603
15.2.1 方向感測器 603
15.2.2 陀螺儀感測器 604
15.2.3 磁場感測器 604
15.2.4 重力感測器 604
15.2.5 線性加速度感測器 605
15.2.6 溫度感測器 605
15.2.7 光感測器 605
15.2.8 濕度感測器 605
15.2.9 壓力感測器 605
15.2.10 心率感測器 605
15.2.11 Android 8的離身檢查感測器 605
15.3 感測器套用案例 609
實例:指南針 609
實例:水平儀 611
15.4 本章小結 614
第16章 GPS套用開發 615
16.1 支持GPS的核心API 616
16.2 獲取LocationProvider 618
16.2.1 獲取所有可用的LocationProvider 618
16.2.2 通過名稱獲得指定LocationProvider 619
16.2.3 根據Criteria獲得LocationProvider 619
16.3 獲取定位信息 620
16.3.1 通過模擬器傳送GPS信息 620
16.3.2 獲取定位數據 620
16.4 臨近警告 622
16.5 本章小結 624
第17章 整合高德Map服務 625
17.1 調用高德Map服務 626
17.1.1 獲取Map API Key 626
17.1.2 高德地圖入門 628
17.2 根據GPS信息在地圖上定位 632
17.3 執行定位 638
17.3.1 地址解析與反向地址解析 638
17.3.2 根據地址執行定位 641
17.4 GPS導航 643
17.5 本章小結 647
第18章 合金彈頭 648
18.1 合金彈頭遊戲簡介 649
18.2 開發遊戲界面組件 649
18.2.1 遊戲界面分析 649
18.2.2 實現“怪物”類 650
18.2.3 實現怪物管理類 657
18.2.4 實現“子彈”類 661
18.2.5 實現“角色”類 663
18.3 實現繪圖工具類 668
18.4 載入、管理遊戲圖片 673
18.5 實現遊戲界面 676
18.5.1 實現遊戲Activity 676
18.5.2 實現主視圖 678
18.6 本章小結 686
第19章 電子拍賣系統 687
19.1 系統功能簡介和架構設計 688
19.1.1 系統功能簡介 688
19.1.2 系統架構設計 689
19.2 JSON簡介 690
19.2.1 使用JSON語法創建對象 691
19.2.2 使用JSON語法創建數組 692
19.2.3 Android的JSON支持 693
19.3 傳送請求的工具類 693
19.4 用戶登錄 695
19.4.1 處理登錄的接口 695
19.4.2 用戶登錄客戶端 696
19.5 查看流拍物品 704
19.5.1 查看流拍物品的接口 704
19.5.2 查看流拍物品客戶端 705
19.6 管理物品種類 709
19.6.1 瀏覽物品種類的接口 710
19.6.2 查看物品種類 710
19.6.3 添加種類的接口 714
19.6.4 添加物品種類 715
19.7 管理拍賣物品 716
19.7.1 查看自己的拍賣物品的接口 717
19.7.2 查看自己的拍賣物品 717
19.7.3 添加拍賣物品的接口 721
19.7.4 添加拍賣物品 721
19.8 參與競拍 727
19.8.1 選擇物品種類 727
19.8.2 根據種類瀏覽物品的伺服器端接口 728
19.8.3 根據種類瀏覽物品 729
19.8.4 參與競價的伺服器端接口 730
19.8.5 參與競價 731
19.9 許可權控制 736
19.10 本章小結 737"
1.2.6 依賴管理 17
1.2.7 自定義任務 20
1.2.8 自定義外掛程式 22
1.3 搭建Android開發環境 24
1.3.1 安裝Android Studio 24
1.3.2 下載和安裝Android SDK 29
1.3.3 安裝過程中常見的錯誤 31
1.3.4 安裝運行、調試環境 32
1.4 Android常用開發工具的用法 39
1.4.1 使用Monitor進行調試 39
1.4.2 Android Debug Bridge的用法 41
1.4.3 使用mksdcard管理虛擬SD卡 42
1.5 開始第一個Android套用 42
1.5.1 使用Android Studio開發第一個Android套用 42
1.5.2 通過Android Studio運行Android套用 45
1.6 Android套用結構分析 46
1.6.1 Android項目結構分析 47
1.6.2 自動生成的R.java 49
1.6.3 res目錄說明 50
1.6.4 Android套用的清單檔案:AndroidManifest.xml 51
1.6.5 應用程式許可權說明 52
1.7 Android套用的基本組件介紹 53
1.7.1 Activity和View 53
1.7.2 Service 53
1.7.3 BroadcastReceiver 54
1.7.4 ContentProvider 54
1.7.5 Intent和IntentFilter 54
1.8 使用Android 8的簽名APK 55
1.8.1 使用Android Studio對Android套用簽名 56
1.8.2 使用Android 8的命令對APK簽名 57
1.9 本章小結 58
第2章 Android套用的界面編程 59
2.1 界面編程與視圖(View)組件 60
2.1.1 視圖組件與容器組件 60
2.1.2 使用XML布局檔案控制UI界面 66
2.1.3 在代碼中控制UI界面 66
實例:用編程的方式開發UI界面 66
2.1.4 使用XML布局檔案和代碼混合控制UI界面 67
實例:簡單圖片瀏覽器 68
2.1.5 開發自定義View 69
實例:跟隨手指的小球 70
2.2 第1組UI組件:布局管理器 72
2.2.1 線性布局 73
2.2.2 表格布局 74
實例:豐富的表格布局 75
2.2.3 幀布局 77
實例:霓虹燈效果 79
2.2.4 相對布局 80
實例:梅花布局效果 81
2.2.5 格線布局 82
實例:計算器界面 83
2.2.6 絕對布局 84
2.2.7 Android 8的約束布局 85
2.3 第2組UI組件:TextView及其子類 89
2.3.1 文本框(TextView)和編輯框(EditText)的功能與用法 89
實例:功能豐富的文本框 93
2.3.2 EditText的功能與用法 95
2.3.3 按鈕(Button)組件的功能與用法 95
實例:按鈕、圓形按鈕、帶文字的圖片按鈕 96
2.3.4 使用9Patch圖片作為背景 97
2.3.5 單選鈕(RadioButton)和複選框(CheckBox)的功能與用法 98
實例:利用單選鈕、複選框獲取用戶信息 98
2.3.6 狀態開關按鈕(ToggleButton)和開關(Switch)的功能與用法 100
實例:動態控制布局 101
2.3.7 時鐘(AnalogClock和TextClock)的功能與用法 102
實例:手機里的“勞力士” 103
2.3.8 計時器(Chronometer) 104
2.4 第3組UI組件:ImageView及其子類 104
實例:圖片瀏覽器 106
實例:強大的圖片按鈕 108
實例:使用QuickContactBadge關聯聯繫人 109
2.5 第4組UI組件:AdapterView及子類 111
2.5.1 列表視圖(ListView)和ListActivity 111
實例:改變分隔條、基於數組的ListView 112
2.5.2 Adapter接口及實現類 113
實例:使用ArrayAdapter創建ListView 114
實例:使用SimpleAdapter創建ListView 116
實例:擴展BaseAdapter實現不存儲列表項的ListView 119
2.5.3 自動完成文本框(AutoCompleteTextView)的功能與用法 120
2.5.4 格線視圖(GridView)的功能與用法 122
實例:帶預覽的圖片瀏覽器 123
2.5.5 可展開的列表組件(ExpandableListView) 125
2.5.6 Spinner的功能與用法 128
2.5.7 AdapterViewFlipper的功能與用法 129
實例:自動播放的圖片庫 129
2.5.8 StackView的功能與用法 132
實例:疊在一起的圖片 132
2.6 第5組UI組件:ProgressBar及其子類 134
2.6.1 進度條(ProgressBar)的功能與用法 134
2.6.2 拖動條(SeekBar)的功能與用法 137
實例:通過拖動滑塊來改變圖片的透明度 138
2.6.3 星級評分條(RatingBar)的功能與用法 139
實例:通過星級改變圖片的透明度 139
2.7 第6組UI組件:ViewAnimator及其子類 140
2.7.1 ViewSwitcher的功能與用法 141
實例:仿Android系統的Launcher界面 141
2.7.2 圖像切換器(ImageSwitcher)的功能與用法 145
實例:支持動畫的圖片瀏覽器 145
2.7.3 文本切換器(TextSwitcher)的功能與用法 147
2.7.4 ViewFlipper的功能與用法 147
實例:自動播放的圖片庫 148
2.8 各種雜項組件 149
2.8.1 使用Toast顯示提示信息框 150
實例:帶圖片的訊息提示 150
2.8.2 日曆視圖(CalendarView)組件的功能與用法 151
實例:選擇您的生日 152
2.8.3 日期、時間選擇器(DatePicker和TimePicker)的功能與用法 153
實例:用戶選擇日期、時間 154
2.8.4 數值選擇器(NumberPicker)的功能與用法 156
實例:選擇您意向的價格範圍 156
2.8.5 搜尋框(SearchView)的功能與用法 157
實例:搜尋 158
2.8.6 選項卡(TabHost)的功能和用法 159
2.8.7 滾動視圖(ScrollView)的功能與用法 160
實例:可垂直和水平滾動的視圖 160
2.8.8 Android 8的通知和通知Channel 161
實例:加薪通知 162
2.9 第7組UI組件:對話框 164
2.9.1 使用AlertDialog創建對話框 164
實例:顯示提示訊息的對話框 165
實例:簡單列表項對話框 166
實例:單選列表項對話框 166
實例:多選列表項對話框 167
實例:自定義列表項對話框 168
實例:自定義View對話框 168
2.9.2 對話框風格的視窗 169
2.9.3 使用PopupWindow 170
2.9.4 使用DatePickerDialog、TimePickerDialog 171
2.9.5 使用ProgressDialog創建進度對話框 172
2.10 選單 173
2.10.1 選項選單和子選單(SubMenu) 173
2.10.2 使用監聽器來監聽選單事件 176
2.10.3 創建多選選單項和單選選單項 176
2.10.4 設定與選單項關聯的Activity 177
2.10.5 上下文選單 178
2.10.6 使用XML檔案定義選單 179
實例:使用XML資源檔案定義選單 180
2.10.7 使用PopupMenu創建彈出式選單 183
2.11 使用活動條(ActionBar) 184
2.11.1 啟用ActionBar 184
2.11.2 使用ActionBar顯示選項選單項 185
2.11.3 啟用程式圖示導航 187
2.11.4 添加Action View 189
實例:“標題”上的時鐘 189
2.11.5 使用ActionBar實現Tab導航 189
實例:ActionBar結合Fragment實現Tab導航 190
2.11.6 使用ActionBar實現下拉式導航 192
實例:ActionBar結合Fragment實現下拉式導航 192
2.12 本章小結 194
第3章 Android的事件機制 195
3.1 Android事件處理概述 196
3.2 基於監聽的事件處理 196
3.2.1 監聽的處理模型 196
3.2.2 事件和事件監聽器 199
實例:控制飛機移動 199
3.2.3 內部類作為事件監聽器類 202
3.2.4 外部類作為事件監聽器類 202
3.2.5 Activity本身作為事件監聽器類 203
3.2.6 Lambda表達式作為事件監聽器類 204
3.2.7 直接綁定到標籤 204
3.3 基於回調的事件處理 205
3.3.1 回調機制與監聽機制 205
3.3.2 基於回調的事件傳播 207
3.4 回響系統設定的事件 208
3.4.1 Configuration類簡介 209
實例:獲取系統設備狀態 209
3.4.2 重寫onConfigurationChanged方法回響系統設定更改 210
實例:監聽螢幕方向的改變 211
3.5 Handler訊息傳遞機制 212
3.5.1 Handler類簡介 213
實例:自動播放動畫 213
3.5.2 Handler、Loop、MessageQueue的工作原理 214
實例:使用新執行緒計算質數 216
3.6 異步任務(AsyncTask) 218
實例:使用異步任務執行下載 219
3.7 本章小結 220
第4章 深入理解Activity與Fragment 221
4.1 建立、配置和使用Activity 222
4.1.1 高級Activity 222
實例:用LauncherActivity開發啟動Activity的列表 223
實例:使用ExpandableListActivity實現可展開的Activity 224
實例:PreferenceActivity結合PreferenceFragment實現參數設定界面 224
4.1.2 配置Activity 228
4.1.3 啟動、關閉Activity 230
4.1.4 使用Bundle在Activity之間交換數據 232
實例:用第二個Activity處理註冊信息 233
4.1.5 啟動其他Activity並返回結果 235
實例:用第二個Activity讓用戶選擇信息 236
4.2 Activity的回調機制 238
4.3 Activity的生命周期 239
4.3.1 Activity的生命周期演示 239
4.3.2 Activity與Servlet的相似性和區別 242
4.4 Activity的4種載入模式 243
4.4.1 standard模式 243
4.4.2 singleTop模式 244
4.4.3 singleTask模式 245
4.4.4 singleInstance模式 246
4.5 Fragment詳解 248
4.5.1 Fragment概述及其設計初衷 248
4.5.2 創建Fragment 249
實例:開發顯示圖書詳情的Fragment 250
實例:創建ListFragment 251
4.5.3 Fragment與Activity通信 253
4.5.4 Fragment管理與Fragment事務 254
實例:開發兼顧螢幕解析度的套用 255
4.6 Fragment的生命周期 258
4.7 本章小結 262
第5章 使用Intent和IntentFilter通信 263
5.1 Intent對象簡述 264
5.2 Intent的屬性及intent-filter配置 265
5.2.1 Component屬性 265
5.2.2 Action、Category屬性與intent-filter配置 267
5.2.3 指定Action、Category調用系統Activity 271
實例:查看並獲取聯繫人電話 272
實例:返回系統Home桌面 275
5.2.4 Data、Type屬性與intent-filter配置 275
實例:使用Action、Data屬性啟動系統Activity 281
5.2.5 Extra屬性 283
5.2.6 Flag屬性 283
5.3 本章小結 284
第6章 Android套用資源 285
6.1 套用資源概述 286
6.1.1 資源的類型及存儲方式 286
6.1.2 使用資源 287
6.2 字元串、顏色、尺寸資源 289
6.2.1 顏色值的定義 289
6.2.2 定義字元串、顏色、尺寸資源檔案 290
6.2.3 使用字元串、顏色、尺寸資源 291
6.3 數組(Array)資源 293
6.4 使用Drawable資源 295
6.4.1 圖片資源 296
6.4.2 StateListDrawable資源 296
實例:高亮顯示正在輸入的文本框 297
6.4.3 LayerDrawable資源 298
實例:定製拖動條的外觀 298
6.4.4 ShapeDrawable資源 299
實例:橢圓形、漸變背景的文本框 300
6.4.5 ClipDrawable資源 301
實例:徐徐展開的風景 302
6.4.6 AnimationDrawable資源 303
6.5 屬性動畫(Property Animation)資源 305
實例:不斷漸變的背景色 306
6.6 使用原始XML資源 307
6.6.1 定義原始XML資源 307
6.6.2 使用原始XML檔案 308
6.7 使用布局(Layout)資源 309
6.8 使用選單(Menu)資源 310
6.9 樣式(Style)和主題(Theme)資源 310
6.9.1 樣式資源 310
6.9.2 主題資源 312
實例:給所有視窗添加框線、背景 312
6.10 屬性(Attribute)資源 313
6.11 使用原始資源 316
6.12 國際化 317
6.12.1 為Android套用提供國際化資源 317
6.12.2 國際化Android套用 318
6.13 自適應不同螢幕的資源 320
6.14 本章小結 323
第7章 圖形與圖像處理 324
7.1 使用簡單圖片 325
7.1.1 使用Drawable對象 325
7.1.2 Bitmap和BitmapFactory 325
7.2 繪圖 327
7.2.1 Android繪圖基礎:Canvas、Paint等 327
7.2.2 Path類 331
7.2.3 繪製遊戲動畫 334
實例:採用雙緩衝實現畫圖板 334
實例:彈球遊戲 338
7.3 圖形特效處理 341
7.3.1 使用Matrix控制變換 341
7.3.2 使用drawBitmapMesh扭曲圖像 343
實例:可揉動的圖片 344
7.3.3 使用Shader填充圖形 346
7.4 逐幀(Frame)動畫 347
7.4.1 AnimationDrawable與逐幀動畫 347
7.4.2 實例:在指定點爆炸 349
7.5 補間(Tween)動畫 351
7.5.1 Tween動畫與Interpolator 351
7.5.2 位置、大小、旋轉度、透明度改變的補間動畫 352
實例:蝴蝶飛舞 354
7.5.3 自定義補間動畫 356
7.6 Android 8增強的屬性動畫 359
7.6.1 屬性動畫的API 359
7.6.2 使用屬性動畫 361
實例:大珠小珠落玉盤 365
7.7 使用SurfaceView實現動畫 369
7.7.1 SurfaceView的繪圖機制 369
7.7.2 實例:基於SurfaceView開發示波器 372
7.8 本章小結 374
第8章 Android數據存儲與IO 375
8.1 使用SharedPreferences 376
8.1.1 SharedPreferences與Editor簡介 376
8.1.2 SharedPreferences的存儲位置和格式 377
實例:記錄應用程式的使用次數 378
8.2 File存儲 379
8.2.1 openFileOutput和openFileInput 379
8.2.2 讀寫SD卡上的檔案 381
實例:SD卡檔案瀏覽器 384
8.3 SQLite資料庫 387
8.3.1 SQLiteDatabase簡介 387
8.3.2 創建資料庫和表 388
8.3.3 SQLiteOpenHelper類 389
8.3.4 使用SQL語句操作SQLite資料庫 390
8.3.5 使用sqlite3工具 392
8.3.6 使用特定方法操作SQLite資料庫 393
8.3.7 事務 396
8.3.8 SQLite資料庫最佳實踐建議 396
8.4 手勢(Gesture) 397
8.4.1 手勢檢測 397
實例:通過手勢縮放圖片 399
實例:通過手勢實現翻頁效果 400
8.4.2 增加手勢 402
8.4.3 識別用戶手勢 405
8.5 讓套用說話(TTS) 407
8.6 本章小結 410
第9章 使用ContentProvider實現數據共享 411
9.1 數據共享標準:ContentProvider 412
9.1.1 ContentProvider簡介 412
9.1.2 Uri簡介 413
9.1.3 使用ContentResolver運算元據 414
9.2 開發ContentProvider 415
9.2.1 ContentProvider與ContentResolver的關係 415
9.2.2 開發ContentProvider子類 416
9.2.3 配置ContentProvider 417
9.2.4 使用ContentResolver調用方法 418
9.2.5 創建ContentProvider的說明 420
實例:使用ContentProvider共享單詞數據 421
9.3 作業系統的ContentProvider 426
9.3.1 使用ContentProvider管理聯繫人 426
9.3.2 使用ContentProvider管理多媒體內容 431
9.4 監聽ContentProvider的數據改變 434
9.4.1 ContentObserver簡介 434
9.4.2 實例:監聽用戶發出的簡訊 435
9.5 本章小結 437
第10章 Service與BroadcastReceiver 438
10.1 Service簡介 439
10.1.1 創建、配置Service 439
10.1.2 啟動和停止Service 441
10.1.3 綁定本地Service並與之通信 442
10.1.4 Service的生命周期 446
10.1.5 使用IntentService 447
10.2 跨進程調用Service(AIDL Service) 449
10.2.1 AIDL Service簡介 450
10.2.2 創建AIDL檔案 450
10.2.3 將接口暴露給客戶端 451
10.2.4 客戶端訪問AIDL Service 452
實例:傳遞複雜數據的AIDL Service 453
10.3 電話管理器(TelephonyManager) 458
實例:獲取網路和SIM卡信息 458
實例:監聽手機來電 460
10.4 簡訊管理器(SmsManager) 461
實例:傳送簡訊 461
實例:簡訊群發 462
10.5 音頻管理器(AudioManager) 465
10.5.1 AudioManager簡介 465
10.5.2 實例:使用AudioManager控制手機音頻 465
10.6 振動器(Vibrator) 466
10.6.1 Vibrator簡介 466
10.6.2 使用Vibrator控制手機振動 467
10.7 手機鬧鐘服務(AlarmManager) 468
10.7.1 AlarmManager簡介 468
10.7.2 設定鬧鐘 468
實例:定時更換壁紙 470
10.8 Android 8的廣播接收器 472
10.8.1 BroadcastReceiver簡介 472
10.8.2 傳送廣播 474
10.8.3 有序廣播 475
實例:基於Service的音樂播放器 477
10.9 接收系統廣播訊息 481
實例:Android 8中開機自動運行的限制 482
實例:手機電量提示 483
10.10 本章小結 484
第11章 多媒體套用開發 485
11.1 音頻和視頻的播放 486
11.1.1 Android 8增強的MediaPlayer 486
11.1.2 音樂特效控制 490
實例:音樂的示波器、均衡、重低音和音場 491
11.1.3 Android 8新增的VolumeShaper 498
11.1.4 使用SoundPool播放音效 499
11.1.5 使用VideoView播放視頻 501
11.1.6 使用MediaPlayer和SurfaceView播放視頻 503
11.2 使用MediaRecorder錄製音頻 506
實例:錄製音樂 507
11.3 控制攝像頭拍照 509
11.3.1 使用Camera v2拍照 509
實例:拍照時自動對焦 510
11.3.2 錄製視頻短片 516
實例:錄製生活短片 516
11.4 螢幕捕捉 520
11.5 本章小結 522
第12章 OpenGL與3D開發 523
12.1 3D圖形與3D開發的基本知識 524
12.2 OpenGL和OpenGL ES簡介 525
12.3 繪製2D圖形 526
12.3.1 在Android套用中使用OpenGL ES 526
12.3.2 繪製平面上的多邊形 528
12.3.3 旋轉 534
12.4 繪製3D圖形 537
12.4.1 構建3D圖形 537
12.4.2 套用紋理貼圖 541
12.5 本章小結 546
第13章 Android網路套用 547
13.1 基於TCP協定的網路通信 548
13.1.1 TCP協定基礎 548
13.1.2 使用ServerSocket創建TCP伺服器端 549
13.1.3 使用Socket進行通信 550
13.1.4 加入多執行緒 553
13.2 使用URL訪問網路資源 558
13.2.1 使用URL讀取網路資源 559
13.2.2 使用URLConnection提交請求 560
13.3 使用HTTP訪問網路 565
13.3.1 使用HttpURLConnection 565
實例:多執行緒下載 565
13.3.2 使用OkHttp 570
實例:訪問被保護資源 571
13.4 使用WebView進行混合開發 575
13.4.1 使用WebView瀏覽網頁 575
實例:迷你瀏覽器 575
13.4.2 使用WebView載入HTML代碼 577
13.4.3 使用WebView中的JavaScript調用Android方法 578
13.5 本章小結 580
第14章 管理Android系統桌面 581
14.1 改變壁紙 582
14.1.1 開發動態壁紙(Live Wallpapers) 582
14.1.2 實例:蜿蜒壁紙 583
14.2 Android 8的捷徑 587
14.2.1 靜態捷徑 587
14.2.2 動態捷徑 588
14.2.3 Android 8的桌面捷徑(Pinned Shortcut) 590
實例:讓程式占領桌面 591
14.3 管理桌面控制項 592
14.3.1 開發桌面控制項 592
實例:液晶時鐘 594
14.3.2 顯示帶數據集的桌面控制項 596
14.4 本章小結 599
第15章 感測器套用開發 600
15.1 利用Android的感測器 601
15.2 Android的常用感測器 603
15.2.1 方向感測器 603
15.2.2 陀螺儀感測器 604
15.2.3 磁場感測器 604
15.2.4 重力感測器 604
15.2.5 線性加速度感測器 605
15.2.6 溫度感測器 605
15.2.7 光感測器 605
15.2.8 濕度感測器 605
15.2.9 壓力感測器 605
15.2.10 心率感測器 605
15.2.11 Android 8的離身檢查感測器 605
15.3 感測器套用案例 609
實例:指南針 609
實例:水平儀 611
15.4 本章小結 614
第16章 GPS套用開發 615
16.1 支持GPS的核心API 616
16.2 獲取LocationProvider 618
16.2.1 獲取所有可用的LocationProvider 618
16.2.2 通過名稱獲得指定LocationProvider 619
16.2.3 根據Criteria獲得LocationProvider 619
16.3 獲取定位信息 620
16.3.1 通過模擬器傳送GPS信息 620
16.3.2 獲取定位數據 620
16.4 臨近警告 622
16.5 本章小結 624
第17章 整合高德Map服務 625
17.1 調用高德Map服務 626
17.1.1 獲取Map API Key 626
17.1.2 高德地圖入門 628
17.2 根據GPS信息在地圖上定位 632
17.3 執行定位 638
17.3.1 地址解析與反向地址解析 638
17.3.2 根據地址執行定位 641
17.4 GPS導航 643
17.5 本章小結 647
第18章 合金彈頭 648
18.1 合金彈頭遊戲簡介 649
18.2 開發遊戲界面組件 649
18.2.1 遊戲界面分析 649
18.2.2 實現“怪物”類 650
18.2.3 實現怪物管理類 657
18.2.4 實現“子彈”類 661
18.2.5 實現“角色”類 663
18.3 實現繪圖工具類 668
18.4 載入、管理遊戲圖片 673
18.5 實現遊戲界面 676
18.5.1 實現遊戲Activity 676
18.5.2 實現主視圖 678
18.6 本章小結 686
第19章 電子拍賣系統 687
19.1 系統功能簡介和架構設計 688
19.1.1 系統功能簡介 688
19.1.2 系統架構設計 689
19.2 JSON簡介 690
19.2.1 使用JSON語法創建對象 691
19.2.2 使用JSON語法創建數組 692
19.2.3 Android的JSON支持 693
19.3 傳送請求的工具類 693
19.4 用戶登錄 695
19.4.1 處理登錄的接口 695
19.4.2 用戶登錄客戶端 696
19.5 查看流拍物品 704
19.5.1 查看流拍物品的接口 704
19.5.2 查看流拍物品客戶端 705
19.6 管理物品種類 709
19.6.1 瀏覽物品種類的接口 710
19.6.2 查看物品種類 710
19.6.3 添加種類的接口 714
19.6.4 添加物品種類 715
19.7 管理拍賣物品 716
19.7.1 查看自己的拍賣物品的接口 717
19.7.2 查看自己的拍賣物品 717
19.7.3 添加拍賣物品的接口 721
19.7.4 添加拍賣物品 721
19.8 參與競拍 727
19.8.1 選擇物品種類 727
19.8.2 根據種類瀏覽物品的伺服器端接口 728
19.8.3 根據種類瀏覽物品 729
19.8.4 參與競價的伺服器端接口 730
19.8.5 參與競價 731
19.9 許可權控制 736
19.10 本章小結 737"

熱門詞條

聯絡我們