天天看點

《Android/OPhone 開發完全講義》已出版,現提供源代碼下載下傳

《Android/OPhone 開發完全講義》已出版。

<a href="http://dev.10086.cn/cmdn/bbs/thread-16581-1-1.html" target="_blank">樣章下載下傳</a>

現将本書源代碼完全公開

《Android/OPhone 開發完全講義》已出版,現提供源代碼下載下傳
《Android/OPhone 開發完全講義》已出版,現提供源代碼下載下傳

目錄

前言

第1章 Android入門 1

1.1 Android的基本概念 1

1.1.1 Android簡介 1

1.1.2 Android的系統構架 3

1.2 Android開發環境的搭建 4

1.2.1 開發Android程式需要些什麼 4

1.2.2 安裝Android SDK 4

1.2.3 安裝Eclipse插件ADT 5

1.2.4 測試ADT是否安裝成功 5

1.3 Android SDK中的常用指令行工具 7

1.3.1 啟動和關閉ADB服務(adb start-server和adb kill-server) 7

1.3.2 查詢目前模拟器/裝置的執行個體(adb devices) 7

1.3.3 安裝、解除安裝和運作程式(adb install、adb uninstall和am) 7

1.3.4 PC與模拟器或真機交換檔案(adb pull和adb push) 8

1.3.5 Shell指令 8

1.3.6 建立、删除和浏覽AVD裝置(android) 9

1.3.7 建立SD卡 9

1.4 PC上的Android 9

1.4.1 Android LiveCD 10

.1.4.2 AndroidX86 10

1.5 Android的學習資源 11

1.6 應用程式商店 11

1.6.1 Android Market 11

1.6.2 Mobile Market(MM) 11

1.6.3 其他應用程式商店 12

1.7 本章小結 12

第2章 第一個Android程式 13

2.1 編寫用于顯示目前日期和時間的程式 13

2.1.1 建立一個Android工程 13

2.2.2 界面元件的布局 14

2.2.3 編寫實際代碼 14

2.2 調試程式 17

2.3 簽名和釋出應用程式 17

2.3.1 使用指令行方式進行簽名 18

2.3.2 使用ADT插件方式進行簽名 18

2.4 DDMS透視圖 19

2.5 本章小結 20

第3章 Android應用程式架構 21

3.1 Android應用程式中的資源 21

3.1.1 資源存放在哪裡 21

3.1.2 資源的種類 21

3.1.3 資源的基本使用方法 22

3.2 Android的應用程式元件 23

3.2.1 活動(Activity)元件 23

3.2.2 服務(Service)元件 23

3.2.3 廣播接收者(Broadcast receivers)元件 24

3.2.4 内容提供者(Content providers)元件 24

3.3 AndroidManifest.xml檔案的結構 24

3.5 本章小結 25

第4章 建立使用者接口 26

4.1 建立、配置和使用Activity 26

4.1.1 建立和配置Activity 26

4.1.2 Activity的生命周期 28

執行個體1:示範Activity的生命周期 29

4.2 視圖(View) 31

4.2.1 視圖簡介 32

4.2.2 使用XML布局檔案控制視圖 32

4.2.3 在代碼中控制視圖 33

執行個體2:混合使用XML布局檔案和代碼來控制視圖 35

4.2.4 定制元件(Widget)的三種方式 37

執行個體3:定制元件——帶圖像的TextView 37

執行個體4:定制元件——帶文本标簽的EditText 40

執行個體5:定制元件——可更換表盤的指針時鐘 42

4.3 使用AlertDialog類建立對話框 47

4.3.1 AlertDialog類簡介 47

4.3.2 【确認/取消】對話框 47

執行個體6:建立詢問是否删除檔案的

【确認/取消】對話框 48

4.3.3 帶3個按鈕的對話框 49

執行個體7:建立【覆寫/忽略/取消】對話框 49

4.3.4 簡單清單對話框 50

4.3.5 單選清單對話框 51

4.3.6 多選清單對話框 51

執行個體8:建立3種選擇省份的清單對話框 52

4.3.7 水準進度對話框和圓形進度對話框 56

執行個體9:水準進度對話框和圓形進度對話框示範 56

4.3.8 自定義對話框 59

執行個體10:建立登入對話框 59

執行個體11:使用Activity托管對話框 61

執行個體12:建立懸浮對話框和觸摸任何位置 都可以關閉的對話框 62

4.4 Toast和Notification 65

4.4.1 用Toast顯示提示資訊框 65

4.4.2 Notification與狀态欄資訊 66

4.5 菜單 68

4.5.1 建立選項菜單 68

