第1章 Android應用與開發環境 1
1.1 Android的發展和曆史 2
1.1.1 Android的發展和簡介 2
1.1.2 Android平颱架構及特性 3
1.2 搭建Android開發環境 5
1.2.1 下載和安裝Android SDK 5
1.2.2 安裝運行、調試環境 7
1.2.3 安裝Eclipse和ADT插件 10
1.3 Android常用開發工具的用法 13
1.3.1 在命令行創建、刪除和瀏覽AVD 13
1.3.2 使用Android模擬器(Emulator) 14
1.3.3 使用DDMS進行調試 15
1.3.4 Android Debug Bridge(ADB)的用法 16
1.3.5 使用DX編譯Android應用 18
1.3.6 使用Android Asset Packaging Tool(AAPT)打包資源 18
1.3.7 使用mksdcard管理虛擬SD卡 18
1.4 開始第一個Android應用 19
1.4.1 使用Eclipse開發第一個Android應用 19
1.4.2 通過ADT運行Android應用 23
1.5 Android應用結構分析 23
1.5.1 創建一個Android應用 24
1.5.2 自動生成的R.java 26
1.5.3 res目錄說明 27
1.5.4 Android應用的清單文件:AndroidManifest.xml 28
1.5.5 應用程序權限說明 29
1.6 Android應用的基本組件介紹 30
1.6.1 Activity和View 30
1.6.2 Service 31
1.6.3 BroadcastReceiver 31
1.6.4 ContentProvider 32
1.6.5 Intent和IntentFilter 32
1.7 簽名Android應用程序 33
1.7.1 在Eclipse中對Android應用簽名 34
1.7.2 使用命令對APK包簽名 35
1.8 本章小結 37
第2章 Android應用的界麵編程 38
2.1 界麵編程與視圖(View)組件 39
2.1.1 視圖組件與容器組件 39
2.1.2 使用XML布局文件控製UI界麵 44
2.1.3 在代碼中控製UI界麵 45
2.1.4 使用XML布局文件和Java代碼混閤控製UI界麵 46
2.1.5 開發自定義View 47
2.2 第1組UI組件:布局管理器 50
2.2.1 綫性布局 50
2.2.2 錶格布局 53
2.2.3 幀布局 56
2.2.4 相對布局 59
2.2.5 Android 4.0新增的網格布局 61
2.2.6 絕對布局 63
2.3 第2組UI組件:TextView及其子類 65
2.3.1 文本框(TextView)與編輯框(EditText)的功能和用法 65
2.3.2 EditText的功能與用法 72
2.3.3 按鈕(Button)組件的功能和用法 74
2.3.4 使用9Patch圖片作為按鈕背景 76
2.3.5 單選按鈕(RadioButton)與復選框(CheckBox)的功能與用法 77
2.3.6 狀態開關按鈕(ToggleButton)與開關(Switch)的功能與用法 79
2.3.7 時鍾(AnalogClock和DigitalClock)的功能與用法 81
2.3.8 計時器(Chronometer) 83
2.4 第3組UI組件:ImageView及其子類 84
2.5 第4組UI組件:AdapterView及子類 91
2.5.1 列錶視圖(ListView)和ListActivity 91
2.5.2 Adapter接口及實現類 93
2.5.3 自動完成文本框(AutoCompleteTextView)的功能和用法 102
2.5.4 網格視圖(GridView)功能和用法 104
2.5.5 可展開的列錶組件(ExpandableListView) 107
2.5.6 Spinner的功能和用法 110
2.5.7 畫廊視圖(Gallery)的功能和用法 112
2.5.8 AdapterViewFlipper的功能與用法 114
2.5.9 StackView的功能與用法 117
2.6 第5組UI組件:ProgressBar及其子類 119
2.6.1 進度條(ProgressBar)的功能與用法 119
2.6.2 拖動條(SeekBar)的功能和用法 123
2.6.3 星級評分條(RatingBar)的功能和用法 125
2.7 第6組UI組件:ViewAnimator及其子類 126
2.7.1 ViewSwitcher的功能與用法 127
2.7.2 圖像切換器(ImageSwitcher)的功能與用法 132
2.7.3 文本切換器(TextSwitcher)的功能與用法 134
2.7.4 ViewFlipper的功能與用法 136
2.8 各種雜項組件 138
2.8.1 使用Toast顯示提示信息框 138
2.8.2 日曆視圖(CalendarView)組件的功能和用法 140
2.8.3 日期、時間選擇器(DatePicker和TimePicker)的功能和用法 141
2.8.4 數值選擇器(NumberPicker)的功能與用法 144
2.8.5 搜索框(SearchView)的功能與用法 146
2.8.6 選項卡(TabHost)的功能和用法 148
2.8.7 滾動視圖(ScrollView)的功能和用法 150
2.8.8 Notification的功能與用法 151
2.9 對話框 154
2.9.1 使用AlertDialog創建對話框 154
2.9.2 對話框風格的窗口 161
2.9.3 使用PopupWindow 161
2.9.4 使用DatePickerDialog、TimePickerDialog 163
2.9.5 使用ProgressDialog創建進度對話框 164
2.10 菜單 167
2.10.1 選項菜單和子菜單(SubMenu) 167
2.10.2 使用監聽器來監聽菜單事件 171
2.10.3 創建復選菜單項和單選菜單項 171
2.10.4 設置與菜單項關聯的Activity 171
2.10.5 上下文菜單 172
2.10.6 使用XML文件定義菜單 174
2.10.7 使用PopupMenu創建彈齣式菜單 178
2.11 使用活動條(ActionBar) 179
2.11.1 啓用ActionBar 180
2.11.2 使用ActionBar顯示選項菜單 181
2.11.3 啓用程序圖標導航 183
2.11.4 添加Action View 184
2.11.5 使用ActionBar實現Tab導航 185
2.11.6 使用ActionBar實現下拉式導航 191
2.12 本章小結 192
第3章 Android的事件處理 193
3.1 Android事件處理概述 194
3.2 基於監聽的事件處理 194
3.2.1 監聽的處理模型 195
3.2.2 事件和事件監聽器 197
3.2.3 內部類作為事件監聽器類 200
3.2.4 外部類作為事件監聽器類 200
3.2.5 Activity本身作為事件監聽器 202
3.2.6 匿名內部類作為事件監聽器類 203
3.2.7 直接綁定到標簽 204
3.3 基於迴調的事件處理 205
3.3.1 迴調機製與監聽機製 205
3.3.2 基於迴調的事件傳播 206
3.3.3 重寫onTouchEvent方法響應觸摸屏事件 208
3.4 響應的係統設置的事件 210
3.4.1 Configuration類簡介 210
3.4.2 重寫onConfigurationChanged響應係統設置更改 212
3.5 Handler消息傳遞機製 214
3.5.1 Handler類簡介 214
3.5.2 Handler、Loop、MessageQueue的工作原理 216
3.6 異步任務(AsyncTask) 220
3.7 本章小結 223
第4章 深入理解Activity與Fragment 224
4.1 建立、配置和使用Activity 225
4.1.1 Activity 225
4.1.2 配置Activity 233
4.1.3 啓動、關閉Activity 235
4.1.4 使用Bundle在Activity之間交換數據 237
4.1.5 啓動其他Activity並返迴結果 241
4.2 Activity的迴調機製 245
4.3 Activity的生命周期與加載模式 246
4.3.1 Activity的生命周期演示 246
4.3.2 Activity與Servlet的相似性與區彆 250
4.3.3 Activity的4種加載模式 251
4.4 Fragment詳解 257
4.4.1 Fragment概述及其設計哲學 257
4.4.2 創建Fragment 258
4.4.3 Fragment與Activity通信 262
4.4.4 Fragment管理與Fragment事務 264
4.5 Fragment的生命周期 268
4.6 本章小結 272
第5章 使用Intent和IntentFilter進行通信 273
5.1 Intent對象詳解 274
5.1.1 使用Intent啓動係統組件 274
5.2 Intent的屬性及intent-filter配置 275
5.2.1 Component屬性 275
5.2.2 Action、Category屬性與intent-filter配置 277
5.2.3 指定Action、Category調用係統Activity 282
5.2.4 Data、Type屬性與intent-filter配置 287
5.2.5 Extra屬性 295
5.2.6 Flag屬性 295
5.3 使用Intent創建Tab頁麵 296
5.4 本章小結 297
第6章 Android應用的資源 298
6.1 資源的類型及存儲方式 299
6.1.1 資源的類型以及存儲方式 299
6.1.2 使用資源 301
6.2 使用字符串、顔色、尺寸資源 302
6.2.1 顔色值的定義 303
6.2.2 定義字符串、顔色、尺寸資源文件 303
6.2.3 使用字符串、顔色、尺寸資源 305
6.3 數組(Array)資源 307
6.4 使用(Drawable)資源 310
6.4.1 圖片資源 310
6.4.2 StateListDrawable資源 311
6.4.3 LayerDrawable資源 312
6.4.4 ShapeDrawable資源 314
6.4.5 ClipDrawable資源 316
6.4.6 AnimationDrawable資源 318
6.5 屬性動畫(Property Animation)資源 320
6.6 使用原始XML資源 322
6.6.1 定義原始XML資源 322
6.6.2 使用原始XML文件 323
6.7 使用布局(Layout)資源 325
6.8 使用菜單(Menu)資源 325
6.9 樣式(Style)和主題(Theme)資源 326
6.9.1 樣式資源 326
6.9.2 主題資源 327
6.10 屬性(Attribute)資源 329
6.11 使用原始資源 332
6.12 國際化和資源自適應 333
6.12.1 Java國際化的思路 334
6.12.2 Java支持的語言和國傢 334
6.12.3 完成程序國際化 335
6.12.4 為Android應用提供國際化資源 337
6.12.5 國際化Android應用 338
6.13 自適應不同屏幕的資源 340
6.14 本章小結 343
第7章 圖形與圖像處理 344
7.1 使用簡單圖片 345
7.1.1 使用Drawable對象 345
7.1.2 Bitmap和BitmapFactory 345
7.2 繪圖 348
7.2.1 Android繪圖基礎:Canvas、Paint等 348
7.2.2 Path類 352
7.2.3 繪製遊戲動畫 355
7.3 圖形特效處理 362
7.3.1 使用Matrix控製變換 362
7.3.2 使用drawBitmapMesh扭麯圖像 366
7.3.3 使用Shader填充圖形 368
7.4 逐幀(Frame)動畫 370
7.4.1 AnimationDrawable與逐幀動畫 371
7.5 補間(Tween)動畫 374
7.5.1 Tween動畫與Interpolator 374
7.5.2 位置、大小、鏇轉度、透明度改變的補間動畫 376
7.5.3 自定義補間動畫 380
7.6 屬性動畫 383
7.6.1 屬性動畫的API 383
7.6.2 使用屬性動畫 385
7.7 使用SurfaceView實現動畫 393
7.7.1 SurfaceView的繪圖機製 394
7.8 本章小結 398
第8章 Android數據存儲與IO 399
8.1 使用SharedPreferences 400
8.1.1 SharedPreferences與Editor簡介 400
8.1.2 SharedPreferences的存儲位置和格式 401
8.1.3 讀、寫其他應用SharedPreferences 403
8.2 File存儲 404
8.2.1 openFileOutput和openFileInput 405
8.2.2 讀寫SD卡上的文件 407
8.3 SQLite數據庫 414
8.3.1 SQLiteDatabase簡介 414
8.3.2 創建數據庫和錶 415
8.3.3 使用SQL語句操作SQLite數據庫 416
8.3.4 使用sqlite3工具 418
8.3.5 使用特定方法操作SQLite數據庫 419
8.3.6 事務 422
8.3.7 SQLiteOpenHelper類 422
8.4 手勢(Gesture) 427
8.4.1 手勢檢測 427
8.4.2 增加手勢 434
8.4.3 識彆用戶的手勢 437
8.5 自動朗讀(TTS) 439
8.6 本章小結 441
第9章 使用ContentProvider實現數據共享 442
9.1 數據共享標準:ContentProvider簡介 443
9.1.1 ContentProvider簡介 443
9.1.2 Uri簡介 444
9.1.3 使用ContentResolver操作數據 445
9.2 開發ContentProvider 446
9.2.1 ContentProvider與ContentResolver的關係 446
9.2.2 開發ContentProvider 447
9.2.3 配置ContentProvider 448
9.2.4 使用ContentResolver調用方法 449
9.2.5 創建ContentProvider的說明 451
9.3 操作係統的ContentProvider 457
9.3.1 使用ContentProvider管理聯係人 457
9.3.2 使用ContentProvider管理多媒體內容 463
9.4 監聽ContentProvider的數據改變 466
9.4.1 ContentObserver簡介 466
9.5 本章小結 468
第10章 Service與BroadcastReceiver 469
10.1 Service簡介 470
10.1.1 創建、配置Service 470
10.1.2 啓動和停止Service 472
10.1.3 綁定本地Service並與之通信 473
10.1.4 Service的生命周期 477
10.1.5 使用IntentService 478
10.2 跨進程調用Service(AIDL Service) 481
10.2.1 AIDL Service簡介 482
10.2.2 創建AIDL文件 482
10.2.3 將接口暴露給客戶端 483
10.2.4 客戶端訪問AIDLService 484
10.3 電話管理器(TelephonyManager) 491
10.4 短信管理器(SmsManager) 498
10.5 音頻管理器(AudioManager) 502
10.5.1 AudioManager簡介 502
10.6 振動器(Vibrator) 504
10.6.1 Vibrator簡介 504
10.6.2 使用Vibrator控製手機振動 505
10.7 手機鬧鍾服務(AlarmManager) 505
10.7.1 AlarmManager簡介 505
10.7.2 設置鬧鍾 506
10.8 接收廣播消息 510
10.8.1 BroadcastReceiver簡介 510
10.8.2 發送廣播 512
10.8.3 有序廣播 513
10.9 接收係統廣播消息 520
10.10 本章小結 523
第11章 多媒體應用開發 524
11.1 音頻和視頻的播放 525
11.1.1 使用MediaPlayer播放音頻 525
11.1.2 音樂特效控製 528
11.1.3 使用SoundPool播放音效 536
11.1.4 使用VideoView播放視頻 539
11.1.5 使用MediaPlayer和SurfaceView播放視頻 540
11.2 使用MediaRecorder錄製音頻 543
11.3 控製攝像頭拍照 546
11.3.1 通過Camera進行拍照 546
11.3.2 錄製視頻短片 551
11.4 本章小結 555
第12章 OpenGL與3D應用開發 556
12.1 3D圖像與3D開發的基本知識 557
12.2 OpenGL和OpenGL ES簡介 558
12.3 繪製2D圖形 559
12.3.1 在Android應用中使用OpenGL ES 559
12.3.2 繪製平麵上的多邊形 562
12.3.3 鏇轉 567
12.4 繪製3D圖形 569
12.4.1 構建3D圖形 569
12.4.2 應用紋理貼圖 573
12.5 本章小結 578
第13章 Android網絡應用 579
13.1 基於TCP協議的網絡通信 580
13.1.1 TCP協議基礎 580
13.1.2 使用ServerSocket創建TCP服務器端 581
13.1.3 使用Socket進行通信 582
13.1.4 加入多綫程 586
13.2 使用URL訪問網絡資源 592
13.2.1 使用URL讀取網絡資源 593
13.2.2 使用URLConnection提交請求 594
13.3 使用HTTP訪問網絡 599
13.3.1 使用HttpURLConnection 600
13.3.2 使用Apache HttpClient 605
13.4 使用WebView視圖顯示網頁 609
13.4.1 使用WebView瀏覽網頁 610
13.4.2 使用WebView加載HTML代碼 611
13.4.3 使用WebView中的JavaScript調用Android方法 612
13.5 使用Web Service進行網絡編程 615
13.5.1 Web Service平颱概述 615
13.5.2 使用Android應用調用Web Service 617
13.6 本章小結 628
第14章 管理Android手機桌麵 629
14.1 管理手機桌麵 630
14.1.1 刪除桌麵組件 630
14.1.2 添加桌麵組件 630
14.2 改變手機壁紙 631
14.2.1 開發動態壁紙(Live Wallpapers) 631
14.3 通過程序添加快捷方式 636
14.4 管理桌麵控件 638
14.4.1 開發桌麵控件 638
14.4.2 Android 4.0新增的顯示數據集的桌麵控件 642
14.5 本章小結 647
第15章 傳感器應用開發 648
15.1 利用Android的傳感器 649
15.1.1 開發傳感器應用 649
15.2 Android的常用傳感器 651
15.2.1 方嚮傳感器Orientation 651
15.2.2 磁場傳感器Magnetic Field 652
15.2.3 溫度傳感器Temperature 652
15.2.4 光傳感器Light 652
15.2.5 壓力傳感器Pressure 653
15.3 傳感器應用案例 655
15.4 本章小結 660
第16章 GPS應用開發 661
16.1 支持GPS的核心API 662
16.2 獲取LocationProvider 664
16.2.1 獲取所有可用的LocationProvider 664
16.2.2 通過名稱獲得指定LocationProvider 665
16.2.3 根據Criteria獲得LocationProvider 665
16.3 獲取定位信息 666
16.3.1 通過模擬器發送GPS信息 666
16.3.2 獲取定位數據 667
16.4 臨近警告 668
16.5 本章小結 670
第17章 使用Google Map服務 671
17.1. 調用Google Map的準備 672
17.1.1 獲取Map API Key 672
17.1.2 創建支持Google Map API的AVD 674
17.2 根據GPS信息在地圖上定位 676
17.3 GPS導航 681
17.4 根據地址定位 683
17.4.1 地址解析與反嚮地址解析 683
17.4.2 根據地址定位 688
17.5 本章小結 689
第18章 瘋狂連連看 690
18.1 連連看遊戲簡介 691
18.2 開發遊戲界麵 691
18.2.1 開發界麵布局 692
18.2.2 開發遊戲界麵組件 693
18.2.3 處理方塊之間的連接綫 696
18.3 連連看的狀態數據模型 697
18.3.1 定義數據模型 697
18.3.2 初始化遊戲狀態數據 698
18.4 加載界麵的圖片 700
18.5 實現遊戲Activity 703
18.6 實現遊戲邏輯 708
18.6.1 定義GameService組件接口 708
18.6.2 實現GameService組件 709
18.6.3 獲取觸碰點的方塊 710
18.6.4 判斷兩個方塊是否可以相連 711
18.6.5 定義獲取通道的工具方法 713
18.6.6 沒有轉摺點的橫嚮連接 715
18.6.7 沒有轉摺點的縱嚮連接 715
18.6.8 一個轉摺點的連接 716
18.6.9 兩個轉摺點的連接 718
18.6.10 找齣最短距離 724
18.7 本章小結 726
第19章 電子拍賣係統 727
19.1 係統功能簡介和架構設計 728
19.1.1 係統功能簡介 728
19.1.2 係統架構設計 729
19.2 JSON簡介 730
19.2.1 使用JSON語法創建對象 731
19.2.2 使用JSON語法創建數組 732
19.2.3 Java的JSON支持 733
19.3 發送請求的工具類 734
19.4 用戶登錄 735
19.4.1 處理登錄的Servlet 736
19.4.2 用戶登錄 737
19.5 查看流拍物品 745
19.5.1 查看流拍物品的Servlet 745
19.5.2 查看流拍物品 746
19.6 管理物品種類 751
19.6.1 瀏覽物品種類的Servlet 752
19.6.2 查看物品種類 752
19.6.3 添加種類的Servlet 757
19.6.4 添加物品種類 758
19.7 管理拍賣物品 760
19.7.1 查看自己的拍賣物品的Servlet 760
19.7.2 查看自己的拍賣物品 761
19.7.3 添加拍賣物品的Servlet 764
19.7.4 添加拍賣物品 765
19.8 參與競拍 771
19.8.1 選擇物品種類 771
19.8.2 根據種類瀏覽物品的Servlet 772
19.8.3 根據種類瀏覽物品 773
19.8.4 參與競價的Servlet 775
19.8.5 參與競價 776
19.9 權限控製 781
19.10 本章小結 782
· · · · · · (
收起)