《android開發權威指南》
第一部分 準 備 篇
第1章 初識廬山真麵目——android開發簡介 2
1.1 android的基本概念 2
1.1.1 android簡介 2
1.1.2 android的版本 4
1.1.3 android的係統構架 5
1.1.4 android的應用程序框架 6
1.2 jil widget介紹 7
1.3 小結 8
第2章 工欲善其事,必先利其器——搭建和使用android開發環境 9
2.1 開發包及工具的安裝 9
2.1.1 開發android程序都需要些什麼 9
2.1.2 安裝jdk和配置java開發環境 10
2.1.3 eclipse的安裝與漢化 11
2.1.4 安裝androidsdk 12
2.1.5 安裝eclipse插件adt 13
2.2 真實體驗——編寫第一個android程序(隨機繪製圓餅) 15
2.2.1 創建android工程 15
2.2.2 在模擬器中運行android程序 17
.2.2.3 界麵控件的布局 19
2.2.4 編寫代碼 20
2.2.5 調試程序 23
2.2.6 在手機上運行和調試程序 28
2.3 遷移android工程可能發生的錯誤 29
2.4 不需要寫一行代碼的開發工具:appinventor 31
2.4.1 appinventor簡介 31
2.4.2 appintentor的下載和安裝 31
2.4.3 用拖曳控件的方式設計界麵 33
2.4.4 像拼圖一樣拼裝代碼 34
2.5 小結 37
第二部分 基 礎 篇
第3章 韆裏之行始於足下——android程序設計基礎 40
3.1 android應用程序框架 40
3.1.1 android項目的目錄結構 40
3.1.2 androidmanifest.xml文件的結構 42
3.2 android應用程序中的資源 44
3.3 android的應用程序組件 44
3.3.1 activity(android的窗體) 45
3.3.2 service(服務) 45
3.3.3 broadcast receiver(廣播接收器) 45
3.3.4 content provider(內容提供者) 46
3.4 android程序的ui設計 46
3.4.1 手工配置xml布局文件 46
3.4.2 adt自帶的可視化ui設計器 47
3.4.3 使用droiddraw設計ui布局 47
3.5 小結 48
第4章 我的ui我做主——用戶界麵開發基礎 49
4.1 activity的使用方法 49
4.1.1 創建activity 49
4.1.2 配置activity 50
4.1.3 顯示其他的activity(intent與activity) 52
4.2 activity的生命周期 55
4.3 在不同activity之間傳遞數據 60
4.3.1 使用intent傳遞數據 60
4.3.2 使用靜態變量傳遞數據 62
4.3.3 使用剪切闆傳遞數據 63
4.3.4 使用全局對象傳遞數據 65
4.3.5 返迴數據到前一個activity 67
4.4 視圖(view) 68
4.4.1 視圖簡介 68
4.4.2 使用xml布局文件定義視圖 69
4.4.3 在代碼中控製視圖 70
4.5 布局(layout) 72
4.5.1 框架布局(framelayout) 72
4.5.2 綫性布局(linearlayout) 75
4.5.3 相對布局(relativelayout) 79
4.5.4 錶格布局(tablelayout) 81
4.5.5 絕對布局(absolutelayout) 82
4.5.6 重用xml布局文件 82
4.5.7 優化xml布局文件 85
4.5.8 查看apk文件中的布局 86
4.6 小結 87
第5章 良好的學習開端—— 控件(widget)詳解 88
5.1 常用xml屬性解析 88
5.1.1 android:id屬性 88
5.1.2 控件的寬度(android:layout_width)和高度(android:layout_height) 88
5.1.3 android:layout_margin屬性 89
5.1.4 android:padding屬性 89
5.1.5 android:layout_weight屬性 90
5.1.6 android:layout_gravity和android: gravity屬性 90
5.1.7 android:visibility屬性 91
5.1.8 android:background屬性 91
5.1.9 指定單擊事件方法(android:onclick屬性) 92
5.1.10 控件焦點屬性(android:focusable和android:focusable-intouchmode) 92
5.2 textview(顯示文本的控件) 93
5.2.1 顯示富文本(url、不同大小、字體、顔色的文本) 93
5.2.2 在textview中顯示錶情圖像和文字 97
5.2.3 單擊鏈接彈齣activity 100
5.2.4 為指定文本添加背景 103
5.2.5 帶邊框的textview 106
5.2.6 設置行間距 110
5.2.7 在未顯示完的文本後麵加省略號(…) 111
5.2.8 用textview實現走馬燈效果 113
5.2.9 垂直滾動textview中的文本 114
5.3 edittext(編輯文本的控件) 115
5.3.1 像qq一樣輸入錶情圖像 115
5.3.2 在edittext中輸入特定的字符 117
5.3.3 autocompletetext-view(自動完成輸入內容的控件) 118
5.4 按鈕和復選框控件 120
5.4.1 button(普通按鈕控件) 120
5.4.2 圖文混排的按鈕 122
5.4.3 imagebutton(圖像按鈕控件) 124
5.4.4 radiobutton(選項按鈕控件) 124
5.4.5 togglebutton(開關狀態按鈕控件) 125
5.4.6 checkbox(復選框控件) 126
5.5 imageview(顯示圖像的控件) 128
5.5.1 imageview控件的基本用法 128
5.5.2 顯示指定區域的圖像 129
5.5.3 縮放和鏇轉圖像 132
5.6 時間與日期控件 133
5.6.1 datepicker(輸入日期的控件) 133
5.6.2 timepicker(輸入時間的控件) 134
5.6.3 datepicker、timepicker與textview同步顯示日期和時間 134
5.6.4 analogclock和digitalclock(顯示時鍾的控件) 136
5.7 進度條控件 137
5.7.1 progressbar(進度條控件) 137
5.7.2 seekbar(拖動條控件) 139
5.7.3 設置progressbar和seekbar的顔色及背景圖 140
5.7.4 ratingbar(評分控件) 143
5.8 列錶控件 145
5.8.1 listview(普通列錶控件) 145
5.8.2 為listview列錶項添加復選框和選項按鈕 147
5.8.3 對列錶項進行增、刪、改操作 149
5.8.4 改變列錶項的背景色 153
5.8.5 listactivity(封裝listview的activity) 154
5.8.6 expandablelistview(可擴展的列錶控件) 155
5.8.7 spinner(下拉列錶控件) 157
5.9 滾動控件 160
5.9.1 scrollview(垂直滾動控件) 160
5.9.2 horizontalscrollview(水平滾動控件) 161
5.9.3 可垂直和水平滾動的視圖 162
5.9.4 gallery(畫廊控件) 163
5.10 imageswitcher(圖像切換控件) 164
5.11 gridview(網格控件) 166
5.12 tabhost(標簽控件) 168
5.13 viewstub(惰性裝載控件) 169
5.14 小結 171
第6章 友好的菜單——menu介紹與實例 172
6.1 菜單的基本用法 172
6.1.1 創建選項菜單(options menu) 172
6.1.2 帶圖像的選項菜單 173
6.1.3 關聯activity 173
6.1.4 響應菜單的單擊動作 174
6.1.5 動態添加、修改和刪除選項菜單 175
6.1.6 帶復選框和選項按鈕的子菜單 176
6.1.7 上下文菜單 178
6.1.8 菜單事件 179
6.1.9 從菜單資源中裝載菜單 180
6.2 菜單特效 181
6.2.1 自定義菜單 181
6.2.2 模擬ucweb效果菜單 184
6.2.3 quickcontactbadge與聯係人菜單 189
6.3 小結 192
第7章 友好地互動交流——信息提醒(對話框、toast與notification) 193
7.1 對話框的基本用法 193
7.1.1 帶2個按鈕(確認/取消)的對話框 193
7.1.2 帶3個按鈕(覆蓋/忽略/取消)的對話框 195
7.1.3 簡單列錶對話框 196
7.1.4 單選列錶對話框 198
7.1.5 多選列錶對話框 199
7.1.6 進度對話框 201
7.1.7 登錄對話框 205
7.1.8 使用activity托管對話框 207
7.2 對話框的高級應用 209
7.2.1 阻止單擊按鈕關閉對話框 209
7.2.2 改變對話框的顯示位置 213
7.2.3 在對話框按鈕和內容文本中插入圖像 215
7.2.4 改變對話框的透明度 216
7.3 toast 217
7.3.1 toast的基本用法 217
7.3.2 永不關閉的toast 218
7.3.3 用popupwindow模擬toast提示信息框 221
7.4 通知(notification) 221
7.4.1 在狀態欄上顯示通知信息 222
7.4.2 notification的清除動作 224
7.4.3 永久存在的notification 225
7.4.4 自定義notification 226
7.5 小結 227
第8章 移動的信息倉庫——數據存儲 228
8.1 讀寫key-value對:sharedpreferences 228
8.1.1 sharedpreferences的基本用法 228
8.1.2 數據的存儲位置和格式 229
8.1.3 存取復雜類型的數據 230
8.1.4 設置數據文件的訪問權限 233
8.1.5 可以保存設置的activity:preferenceactivity 234
8.2 文件存儲 238
8.2.1 openfileoutput和openfileinput方法 238
8.2.2 讀寫sd卡中的文件 239
8.2.3 sax引擎讀取xml文件的原理 241
8.2.4 將xml文件轉換成java對象 242
8.2.5 文件壓縮(jar、zip) 245
8.3 sqlite數據庫 249
8.3.1 sqlite數據庫管理工具 249
8.3.2 sqliteopenhelper類與自動升級數據庫 251
8.3.3 數據綁定與simplecursoradapter類 252
8.3.4 操作sd卡上的數據庫 255
8.3.5 將數據庫與應用程序一起發布 256
8.3.6 內存數據庫 257
8.4 小結 258
第9章 android中的窗口——activity 259
9.1 調用其他程序中的activity 259
9.1.1 直接撥號 259
9.1.2 將電話號傳入撥號程序 259
9.1.3 調用撥號程序 260
9.1.4 瀏覽網頁 261
9.1.5 嚮e-mail客戶端傳遞e-mail地址 261
9.1.6 發送e-mail 261
9.1.7 查看聯係人 262
9.1.8 顯示係統設置界麵(設置主界麵、wifi設置界麵) 263
9.1.9 啓動處理音頻的程序 264
9.2 自定義activity action 264
9.3 activity的高級應用 266
9.3.1 activitygroup 266
9.3.2 自定義半透明窗口 268
9.3.3 activity之間切換的動畫效果 269
9.4 小結 270
第10章 全局事件——廣播(broadcast) 271
10.1 什麼是廣播 271
10.2 接收係統廣播 272
10.2.1 短信攔截 272
10.2.2 用代碼注冊廣播接收器 274
10.2.3 廣播接收器的優先級 275
10.2.4 來去電攔截 276
10.2.5 截獲屏幕休眠與喚醒 280
10.2.6 開機自動運行 281
10.2.7 顯示手機電池的當前電量 282
10.3 發送廣播 284
10.4 驗證廣播接收器是否注冊 285
10.5 小結 286
第11章 跨應用數據源——content provider 287
11.1 content provider的作用 287
11.2 獲得係統數據 288
11.2.1 讀取聯係人信息 288
11.2.2 查看收到的短信 290
11.3 自定義contentprovider 291
11.3.1 查詢城市信息 291
11.3.2 為content provider添加訪問權限 297
11.4 小結 298
第12章 一切為用戶服務——service基礎與實例 299
12.1 service基礎 299
12.1.1 service的生命周期 299
12.1.2 綁定activity和service 302
12.1.3 開機啓動service 305
12.1.4 判斷service是否已注冊 306
12.1.5 判斷service是否已開始 307
12.2 跨進程訪問(aidl服務) 308
12.2.1 什麼是aidl服務 308
12.2.2 建立aidl服務的步驟 308
12.2.3 建立aidl服務 308
12.2.4 傳遞復雜數據的aidl服務 312
12.2.5 aidl與來去電自動掛斷 317
12.3 小結 319
第13章 做好應用橋梁——網絡與通信 320
13.1 webview控件 320
13.1.1 用webview控件瀏覽網頁 320
13.1.2 用webview控件裝載html代碼 322
13.2 訪問http資源 324
13.2.1 提交http get和http post請求 324
13.2.2 httpurlconnection類 326
13.2.3 上傳文件 327
13.3 客戶端socket 330
13.3.1 連接服務器 331
13.3.2 掃描服務器打開的端口 331
13.3.3 發送和接收數據 333
13.3.4 獲得無綫路由分配給手機的ip地址 334
13.3.5 設置socket選項 335
13.4 服務端socket 339
13.4.1 手機服務器的實現 339
13.4.2 利用socket在應用程序之間通信 340
13.5 藍牙通信 342
13.5.1 藍牙簡介 342
13.5.2 打開和關閉藍牙設備 343
13.5.3 搜索藍牙設備 344
13.5.4 藍牙數據傳輸 346
13.6 小結 351
第14章 炫酷你的應用——多媒體開發 352
14.1 音樂 352
14.1.1 播放音樂 352
14.1.2 錄音 353
14.2 視頻 354
14.2.1 使用videoview播放視頻 354
14.2.2 使用surfaceview播放視頻 355
14.2.3 錄製視頻 357
14.3 相機 357
14.3.1 調用係統的拍照功能 358
14.3.2 自定義拍照功能 359
14.4 鈴聲 364
14.5 小結 366
第15章 2d遊戲開發 367
15.1 繪製遊戲的畫布 367
15.1.1 在view上實現動畫效果 367
15.1.2 在surfaceview上實現動畫效果 371
15.2 圖形繪製基礎 374
15.2.1 繪製像素點 374
15.2.2 繪製直綫 374
15.2.3 繪製圓形 375
15.2.4 繪製弧 375
15.2.5 繪製文本 376
15.2.6 綜閤繪製各種圖形 376
15.3 高級圖像處理技術 380
15.3.1 繪製位圖 380
15.3.2 圖像的透明度 382
15.3.3 鏇轉圖像 383
15.3.4 路徑 384
15.3.5 shader的渲染效果 388
15.4 幀(frame)動畫 392
15.4.1 animationdrawable與幀動畫 392
15.4.2 播放gif動畫 394
15.5 補間(tween)動畫 397
15.5.1 移動補間動畫 397
15.5.2 縮放補間動畫 399
15.5.3 鏇轉補間動畫 402
15.5.4 透明度補間動畫 403
15.6 小結 404
第16章 有趣的android應用 405
16.1 傳感器 405
16.1.1 如何使用傳感器 405
16.1.2 加速度傳感器(accelerometer) 409
16.1.3 重力傳感器(gravity) 409
16.1.4 光綫傳感器(light) 410
16.1.5 陀螺儀傳感器(gyroscope) 411
16.1.6 方嚮傳感器(orientation) 411
16.1.7 其他傳感器 412
16.2 輸入輸齣技術 413
16.2.1 語音識彆 413
16.2.2 手勢輸入 415
16.2.3 語音朗讀(tts) 417
16.3 google地圖 419
16.4 gps定位 423
16.5 桌麵上的小東西 425
16.5.1 窗口小部件(appwidget) 425
16.5.2 快捷方式 431
16.5.3 實時文件夾 433
16.6 應用更華麗——動態壁紙 435
16.7 小結 441
第三部分 高 級 篇
第17章 html5與移動web開發 444
17.1 html5簡介 444
17.2 html5精彩效果演示 445
17.3 html5在android中的應用 447
17.4 html5的畫布(canvas) 448
17.4.1 canvas概述 448
17.4.2 檢測瀏覽器是否支持canvas 449
17.4.3 在web頁麵中使用canvas 450
17.4.4 使用路徑(path) 452
17.4.5 設置綫條風格 453
17.4.6 設置填充類型 453
17.4.7 填充矩形區域 454
17.4.8 使用漸變色(gradient) 454
17.4.9 拉伸畫布對象 455
17.4.10 在canvas上繪製文本 456
17.4.11 使用陰影 457
17.5 調試javascript 458
17.6 小結 459
第18章 輸入法開發 460
18.1 android輸入法簡介 460
18.2 控製輸入法 461
18.3 輸入法實戰 462
18.3.1 實現輸入法的步驟 463
18.3.2 編寫輸入法程序 463
18.3.3 輸入法服務的生命周期 466
18.3.4 預輸入文本 467
18.3.5 輸入法設置 467
18.4 小結 468
第19章 android opengl es開發基礎 469
19.1 opengl簡介 469
19.2 什麼是opengl es 469
19.3 多邊形 470
19.4 顔色 474
19.5 鏇轉三角形 475
19.6 鏇轉立方體 477
19.7 小結 478
第20章 opengl es的超酷效果 479
20.1 保持平衡的鏇轉文本 479
20.2 左右搖擺的android機器人 482
20.3 糾纏在一起的鏇轉立方體 485
20.4 透明背景的鏇轉立方體 486
20.5 觸摸鏇轉的立方體 487
20.6 2d和3d的綜閤鏇轉效果 489
20.7 鏇轉立體天空 491
20.8 小結 493
第21章 android ndk編程 494
21.1 android ndk簡介 494
21.2 安裝、配置和測試ndk開發環境 495
21.2.1 係統和軟件要求 495
21.2.2 下載和安裝android ndk 495
21.2.3 下載和安裝cygwin 495
21.2.4 配置android ndk的開發環境 498
21.3 第一個ndk程序:世界你好 499
21.3.1 編寫和調用ndk程序 499
21.3.2 用命令行方式編譯ndk程序 501
21.3.3 在eclipse中集成android ndk 502
21.4 背景不斷變化的三角形(ndk 版opengl es) 504
21.5 使用ndk opengl esapi實現韆變萬化的3d效果 507
21.6 使用ndk調用音頻api 510
21.7 本地activity(native activity) 511
21.8 android ndk配置文件詳解 513
21.8.1 android ndk定義的變量 513
21.8.2 android ndk定義的函數 514
21.8.3 描述模塊的變量 515
21.8.4 配置application.mk文件 516
21.9 小結 516
第22章 測試驅動開發(tdd) 517
22.1 junit測試框架 517
22.2 測試activity 517
22.3 測試content provider 521
22.4 測試service 523
22.5 測試普通類 523
22.6 小結 525
第四部分 綜閤實例篇
第23章 android綜閤案例一——藍牙聊天 528
23.1 藍牙聊天主界麵 528
23.2 添加選項菜單 530
23.3 搜索和連接藍牙設備 530
23.4 使設備可被其他藍牙設備發現 533
23.5 發送和接收聊天信息 533
23.6 小結 537
第24章 android綜閤案例二——月球登陸(遊戲) 538
24.1 遊戲的玩法 538
24.2 實現遊戲界麵 539
24.3 設置遊戲難度 540
24.4 開始遊戲 541
24.5 控製飛船噴火 544
24.6 控製飛船改變飛行方嚮 544
24.7 判斷飛船是否成功 著陸 545
24.8 小結 546
第25章 android綜閤案例三——全鍵盤輸入法(應用) 547
25.1 安裝輸入法 547
25.2 輸入法的初始化工作 548
25.3 響應鍵盤操作 549
25.4 根據edittext控件的 屬性顯示不同的軟鍵盤 551
25.5 小結 553
第26章 android綜閤案例四——貪吃蛇(遊戲) 554
26.1 遊戲玩法 554
26.2 遊戲主界麵設計 555
26.3 控製小蛇的移動 557
26.4 小結 560
第27章 android綜閤案例五—— 新浪微博客戶端 (應用) 561
27.1 新浪微博簡介 561
27.1.1 新浪微博客戶端 561
27.1.2 新浪微博開放 api 563
27.2 使用新浪微博開發 api 563
27.3 創建和配置新浪微 博客戶端工程 564
27.4 登錄新浪微博 564
27.5 功能按鈕 567
27.6 顯示“我的首頁”的微博 569
27.7 評論微博 572
27.8 轉發微博 573
27.9 寫微博 574
27.10 小結 576
第28章 android綜閤案例六—— 笑臉連連看 (遊戲) 577
28.1 遊戲玩法 577
28.2 準備圖像素材 578
28.3 實現主界麵 578
28.4 隨機生成連連看 圖像 580
28.5 選中兩個相同圖像 後消失 580
28.6 用定時器限製遊戲 時間 581
28.7 小結 582
· · · · · · (
收起)