4.5.2 設定與菜單項關聯的圖像和Activity 69

4.5.3 響應選項菜單項單擊事件的3種方式 69

4.5.4 動态添加、修改和删除選項菜單 70

4.5.5 建立帶複選框和選項按鈕的子菜單 71

4.5.6 建立上下文菜單 72

4.5.7 菜單事件 73

執行個體13:Activity菜單、子菜單、上下

文菜單示範 73

4.6 布局 74

4.6.1 架構布局(FrameLayout) 74

執行個體14:霓虹燈效果的TextView 75

4.6.2 線性布局(LinearLayout) 76

執行個體15:利用LinearLayout将按鈕放在螢幕的四角和中心位置 78

4.6.3 相對布局(RelativeLayout) 79

執行個體16:利用RelativeLayout實作梅花效果的布局 79

4.6.4 表格布局(TableLayout) 80

執行個體17:電腦按鈕的布局 80

4.6.5 絕對布局(AbsoluteLayout) 81

4.7 本章小結 81

第5章 元件詳解 82

5.1 顯示和編輯文本的元件 82

5.1.1 顯示文本的元件:TextView 83

執行個體18:在TextView中顯示URL及不同字型大小、不同顔色的文本 84

執行個體19:帶邊框的TextView 86

5.1.2 輸入文本的元件:EditText 87

執行個體20:在EditText中輸入特定的字元 88

執行個體21:按Enter鍵顯示EditText 89

5.1.3 自動完成輸入内容的元件:AutoCompleteTextView 90

5.2 按鈕與複選框元件 91

5.2.1 普通按鈕元件:Button 91

執行個體22:異形(圓形、五角星、螺旋形 和箭頭)按鈕 92

5.2.2 圖像按鈕元件:ImageButton 93

執行個體23:同時顯示圖像和文字的按鈕 94

5.2.3 選項按鈕元件:RadioButton 94

5.2.4 開關狀态按鈕元件:ToggleButton 95

5.2.5 複選框元件:CheckBox 95

執行個體24:利用XML布局檔案動态建立CheckBox 96

5.3 日期與時間元件 98

5.3.1 輸入日期的元件:DatePicker 98

5.3.2 輸入時間的元件:TimePicker 98

執行個體25:DatePicker、TimePicker與TextView

同步顯示日期和時間 98

5.3.3 顯示時鐘的元件:AnalogClock和DigitalClock 99

5.4 進度條元件 100

5.4.1 進度條元件:ProgressBar 100

5.4.2 拖動條元件:SeekBar 101

執行個體26:改變ProgressBar和SeekBar

的顔色 102

5.4.3 評分元件:RatingBar 103

5.5 其他重要元件 104

5.5.1 顯示圖像的元件:ImageView 104

執行個體27:可顯示圖像指定區域的ImageView元件 105

執行個體28:動态縮放和旋轉圖像 106

5.5.2 清單元件:ListView 107

執行個體29:可以單選和多選的ListView 109

執行個體30:動态添加、删除ListView

清單項 110

執行個體31:改變ListView清單項選中狀态的背景顔色 113

5.5.3 封裝ListView的Activity:ListActivity 114

執行個體32:使用SimpleAdapter建立複雜的清單項 114

執行個體33:給應用程式評分 115

5.5.4 可展開的清單元件:ExpandableListView 118

5.5.5 下拉清單元件:Spinner 119

5.5.6 垂直滾動視圖元件:ScrollView 121

5.5.7 水準滾動視圖元件:Horizontal-ScrollView 121

執行個體34:可垂直和水準滾動的視圖 122

5.5.8 網格視圖元件:GridView 122

5.5.9 可循環顯示和切換圖像的元件:Gallery和ImageSwitcher 123

5.5.10 标簽元件:TabHost 125

5.6 本章小結 126

第6章 移動存儲解決方案 127

6.1 最簡單的資料存儲方式:SharedPreferences 127

6.1.1 使用SharedPreferences存取資料 127

6.1.2 資料的存儲位置和格式 129

執行個體35:存取複雜類型的資料 129

6.1.3 設定資料檔案的通路權限 131

6.1.4 可以儲存設定的Activity——PreferenceActivity 132

6.2 檔案的存儲 135

6.2.1 openFileOutput和openFileInput方法 135

執行個體36:SD卡檔案浏覽器 136

執行個體37:存取SD卡中的圖像 140

6.2.2 SAX引擎讀取XML檔案的原理 141

執行個體38:将XML資料轉換成Java對象 142

6.4 SQLite資料庫 145

6.4.1 SQLite資料庫管理工具 145

6.4.2 建立資料庫和表 146

