瘋狂Android講義
瘋狂源自夢想
技術成就輝煌
基本資料
作者:李剛
出版社:電子工業出版社
ISBN:9787121135767
上架時間:2011-6-27
出版日期:2011 年7月
http://product.china-pub.com/193974
《瘋狂Android講義》電子書線上閱讀
內容簡介
電腦便攜化是未來的發展趨勢,而android作為最受歡迎的手機、平板電腦操作之一,其發展的上升勢頭是勢不可當的。而android應用選擇了java作為其開發語言,對於java來說也是一次極好的機會。
《瘋狂android講義》全面地介紹了android應用開發的相關知識,全書內容覆蓋了android使用者介面編程、android四大組件、
android資源訪問、圖形/影像處理、事件處理機制、android輸入/輸出處理、音頻/視頻多媒體應用開發、opengl與3d應用開發、網路通
信編程、android平台的web service、感應器應用開發、gps應用開發、google map服務等。
《瘋狂android講義》並不局限於介紹android編程的各種理論知識,而是從“項目驅動”的角度來講授理論,全書一共包括近百個執行個體,這些示範性
的執行個體既可幫讀者更好地理解各知識點在實際開發中的應用,也可供讀者在實際開發時作為參考、拿來就用。《瘋狂android講義》最後還提供了兩個實用的
案例:瘋狂連連看和電子拍賣系統android用戶端,具有極高的參考價值。《瘋狂android講義》提供了配套的答疑網站,如果讀者在閱讀《瘋狂
android講義》時遇到了技術問題,可以登入瘋狂java聯盟(http://www.crazyit.org)發帖,筆者將會及時予以解答。
《瘋狂android講義》適合於有一定java編程基礎的讀者。如果讀者已熟練掌握java編程文法並具有一定圖形介面編程經驗,閱讀《瘋狂
android講義》將十分合適。否則,閱讀《瘋狂android講義》之前建議先認真閱讀瘋狂java體系之《瘋狂java講義》。
目錄
《瘋狂android講義》
第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 安裝eclipse和adt外掛程式 7
1.3 android常用開發工具的用法 10
1.3.1 建立、刪除和瀏覽avd 10
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)打包資源 19
1.3.7 使用mksdcard管理虛擬sd卡 19
1.4 開始第一個android應用 20
.1.4.1 使用eclipse開發第一個
android應用 20
1.4.2 通過adt運行android應用 23
1.5 android應用結構分析 24
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應用的基本組件
介紹 31
1.6.1 activity和view 31
1.6.2 service 32
1.6.3 broadcastreceiver 32
1.6.4 contentprovider 32
1.6.5 intent和intentfilter 33
1.7 本章小結 33
第2章 android應用的介面編程 35
2.1 介面編程與視圖(view)組件 36
2.1.1 視圖組件與容器組件 36
2.1.2 使用xml布局檔案控制ui
介面 40
2.1.3 在代碼中控制ui介面 41
2.1.4 使用xml布局檔案和java
代碼混合控制ui介面 42
2.1.5 開發自訂view 43
2.2 布局管理器 46
2.2.1 線性布局 47
2.2.2 表格版面配置 49
2.2.3 幀布局 52
2.2.4 相對布局 55
2.2.5 絕對布局 58
2.3 基本介面組件 60
2.3.1 文字框(textview)與編輯框
(edittext)的功能和用法 60
2.3.2 按鈕(button)與圖片按鈕(imagebutton)組件的功能和
用法 66
2.3.3 使用9patch圖片作為按鈕背景 68
2.3.4 選項按鈕(radiobutton)和複選
框(checkbox)介紹與應用 69
2.3.5 狀態開關按鈕(togglebutton)
的功能與用法 71
2.3.6 時鐘(analogclock和digital
clock)的功能與功法 73
2.3.7 映像視圖(imageview)的
功能和用法 75
2.4 進階介面組件 79
2.4.1 自動完成文字框(autocompletetextview)的
功能和用法 79
2.4.2 spinner的功能和用法 80
2.4.3 日期、時間選取器(datepicker
和timepicker)的功能和用法 83
2.4.4 進度條(progressbar)的
功能和用法 85
2.4.5 拖動條(seekbar)的功能和
用法 90
2.4.6 星級評等條(ratingbar)的
功能和用法 91
2.4.7 選項卡(tabhost)的功能和
用法 93
2.4.8 滾動視圖(scrollview)的
功能和用法 95
2.4.9 列表視圖(listview和
listactivity) 95
2.4.10 可展開的列表組件(expandablelistview) 101
2.4.11 網格視圖(gridview)和
映像切換器(imageswitcher)
功能和用法 104
2.4.12 畫廊視圖(gallery)的功能和
用法 107
2.5 對話方塊 110
2.5.1 使用alertdialog建立簡單
對話方塊 110
2.5.2 使用alertdialog建立列表
對話方塊 112
2.5.3 使用alertdialog建立自訂
對話方塊 116
2.5.4 使用popupwindow 121
2.5.5 使用datepickerdialog、timepickerdialog 123
2.5.6 使用progressdialog建立進度
對話方塊 125
2.6 訊息提示 127
2.6.1 使用toast顯示提示資訊框 128
2.6.2 notification的功能與用法 129
2.7 菜單 132
2.7.1 選項菜單和子功能表
(submenu) 132
2.7.2 使用監聽器來監聽菜單事件 136
2.7.3 建立複選功能表項目和單選功能表項目 137
2.7.4 設定與功能表項目關聯的activity 140
2.7.5 操作功能表 141
2.8 本章小結 143
第3章 事件處理 144
3.1 android的事件處理 145
3.2 基於監聽的事件處理 145
3.2.1 事件監聽的處理模型 145
3.2.2 事件和事件監聽器 148
3.2.3 內部類作為事件監聽器類 151
3.2.4 外部類作為事件監聽器類 152
3.2.5 activity本身作為事件監聽器 153
3.2.6 匿名內部類作為事件監聽器類 154
3.2.7 直接綁定到標籤 155
3.3 基於回調的事件處理 156
3.3.1 回調機制與監聽機制 156
3.3.2 基於回調的事件傳播 158
3.3.3 重寫ontouchevent方法響應
觸控螢幕事件 160
3.4 響應的系統設定的事件 162
3.4.1 configuration類簡介 162
3.4.2 重寫onconfigurationchanged
響應系統設定更改 164
3.5 handler訊息傳遞機制 166
3.5.1 handler類簡介 166
3.5.2 handler使用案例 167
3.6 本章小結 168
第4章 深入理解activity 169
4.1 建立、配置和使用activity 170
4.1.1 建立activity 170
4.1.2 配置activity 177
4.1.3 啟動、關閉activity 179
4.1.4 使用bundle在activity之間
交換資料 181
4.1.5 啟動其他activity並返回結果 185
4.2 activity的回調機制 189
4.3 activity的生命週期 190
4.3.1 activity的生命週期示範 190
4.3.2 activity與servlet的相似性與
區別 194
4.4 本章小結 195
第5章 使用intent和intentfilter
第5章 進行通訊 196
5.1 intent對象詳解 197
5.1.1 使用intent啟動系統組件 197
5.2 intent的屬性及intent-filter
配置 198
5.2.1 component屬性 198
5.2.2 action、category屬性與
intent-filter配置 200
5.2.3 指定action、category調用
系統activity 204
5.2.4 data、type屬性與intent-filter
配置 209
5.2.5 extra屬性 211
5.3 使用intent建立tab頁面 211
5.4 本章小結 212
第6章 android應用的資源 213
6.1 資源的類型及儲存方式 214
6.1.1 資源的類型以及儲存方式 214
6.1.2 使用資源 216
6.2 使用字串、顏色、
尺寸資源 217
6.2.1 顏色值的定義 217
6.2.2 定義字串、顏色、尺寸資源
檔案 218
6.2.3 使用字串、顏色、
尺寸資源 219
6.3 數組(array)資源 222
6.4 使用(drawable)資源 225
6.4.1 圖片資源 225
6.4.2 statelistdrawable資源 225
6.4.3 layerdrawable資源 227
6.4.4 shapedrawable資源 229
6.4.5 clipdrawable資源 231
6.4.6 animationdrawable資源 233
6.5 使用原始xml資源 236
6.5.1 定義原始xml資源 236
6.5.2 使用原始xml檔案 237
6.6 使用布局(layout)資源 239
6.7 使用菜單(menu)資源 239
6.7.1 定義菜單資源 239
6.7.2 使用菜單資源 240
6.8 樣式(style)和主題(theme)
資源 243
6.8.1 樣式資源 243
6.8.2 佈景主題資源 245
6.9 屬性(attribute)資源 247
6.10 使用原始資源 249
6.11 國際化和資源自適應 251
6.11.1 java國際化的思路 252
6.11.2 java支援的語言和國家 252
6.11.3 完成程式國際化 253
6.11.4 為android應用提供國際化
資源 255
6.11.5 國際化android應用 256
6.12 本章小結 258
第7章 圖形與影像處理 259
7.1 使用簡單圖片 260
7.1.1 使用drawable對象 260
7.1.2 bitmap和bitmapfactory 260
7.2 繪圖 263
7.2.1 android繪圖基礎:canvas、
paint等 263
7.2.2 path類 267
7.2.3 繪製遊戲動畫 270
7.3 圖形特效處理 278
7.3.1 使用matrix控制變換 278
7.3.2 使用drawbitmapmesh扭曲
映像 282
7.3.3 使用shader填充圖形 285
7.4 逐幀(frame)動畫 288
7.4.1 animationdrawable與逐幀
動畫 288
7.5 補間(tween)動畫 292
7.5.1 tween動畫與interpolator 292
7.5.2 位置、大小、旋轉度、透明度
改變的補間動畫 293
7.5.3 自訂補間動畫 298
7.6 使用surfaceview實現動畫 300
7.6.1 surfaceview的繪圖機制 301
7.7 本章小結 305
第8章 android的資料存放區和io 306
8.1 使用sharedpreferences 307
8.1.1 sharedpreferences與editor
簡介 307
8.1.2 sharedpreferences的儲存
位置和格式 308
8.1.3 讀、寫其他應用shared
preferences 310
8.2 file儲存 311
8.2.1 openfileoutput和open
fileinput 312
8.2.2 讀寫sd卡上的檔案 314
8.3 sqlite資料庫 321
8.3.1 簡介sqlitedatabase 321
8.3.2 建立資料庫和表 323
8.3.3 使用sql語句操作sqlite
資料庫 323
8.3.4 使用sqlite3工具 325
8.3.5 使用特定方法操作sqlite
資料庫 327
8.3.6 事務 329
8.3.7 sqliteopenhelper類 330
8.4 手勢(gesture) 335
8.4.1 手勢檢測 335
8.4.2 增加手勢 342
8.4.3 識別使用者的手勢 346
8.5 自動朗讀(tts) 347
8.6 本章小結 350
第9章 使用contentprovider實現
第9章 資料共用 351
9.1 資料共用標準:
contentprovider簡介 352
9.1.1 contentprovider簡介 352
9.1.2 uri簡介 353
9.1.3 使用contentresolver操作
資料 354
9.2 作業系統的contentprovider 355
9.2.1 使用contentprovider管理
連絡人 355
9.2.2 使用contentprovider管理
多媒體內容 360
9.3 實現contentprovider 364
9.3.1 建立contentprovider的步驟 364
9.4 監聽contentprovider的資料
改變 370
9.4.1 contentobserver簡介 370
9.5 本章小結 372
第10章 service與broadcast
第10章 receiver 373
10.1 service簡介 374
10.1.1 建立、配置service 374
10.1.2 啟動和停止service 376
10.1.3 綁定本地service並與之
通訊 377
10.1.4 service的生命週期 381
10.2 跨進程調用service
(aidl服務) 382
10.2.1 aidl服務簡介 382
10.2.2 建立aidl檔案 383
10.2.3 將介面暴露給用戶端 383
10.2.4 用戶端訪問aidlservice 385
10.3 電話管理器
(telephonymanager) 393
10.4 簡訊管理器(smsmanager) 400
10.5 音頻管理器
(audiomanager) 404
10.5.1 audiomanager簡介 404
10.6 震動器(vibrator) 407
10.6.1 vibrator簡介 407
10.6.2 使用vibrator控制手機震動 407
10.7 手機鬧鐘服務
(alarmmanager) 408
10.7.1 alarmmanager簡介 408
10.7.2 設定鬧鐘 409
10.8 接收廣播訊息 413
10.8.1 broadcastreceiver簡介 413
10.8.2 發送廣播 414
10.8.3 有序廣播 416
10.9 接收系統廣播訊息 424
10.10 本章小結 427
第11章 多媒體應用開發 428
11.1 音頻和視頻的播放 429
11.1.1 使用mediaplayer播放音頻 429
11.1.2 使用soundpool播放音效 432
11.1.3 使用videoview播放視頻 435
11.1.4 使用mediaplayer和
surfaceview播放視頻 436
11.2 使用mediarecorder錄製
音頻 439
11.3 控制網路攝影機拍照 442
11.3.1 通過camera進行拍照 442
11.3.2 錄製視頻短片 446
11.4 本章小結 450
第12章 opengl與3d應用開發 451
12.1 3d映像與3d開發的
基本知識 452
12.2 opengl和opengl es簡介 453
12.3 繪製2d圖形 454
12.3.1 在android應用中使用
opengl es 454
12.3.2 繪製平面上的多邊形 457
12.3.3 旋轉 463
12.4 繪製3d圖形 465
12.4.1 構建3d圖形 465
12.4.2 應用紋理貼圖 469
12.5 本章小結 475
第13章 android的網路應用 476
13.1 基於tcp協議的網路通訊 477
13.1.1 tcp協議基礎 477
13.1.2 使用serversocket建立
tcp伺服器端 478
13.1.3 使用socket進行通訊 479
13.1.4 加入多線程 483
13.2 使用url訪問網路資源 488
13.2.1 使用url讀取網路資源 489
13.2.2 使用urlconnection
提交請求 490
13.3 使用http訪問網路 496
13.3.1 使用httpurlconnection 496
13.3.2 使用apache httpclient 501
13.4 使用webview視圖
顯示網頁 505
13.4.1 使用webview瀏覽網頁 506
13.4.2 使用webview載入html
代碼 507
13.5 使用web service進行
網路編程 508
13.5.1 web service簡介 509
13.5.2 web service平台概述 510
13.5.3 使用android應用調用
web service 512
13.6 本章小結 524
第14章 管理android手機案頭 525
14.1 管理手機案頭 526
14.1.1 刪除案頭組件 526
14.1.2 添加案頭組件 526
14.2 改變手機壁紙 527
14.2.1 開發即時壁紙
(live wallpapers) 528
14.3 案頭捷徑 532
14.3.1 在案頭上建立捷徑 532
14.3.2 向launcher添加捷徑 534
14.4 管理案頭小控制項 535
14.5 即時檔案夾(livefolder) 539
14.5.1 使用即時檔案夾顯示
contentprovider的資料 540
14.6 本章小結 545
第15章 感應器應用開發 546
15.1 利用android的感應器 547
15.1.1 開發感應器應用 547
15.1.2 下載和安裝sensorsimulator 549
15.1.3 利用sensorsimulator開發
感應器應用 551
15.2 android的常用感應器 553
15.2.1 方向感應器orientation 553
15.2.2 磁場感應器magnetic field 554
15.2.3 溫度感應器temperature 554
15.2.4 光感應器light 554
15.2.5 壓力感應器pressure 554
15.3 感應器應用案例 557
15.4 本章小結 564
第16章 gps應用開發 565
16.1 支援gps的核心api 566
16.2 擷取locationprovider 568
16.2.1 擷取所有可用的
locationprovider 568
16.2.2 通過名稱獲得指定
locationprovider 569
16.2.3 根據criteria獲得
locationprovider 569
16.3 擷取定位資訊 570
16.3.1 通過模擬器發送gps資訊 571
16.3.2 擷取定位元據 571
16.4 臨近警告 573
16.5 本章小結 575
第17章 使用google map服務 576
17.1 調用google map的準備 577
17.1.1 擷取map api key 577
17.1.2 建立支援google map api的
avd 580
17.2 根據gps資訊在地圖上
定位 582
17.3 gps導航 588
17.4 根據地址定位 590
17.4.1 位址解析與反向位址解析 590
17.4.2 根據地址定位 595
17.5 本章小結 597
第18章 瘋狂連連看 598
18.1 連連看遊戲簡介 599
18.2 開發遊戲介面 600
18.2.1 開發介面布局 600
18.2.2 開發遊戲介面組件 601
18.2.3 處理方塊之間的連接線 605
18.3 連連看的狀態資料模型 606
18.3.1 定義資料模型 606
18.3.2 初始化遊戲狀態資料 606
18.4 載入介面的圖片 610
18.5 實現遊戲activity 612
18.6 實現遊戲邏輯 618
18.6.1 定義gameservice組件介面 618
18.6.2 實現gameservice組件 619
18.6.3 擷取觸碰點的方塊 620
18.6.4 判斷兩個方塊是否可以相連 622
18.6.5 定義擷取通道的工具方法 623
18.6.6 沒有轉折點的橫向串連 625
18.6.7 沒有轉折點的縱向串連 626
18.6.8 一個轉折點的串連 626
18.6.9 兩個轉折點的串連 629
18.6.10 找出最短距離 636
18.7 本章小結 638
第19章 電子拍賣系統 639
19.1 系統功能簡介和架構設計 640
19.1.1 系統功能簡介 640
19.1.2 系統架構設計 641
19.2 json簡介 643
19.2.1 使用json文法建立對象 643
19.2.2 使用json文法建立數組 644
19.2.3 java的json支援 645
19.3 發送請求的工具類 646
19.4 使用者登入 647
19.4.1 處理登入的servlet 648
19.4.2 使用者登入 649
19.5 查看流拍物品 655
19.5.1 查看流拍物品的servlet 655
19.5.2 查看流拍物品 656
19.6 管理物品種類 661
19.6.1 瀏覽物品種類的servlet 661
19.6.2 查看物品種類 662
19.6.3 添加種類的servlet 666
19.6.4 添加物品種類 666
19.7 管理拍賣物品 668
19.7.1 查看自己的拍賣物品的
servlet 668
19.7.2 查看自己的拍賣物品 669
19.7.3 添加拍賣物品的servlet 672
19.7.4 添加拍賣物品 673
19.8 參與競拍 678
19.8.1 選擇物品種類 678
19.8.2 根據種類瀏覽物品的servlet 680
19.8.3 根據種類瀏覽物品 680
19.8.4 參與競價的servlet 682
19.8.5 參與競價 683
19.9 許可權控制 688
19.10 本章小結 689