6.4.3 模糊查詢 147

6.4.4 分頁顯示記錄 147

6.4.5 事務 147

6.5 在Android中使用SQLite資料庫 147

6.5.1 SQLiteOpenHelper類與自動更新資料庫 148

6.5.2 SimpleCursorAdapter類與資料綁定 148

執行個體39:帶照片的聯系人管理系統 151

6.5.3 将資料庫與應用程式一起釋出 154

執行個體40:英文詞典 154

6.6 抽象的标準——内容提供者(ContentProvider) 157

6.6.1 獲得系統資料 157

執行個體41:将聯系人管理和英文字典內建到自己的應用中 158

6.7 本章小結 163

第7章 應用程式之間的通訊 164

7.1 Intent與Activity 164

7.1.1 用Intent啟動Activity,并在Activity

之間傳遞資料 164

7.1.2 調用其他應用程式中的Activity(撥打電話、浏覽網頁、發Email等) 167

7.1.3 定制自己的Activity Action 170

執行個體42:将電子詞典的查詢功能共享成一個Activity Action 172

7.2 接收和發送廣播 173

7.2.1 接收系統廣播 173

執行個體43:開機可自動運作的程式 174

執行個體44:收到短信了,該做點什麼 174

執行個體45:顯示手機電池的目前電量 176

7.2.2 在自己的應用程式中發送廣播 177

執行個體46:接收聯系人系統中發送的添加聯系人廣播 178

7.3 本章小結 179

第8章 Android服務 180

8.1 Service起步 180

8.1.1 Service的生命周期 180

8.1.2 綁定Activity和Service 183

8.1.3 在BroadcastReceiver中啟動Service 185

8.2 系統服務 186

8.2.1 獲得系統服務 186

執行個體47:監聽手機來電 187

執行個體48:來電黑名單 188

8.2.2 在模拟器上模拟重力感應 189

執行個體49:手機翻轉靜音 190

8.3 時間服務 192

8.3.1 計時器:Chronometer 192

8.3.2 預約時間Handler 194

8.3.3 定時器Timer 195

8.3.4 線上程中更新GUI元件 196

8.3.5 全局定時器AlarmManager 198

執行個體50:定時更換桌面 199

執行個體51:多次定時提醒 201

8.4 跨程序通路(AIDL服務) 203

8.4.1 什麼是AIDL服務 204

8.4.2 建立AIDL服務的步驟 204

執行個體52:建立AIDL服務 204

執行個體53:傳遞複雜資料的AIDL服務 207

8.5 本章小結 211

第9章 網絡 212

9.1 可裝載網絡資料的元件 212

執行個體54:将網絡圖像裝載到ListView元件中 213

執行個體55:Google圖像畫廊(Gallery) 215

9.2 WebView元件 219

9.2.1 用WebView元件浏覽網頁 219

執行個體56:手機浏覽器 219

9.2.2 用WebView元件裝載HTML代碼 220

執行個體57:将英文詞典整合到Web頁中(JavaScript調用Java方法) 222

9.3 通路HTTP資源 223

9.3.1 送出HTTP GET和HTTP POST

請求 223

9.3.2 HttpURLConnection類 225

執行個體58:上傳檔案 226

執行個體59:遠端Apk安裝器 229

9.3.3 調用WebService 230

執行個體60:通過WebService查詢産品資訊 231

9.4 本章小結 234

第10章 多媒體 235

10.1 圖形 235

10.1.1 圖形繪制基礎 235

執行個體61:繪制基本的圖形和文本 237

10.1.2 繪制位圖 241

執行個體62:用兩種方式繪制位圖 241

10.1.3 設定顔色的透明度 242

執行個體63:可任意改變透明度的位圖 243

10.1.4 旋轉圖像 244

執行個體64:旋轉動畫 244

10.1.5 扭曲圖像 245

執行個體65:按圓形軌迹扭曲圖像 246

10.1.6 拉伸圖像 249

執行個體66:拉伸圖像示範 249

10.1.7 路徑 251

執行個體67:沿着路徑繪制文本 254

執行個體68:可在圖像上繪制圖形的畫闆 256

10.2 音頻和視訊 260

10.2.1 使用MediaPlayer播放MP3檔案 260

10.2.2 使用MediaRecorder錄音 261

10.2.3 使用VideoView播放視訊 262

10.2.4 使用SurfaceView播放視訊 262

10.3 本章小結 263

第11章 2D動畫 264

11.1 幀(Frame)動畫 264

AnimationDrawable與幀動畫 264

執行個體69:通過幀動畫方式播放Gif動畫 266

執行個體70:播放幀動畫的子集 268

11.2 補間(Tween)動畫 270

11.2.1 移動補間動畫 270

執行個體71:循環向右移動的EditText與上下彈跳的球 272

11.2.2 縮放補間動畫 274

執行個體72:跳動的心 274

11.2.3 旋轉補間動畫 276

執行個體73:旋轉的星系 276

11.2.4 透明度補間動畫 277

執行個體74:投擲炸彈 278

11.2.5 振動效果 280

11.2.6 自定義動畫渲染器(Interceptor) 281

11.2.7 以動畫方式切換View的元件ViewFlipper 282

11.3 本章小結 284

第12章 OpenGL ES程式設計 285

12.1 OpenGL簡介 285

12.2 建構OpenGL ES的基本開發架構 286

12.3 2D圖形繪制 287

12.3.1 多邊形 287

12.3.2 顔色 289

12.3.3 旋轉 290

12.4 3D圖形繪制 291

12.4.1 旋轉立方體 291

12.4.2 在立方體上顯示紋理 292

12.4.3 光照下的立方體 293

12.4.4 透明的立方體 295

12.5 本章小結 295

第13章 資源、國際化與自适應 296

13.1 Android中的資源 296

13.1.1 Android怎麼存儲資源 297

13.1.2 資源的種類 297

13.1.3 資源檔案的命名 298

13.2 定義和使用資源 298

13.2.1 使用系統資源 298

13.2.2 字元串(String)資源 299

13.2.3 數組(Array)資源 300

13.2.4 顔色(Color)資源 302

13.2.5 尺寸(Dimension)資源 303

13.2.6 類型(Style)資源 304

13.2.7 主題(Theme)資源 305

13.2.8 繪畫(Drawable)資源 306

13.2.9 動畫(Animation)資源 307

13.2.10 菜單(Menu)資源 307

13.2.11 布局(Layout)資源 310

13.2.12 屬性(Attribute)資源 310

執行個體75:改進可顯示圖示的IconTextView元件 312

13.2.13 XML資源 313

13.2.14 RAW資源 314

13.2.15 ASSETS資源 314

13.3 國際化和資源自适應 315

13.3.1 對資源進行國際化 315

13.3.2 Locale與國際化 317

13.3.3 常用的資源配置 317

13.4 本章小結 318

第14章 通路Android手機的硬體 319

14.1 在手機上測試硬體 319

14.1.1 安裝Android USB驅動 319

14.1.2 在手機上測試程式 321

14.1.3 在手機上調試程式 321

14.2 錄音 322

14.3 控制手機攝像頭(拍照) 323

14.3.1 調用系統的拍照功能 323

14.3.2 實作自己的拍照Activity 325

14.4 傳感器在手機中的應用 329

執行個體76:電子羅盤 330

執行個體77:計步器 331

14.5 GPS與地圖定位 332

14.5.1 Google地圖 333

14.5.2 用GPS定位到目前位置 336

14.6 WIFI 337

14.7 本章小結 339

第15章 放在桌面上的小玩意 340

15.1 視窗小部件(App Widget) 340

15.1.1 在Android桌面上添加App Widget 340

15.1.2 開發App Widget的步驟 341

執行個體78:數字時鐘 343

15.1.3 AppWidgetProvider類 345

15.1.4 向App Widget添加配置Activity 346

執行個體79:可以選擇風格的數字時鐘 346

15.2 快捷方式 350

15.2.1 向快捷方式清單中添加快捷方式 350

15.2.2 直接将快捷方式放到桌面上 351

15.3 實時檔案夾(LiveFolder) 351

15.4 本章小結 353

第16章 NDK程式設計 354

16.1 Android NDK簡介 354

16.2 安裝、配置和測試NDK開發環境 355

16.2.1 系統和軟體要求 355

16.2.2 下載下傳和安裝Android NDK 355

16.2.3 下載下傳和安裝Cygwin 356

16.2.4 配置Android NDK的開發環境 358

16.2.5 編譯和運作NDK自帶的例子 359

16.3 Android NDK開發 361

16.3.1 JNI接口設計 361

16.3.2 編寫Android NDK程式的步驟 362

執行個體80:将檔案中的小寫字母轉換成大寫字母(NDK版本) 362

16.3.3 配置Android.mk檔案 364

16.3.4 Android NDK定義的變量 365

16.3.5 Android NDK定義的函數 366

16.3.6 描述子產品的變量 366

16.3.7 配置Application.mk檔案 367

16.4 本章小結 368

第17章 整合Android與腳本語言 369

17.1 Android腳本環境簡介 369

17.2 Android腳本環境安裝 370

17.3 編寫和運作Android腳本 371

17.4 本章小結 373

第18章 Android平台的新特性展示 374

18.1 Android平台的新特性 374

18.1.1 Android 1.6的新特性 374

18.1.2 Android 2.0的新特性 376

18.2 Android Framework API演變 376

18.2.1 Android 1.6 Framework API的變化 376

18.2.2 Android 2.x Framework API的變化 377

18.3 實時桌面(Live Wallpapers,Android 2.1) 377

18.4 補間動畫渲染器(Android 1.6) 384

18.4.1 Anticipate渲染器 385

18.4.2 Overshoot渲染器 385

18.4.3 Anticipate/Overshoot渲染器 385

18.4.4 Bounce渲染器 385

18.5 本章小結 386

第19章 另類的輸入輸出(Android 1.6) 387

19.1 手勢(Gesture) 387

19.1.1 建立手勢檔案 387

19.1.2 通過手勢輸入字元串 388

19.1.3 通過手勢調用程式 390

19.1.4 編寫自己的手勢建立器 391

19.2 讓手機說話(TTS) 392

19.3 本章小結 393

第20章 藍牙(Android 2.0) 394

20.1 藍牙簡介 394

20.2 打開和關閉藍牙裝置 395

20.3 搜尋藍牙裝置 395

20.4 藍牙Socket 397

20.5 OBEX伺服器 399

20.6 本章小結 400

第21章 OPhone入門 401

21.1 OPhone平台概述 401

21.1.1 OPhone的系統架構 401

21.1.2 JIL Widget的運作環境 402

21.1.3 OPhone應用程式展示 402

21.2 OPhone開發環境搭建 403

21.2.1 安裝ODT和WDT 403

21.2.2 測試一下ODT是否安裝成功 403

21.2.3 測試一下WDT是否安裝成功 403

21.3 本章小結 404

第22章 OPhone的API擴充 405

22.1 視訊電話 405

22.1.1 撥打視訊電話 405

22.1.2 挂斷視訊電話 405

執行個體81:可撥打視訊電話的程式 406

22.2 搜尋API 407

22.3 本章小結 408

第23章 JIL Widget開發詳解 409

23.1 編寫第一個JIL Widget程式 409

23.2 多媒體 411

23.2.1 播放音頻 411

23.2.2 播放視訊 412

23.3 操作檔案 412

23.3.1 獲得與檔案相關的資訊 413

23.3.2 操作檔案 413

23.3.3 操作檔案夾 415

23.4 獲得系統資訊 416

23.4.1 獲得電池資訊 416

23.4.2 獲得手機信号資訊 417

23.4.3 獲得裝置資訊 418

23.4.4 獲得裝置狀态資訊 418

23.5 控制硬體 419

23.5.1 拍照和攝像 420

23.5.2 打電話 420

23.5.3 手機振動 420

23.6 本章小結 421

第24章 萬年曆 422

24.1 主界面設計與實作 422

24.1.1 萬年曆的核心類:Calendar 422

24.1.2 月曆内容元素的基類:CalendarParent 424

24.1.3 繪制萬年曆邊框:Border類 424

24.1.4 繪制周名稱:Week類 425

24.2.5 繪制日期和網格:Grid類 426

24.2.6 月曆視圖:CalendarView類 433

24.2.7 生成萬年曆的主界面 435

24.2 選項菜單功能 436

24.2.1 切換到今天的日期 436

24.2.2 指定日期 436

24.3 可以寫日記和提醒的萬年曆 437

24.3.1 顯示所有的記錄資訊:AllRecord類 437

24.3.2 添加和修改記錄:Record類 439

24.3.3 設定提醒時間 440

24.3.4 啟動服務 441

24.3.5 在廣播接收器中顯示提醒界面 442

24.3.6 通路資料庫:DBService 443

24.4 本章小結 447

第25章 知道目前位置的Google GTalk機器人 448

25.1 GTalk的通訊協定和技術 448

25.1.1 Jabber和XMPP 448

25.1.2 XMPP用戶端庫:Smack和Asmack 449

25.2 登入GTalk:Login類 449

25.3 聯系人資訊 451

25.3.1 顯示聯系人清單 451

25.3.2 監聽聯系人是否上線 453

25.4 聯系人之間的通訊 454

25.4.1 發送聊天資訊 455

25.4.2 接收聊天資訊 455

25.4.3 自動回複目前的位置(GPS定位) 458

25.5 本章小結 459

本文轉自銀河使者部落格園部落格,原文連結http://www.cnblogs.com/nokiaguy/archive/2010/07/01/1769079.html如需轉載請自行聯系原作者

銀河使者