Android开发权威指南(第2版)新书发布
《Android 開發(fā)權(quán)威指南(第二版)》是暢銷書《Android開發(fā)權(quán)威指南》的升級版,內(nèi)容更新超過80%,是一本全面介紹Android應(yīng)用開發(fā)的專著,擁有45 章精彩內(nèi)容供讀者學(xué)習(xí)。 《Android開發(fā)權(quán)威指南(第二版)》全面介紹了Android應(yīng)用開發(fā)的各種技術(shù),主要內(nèi)容包括Android的四大應(yīng) 用程序組件(Activity、Service、Content Provider和Broadcast Receiver)、布局、菜單、控件、資源和本地化、可視化UI設(shè)計、對話框、Toast和通知欄(Notification)、Fragment、 ActionBar、拖放技術(shù)、數(shù)據(jù)存儲技術(shù)、Android支持的各種組件技術(shù)、通信技術(shù)(藍(lán)牙、NFC、網(wǎng)絡(luò)等)、異步裝載、推送技術(shù)、多媒體、2D 繪圖技術(shù)、OpenGL ES、桌面小部件、動態(tài)壁紙、短信和彩信、傳感器、GPS、谷歌地圖、人機交互、輸入法開發(fā)、Android NDK開發(fā)、測試驅(qū)動開發(fā)、性能優(yōu)化等。 《Android開發(fā)權(quán)威指南(第二版)》并不局限于介紹Android的各種理論知識,而是從“實戰(zhàn)”的角 度介紹開發(fā)技術(shù)。《Android開發(fā)權(quán)威指南(第二版)》的所有示例都是精心設(shè)計的,足以使讀者對當(dāng)前講解的理論知識駕輕就熟。這些示例中的很多例子都 源于真實的項目,讀者可以對這些示例的源程序稍加改動就可用于自己的項目中。《Android開發(fā)權(quán)威指南(第二版)》除了為每一個知識點提供完整的示例 外,最后還提供了兩個完整的項目:笑臉連連看和NFC俠。這兩個項目極具參考價值,尤其是NFC俠,是筆者維護的一個開源項目,用于在不支持NFC的手機 或Android模擬器上開發(fā)和測試NFC應(yīng)用。讀者可以關(guān)注我的Blog(http://blog.csdn.net/nokiaguy)來獲得NFC 俠以及本書的最新信息。 《Android開發(fā)權(quán)威指南(第二版)》適合有一定Java基礎(chǔ)的讀者閱讀,如果讀者已經(jīng)掌握了Java的基本語法,那么 《Android開發(fā)權(quán)威指南(第二版)》將會成為您的首選和枕邊書,您將從書中獲得更多有價值的Android開發(fā)技術(shù)。
?
【1】亞馬遜
【2】當(dāng)當(dāng)網(wǎng)
【3】京東商城
【4】互動網(wǎng)
【5】淘寶網(wǎng)
?
目 錄
第1章 初識Android平臺 1
1.1 Android簡介 1
1.2 Android的制勝法寶 2
1.3 Android的版本發(fā)展歷程 3
1.3.1 Android 1.5(紙杯蛋糕) 3
1.3.2 Android 1.6(甜甜圈) 4
1.3.3 Android 2.1(松餅) 4
1.3.4 Android 2.2(凍酸奶) 5
1.3.5 Android 2.3(姜餅) 5
1.3.6 Android 3.0(蜂巢) 6
1.3.7 Android 4.0(冰激凌三明治) 6
1.3.8 Android 4.1/4.2(果凍豆) 7
1.4 Android的系統(tǒng)架構(gòu) 8
1.5 小結(jié) 9
第2章 搭建Android開發(fā)和測試環(huán)境 10
2.1 搭建Android開發(fā)環(huán)境需要些什么 10
2.2 安裝Java開發(fā)環(huán)境 10
2.2.1 安裝JDK 11
2.2.2 安裝和配置Eclipse 11
2.3 安裝Android開發(fā)環(huán)境 12
2.3.1 下載和安裝Android SDK 13
2.3.2 下載和安裝Android NDK 13
2.3.3 安裝和配置Eclipse插件:ADT 14
2.4 配置Android測試環(huán)境 15
2.4.1 建立Android虛擬設(shè)備(AVD) 15
2.4.2 啟動Android模擬器 16
2.4.3 安裝真機測試環(huán)境 17
2.5 小結(jié) 18
第3章 第一個Android應(yīng)用程序 19
3.1 從第一個Android程序中可以學(xué)到什么 19
3.2 建立Android工程 19
3.3 Android工程的結(jié)構(gòu) 21
3.4 在窗口上放兩個按鈕 22
3.5 編寫窗口類 23
3.6 修改字符串資源 24
3.7 運行Android應(yīng)用程序 25
3.8 調(diào)試Android應(yīng)用程序 27
3.9 簽名Android應(yīng)用程序 27
3.10 小結(jié) 29
第4章 Android應(yīng)用程序架構(gòu) 30
4.1 Android應(yīng)用程序中的資源 30
4.1.1 資源存放在哪里 30
4.1.2 資源的基本使用方法 30
4.2 Android的應(yīng)用程序組件 32
4.2.1 窗口(Activity)組件 32
4.2.2 服務(wù)(Service)組件 32
4.2.3 廣播接收者(Broadcast receivers)組件 33
4.2.4 內(nèi)容提供者(Content Provider)組件 33
4.3 AndroidManifest.xml文件的結(jié)構(gòu) 33
4.4 小結(jié) 34
第5章 窗口(Activity)與視圖(View) 35
5.1 聲明和使用Activity 35
5.1.1 Activity的基本用法 35
5.1.2 同時適合手機和平板電腦的窗口風(fēng)格 38
5.2 Activity的生命周期 40
5.3 窗口的常用事件 43
5.3.1 設(shè)置窗口標(biāo)題事件(onTitleChanged) 44
5.3.2 鍵盤按下和抬起事件(onKeyDown和onKeyUp) 45
5.3.3 任意情況下捕捉鍵盤事件(dispatchKeyEvent) 48
5.3.4 回退事件(onBackPressed) 49
5.3.5 按鍵長按事件(onKeyLongPress) 50
5.3.6 屏幕觸摸事件(onTouchEvent) 50
5.3.7 窗口獲得焦點事件(onWindowFocusChanged) 51
5.4 在不同Activity之間傳遞數(shù)據(jù) 52
5.4.1 使用Intent傳遞數(shù)據(jù) 53
5.4.2 使用靜態(tài)變量傳遞數(shù)據(jù) 54
5.4.3 使用剪貼板傳遞數(shù)據(jù) 55
5.4.4 使用全局對象傳遞數(shù)據(jù) 57
5.5 從Activity返回數(shù)據(jù) 59
5.6 視圖(View) 61
5.6.1 視圖簡介 61
5.6.2 使用XML布局文件定義視圖 61
5.6.3 在代碼中控制視圖 62
5.7 顯示系統(tǒng)窗口 64
5.7.1 直接撥號 65
5.7.2 將電話號傳入撥號程序 65
5.7.3 調(diào)用撥號程序 65
5.7.4 瀏覽網(wǎng)頁 65
5.7.5 查看聯(lián)系人 66
5.7.6 顯示系統(tǒng)設(shè)置界面(設(shè)置主界面、Wi-Fi設(shè)置界面) 66
5.7.7 啟動處理音頻的程序 66
5.7.8 回到Home窗口(相當(dāng)于按Home鍵) 66
5.8 與Activity相關(guān)的技巧與特效 67
5.8.1 全屏顯示(隱藏標(biāo)題欄和狀態(tài)欄) 67
5.8.2 定制窗口標(biāo)題欄 71
5.8.3 為程序添加Splash 75
5.8.4 改變窗口大小、位置和透明度 76
5.8.5 按兩次關(guān)閉窗口 79
5.8.6 關(guān)閉所有的窗口 79
5.8.7 窗口截屏 80
5.9 小結(jié) 82
第6章 Intent與Intent Filter 83
6.1 Android系統(tǒng)的信使:Intent 83
6.2 Intent對象 84
6.2.1 Intent對象可以封裝和傳遞哪些信息 84
6.2.2 組件名(Component name) 84
6.2.3 動作(Action) 85
6.2.4 種類(Category) 86
6.2.5 數(shù)據(jù)(Data) 87
6.2.6 附加數(shù)據(jù)(Extra) 88
6.2.7 標(biāo)志(Flags) 89
6.3 顯式和隱式訪問窗口 89
6.4 跨應(yīng)用程序訪問窗口 90
6.5 Android系統(tǒng)的過濾機制大揭秘 96
6.5.1 過濾條件的設(shè)置 96
6.5.2 過濾器的篩選規(guī)則 97
6.5.3 示例:過濾機制應(yīng)用演示 101
6.6 Android源代碼與過濾器 104
6.6.1 系統(tǒng)內(nèi)置程序有哪些窗口可以利用 104
6.6.2 顯示計算器(Calculator) 105
6.6.3 用瀏覽器(Browser)顯示網(wǎng)頁 106
6.6.4 撥打電話(Phone)與授權(quán) 108
6.7 獲取第三方程序中可調(diào)用的窗口 109
6.8 傳遞附加數(shù)據(jù)(Extra) 111
6.9 解析數(shù)據(jù) 113
6.10 小結(jié) 114
第7章 窗口(Activity)高級技術(shù) 115
7.1 Activity XML屬性詳解 115
7.1.1 設(shè)置Activity的基本信息 115
7.1.2 屏幕方向切換(android:screenOrientation) 117
7.1.3 阻止Activity銷毀和重建(android:configChanges) 119
7.1.4 允許Activity被實例化(android:enabled) 123
7.1.5 在最近應(yīng)用列表中顯示(android:excludeFromRecents) 124
7.1.6 允許其他程序訪問當(dāng)前窗口(android:exported) 124
7.1.7 硬件加速(android:hardwareAccelerated) 125
7.1.8 在多進程中創(chuàng)建窗口實例(android:multiprocess) 125
7.1.9 無法返回的Activity(android:noHistory) 125
7.1.10 指定要返回的窗口(android:parentActivityName) 126
7.1.11 使窗口受到權(quán)限的保護(android:permission) 126
7.1.12 改變窗口所在的進程(android:process) 127
7.1.13 不保存窗口的狀態(tài)(android:stateNotNeeded) 129
7.1.14 窗口的主題(android:theme) 129
7.1.15 擴展窗口UI(android:uiOptions) 129
7.1.16 設(shè)置輸入法顯示模式(android:windowSoftInputMode) 130
7.2 深入探索Activity從創(chuàng)建到銷毀的過程 130
7.2.1 任務(wù)(Task)與回退棧(Back Stack) 131
7.2.2 保存窗口(Activity)狀態(tài) 133
7.2.3 管理任務(wù)和回退棧 134
7.2.4 Activity的4種創(chuàng)建模式 135
7.2.5 用Java代碼設(shè)置窗口創(chuàng)建模式 141
7.2.6 窗口的乾坤大挪移(affinity) 144
7.2.7 銷毀不再使用的窗口 147
7.3 Activity的別名 149
7.4 小結(jié) 151
第8章 布局 152
8.1 Android的五大布局 152
8.1.1 框架布局(FrameLayout) 152
8.1.2 線性布局(LinearLayout) 154
8.1.3 相對布局(RelativeLayout) 158
8.1.4 表格布局(TableLayout) 159
8.1.5 絕對布局(AbsoluteLayout) 160
8.2 屬性資源與Android命名空間 160
8.3 布局屬性 162
8.4 布局高級技術(shù) 163
8.4.1 布局別名 163
8.4.2 重用布局 164
8.4.3 優(yōu)化布局 166
8.4.4 動態(tài)裝載布局 167
8.4.5 動態(tài)設(shè)置布局屬性 169
8.4.6 從右到左布局(RTL Layout) 169
8.5 小結(jié) 170
第9章 菜單 171
9.1 菜單的基本用法 171
9.1.1 創(chuàng)建選項菜單(Options Menu) 171
9.1.2 關(guān)聯(lián)Activity 173
9.1.3 響應(yīng)菜單的單擊動作 173
9.1.4 動態(tài)添加、修改和刪除選項菜單 174
9.1.5 帶復(fù)選框和選項按鈕的子菜單 175
9.1.6 上下文菜單 176
9.1.7 菜單事件 177
9.1.8 從菜單資源中裝載菜單 177
9.2 菜單特效 177
9.2.1 自定義菜單 178
9.2.2 模擬UCWeb菜單效果 180
9.3 小結(jié) 184
第10章 Android的資源詳解(一) 185
10.1 創(chuàng)建資源 185
10.1.1 手工創(chuàng)建資源文件 185
10.1.2 用ADT模板創(chuàng)建本地化圖標(biāo)資源 186
10.1.3 用ADT模板創(chuàng)建XML文件資源 188
10.2 使用資源 188
10.2.1 生成資源類文件(R.java) 188
10.2.2 從XML文件中訪問資源 190
10.2.3 使用Java代碼訪問資源 191
10.2.4 Java反射技術(shù)與枚舉資源 192
10.3 字符串(String)資源 193
10.3.1 普通字符串 193
10.3.2 字符串?dāng)?shù)組 194
10.3.3 復(fù)數(shù)字符串 194
10.3.4 在字符串中使用引號 195
10.3.5 用占位符格式化字符串 195
10.3.6 用HTML標(biāo)簽格式化字符串資源 195
10.4 值(values)資源 196
10.4.1 整數(shù)(Integer)資源 196
10.4.2 尺寸(Dimension)資源 197
10.4.3 布爾(Boolean)資源 198
10.4.4 顏色(Color)資源 198
10.4.5 ID資源 199
10.4.6 整數(shù)數(shù)組(Integer-Array)資源 200
10.4.7 類型數(shù)組(Typed-Array)資源 200
10.5 菜單(menu)資源 200
10.6 圖像(drawable)資源 203
10.6.1 普通圖像資源 203
10.6.2 XML圖像資源 204
10.6.3 Nine-Patch圖像資源 204
10.6.4 XML Nine-Patch圖像資源 205
10.6.5 圖層(Layer)資源 205
10.6.6 圖像狀態(tài)(State)資源 206
10.6.7 圖像級別(Level)資源 207
10.6.8 淡入淡出(Cross-fade)資源 208
10.6.9 嵌入(Inset)圖像資源 210
10.6.10 剪切(Clip)圖像資源 210
10.6.11 外形(Shape)資源 211
10.7 小結(jié) 212
第11章 Android的資源詳解(二) 213
11.1 動畫資源 213
11.1.1 屬性(Property)動畫 213
11.1.2 幀(Frame)動畫 215
11.1.3 移動補間(TranslateTween)動畫 217
11.1.4 循環(huán)向右移動的EditText與上下彈跳的球 218
11.1.5 縮放補間(Scale Tween)動畫 220
11.1.6 跳動的心 221
11.1.7 旋轉(zhuǎn)補間(Rotate Tween)動畫 222
11.1.8 旋轉(zhuǎn)的星系 222
11.1.9 透明度補間(Alpha Tween)動畫 223
11.1.10 投擲炸彈 224
11.1.11 震動渲染器(Shake Interpolator) 226
11.1.12 自定義渲染器(Interpolator) 227
11.2 風(fēng)格(Style)資源與主題(Theme) 229
11.3 小結(jié) 232
第12章 資源的本地化 233
12.1 建立本地化的資源目錄 233
12.2 資源目錄的命名規(guī)則 237
12.3 建立別名資源 237
12.3.1 圖像別名資源 237
12.3.2 布局別名資源 238
12.3.3 字符串別名資源 238
12.3.4 其他簡單值別名資源 238
12.4 資源目錄的優(yōu)先級 238
12.5 屏幕適配 239
12.5.1 屏幕適配要考慮的因素 239
12.5.2 適配不同屏幕可以采用的規(guī)則 241
12.5.3 屏幕尺寸和屏幕密度 241
12.5.4 位置、尺寸和字體應(yīng)使用屏幕密度單位 244
12.5.5 與屏幕適配有關(guān)的標(biāo)識符 244
12.5.6 影響屏幕適配的重要因素:布局和圖像 245
12.5.7 典型的屏幕適配案例 246
12.5.8 在Google Play上限制屏幕尺寸和屏幕密度 247
12.5.9 在Android模擬器上測試各種屏幕尺寸和密度 248
12.6 小結(jié) 248
第13章 Android的控件詳解(一) 249
13.1 顯示文本的控件(TextView) 249
13.1.1 顯示富文本(URL、不同大小、字體、顏色的文本) 250
13.1.2 用標(biāo)簽在TextView控件上顯示圖像 252
13.1.3 單擊鏈接彈出Activity 254
13.1.4 為指定文本添加背景 256
13.2 編輯文本的控件(EditText) 258
13.2.1 像QQ一樣輸入表情圖像 259
13.2.2 在EditText中輸入特定的字符 260
13.2.3 AutoCompleteTextView(自動完成輸入內(nèi)容的控件) 261
13.3 按鈕(Button)和復(fù)選框(Checkbox)控件 263
13.3.1 Button(普通按鈕控件) 263
13.3.2 圖文混排的按鈕 265
13.3.3 ImageButton(圖像按鈕控件) 266
13.3.4 RadioButton(選項按鈕控件) 267
13.3.5 ToggleButton(開關(guān)狀態(tài)按鈕控件) 267
13.3.6 CheckBox(復(fù)選框控件) 268
13.4 圖像控件(ImageView) 270
13.4.1 ImageView控件的基本用法 270
13.4.2 顯示指定區(qū)域的圖像 270
13.4.3 縮放和旋轉(zhuǎn)圖像 272
13.5 時間與日期控件 273
13.5.1 DatePicker(輸入日期的控件) 273
13.5.2 TimePicker(輸入時間的控件) 274
13.5.3 DatePicker、TimePicker與TextView同步顯示日期和時間 274
13.5.4 AnalogClock和DigitalClock(顯示時鐘的控件) 275
13.6 小結(jié) 275
第14章 Android的控件詳解(二) 276
14.1 進度條控件 276
14.1.1 ProgressBar(進度條控件) 276
14.1.2 SeekBar(拖動條控件) 278
14.1.3 設(shè)置ProgressBar和SeekBar的顏色及背景圖 278
14.1.4 RatingBar(評分控件) 281
14.2 列表控件 282
14.2.1 ListView(普通列表控件) 282
14.2.2 為ListView列表項添加復(fù)選框和選項按鈕 285
14.2.3 對列表項進行增、刪、改操作 286
14.2.4 改變列表項的背景色 290
14.2.5 ListActivity(封裝ListView的Activity) 290
14.2.6 ExpandableListView(可擴展的列表控件) 291
14.2.7 Spinner(下拉列表控件) 293
14.3 GridView(網(wǎng)格控件) 296
14.4 TabHost(標(biāo)簽控件) 298
14.5 ViewStub(惰性裝載控件) 299
14.6 小結(jié) 300
第15章 可視化UI設(shè)計 301
15.1 拖放控件 301
15.2 設(shè)置視圖屬性 303
15.3 預(yù)覽各種屏幕尺寸 303
15.4 語言和地區(qū)的本地化測試 304
15.5 其他可視化功能 304
15.6 小結(jié) 305
第16章 對話框、Toast與通知欄(Notification) 306
16.1 對話框 306
16.1.1 帶2個按鈕(確認(rèn)/取消)的對話框 306
16.1.2 帶3個按鈕(覆蓋/忽略/取消)的對話框 307
16.1.3 簡單列表對話框 308
16.1.4 單選列表對話框 309
16.1.5 多選列表對話框 311
16.1.6 進度對話框 312
16.1.7 登錄對話框 315
16.1.8 使用Activity托管對話框 316
16.2 Toast 318
16.3 通知(Notification) 319
16.3.1 在狀態(tài)欄上顯示通知信息 319
16.3.2 永久存在的Notification 322
16.3.3 自定義Notification 323
16.4 小結(jié) 324
第17章 封裝UI和代碼利器——Fragment 325
17.1 Fragment簡介 325
17.2 什么時候使用Fragment 326
17.3 按照Fragment設(shè)計原則編寫程序 328
17.4 Fragment的生命周期 332
17.5 創(chuàng)建Fragment 341
17.5.1 通過XML布局文件創(chuàng)建Fragment 341
17.5.2 通過Java代碼創(chuàng)建Fragment 342
17.5.3 創(chuàng)建無UI的Fragment 344
17.5.4 在低版本Android中使用Fragment(Support Library) 345
17.6 Activity與Fragment之間的交互 346
17.6.1 Fragment與Activity之間的交互 346
17.6.2 Fragment的回調(diào)機制 348
17.7 Fragment狀態(tài)的持久化 351
17.8 Fragment與回退棧(導(dǎo)航) 355
17.9 FragmentManager與FragmentTransaction 357
17.9.1 管理Fragment事務(wù) 357
17.9.2 查找Fragment 357
17.9.3 跟蹤回退棧狀態(tài) 358
17.9.4 恢復(fù)歷史狀態(tài) 358
17.9.5 管理Fragment的狀態(tài) 359
17.9.6 添加、刪除和替換Fragment 359
17.9.7 分離(Detach)與附加(Attach)Fragment 360
17.9.8 顯示和隱藏Fragment 361
17.10 Fragment擴展 361
17.10.1 ListFragment 361
17.10.2 DialogFragment 363
17.10.3 其他Fragment擴展類 366
17.11 Fragment模板源代碼分析 366
17.12 小結(jié) 368
第18章 動作欄——ActionBar 369
18.1 ActionBar簡介 369
18.2 ActionBar基礎(chǔ) 370
18.2.1 隱藏/顯示ActionBar 370
18.2.2 添加和響應(yīng)Action按鈕 372
18.3可上下兩分的ActionBar 374
18.4 應(yīng)用程序圖標(biāo)導(dǎo)航 376
18.5 收縮和展開Action View 377
18.6 ActionProvider 380
18.6.1 分享信息(ShareActionProvider) 380
18.6.2 定制ActionProvider 382
18.7 導(dǎo)航標(biāo)簽 384
18.8 下拉導(dǎo)航列表 388
18.9 小結(jié) 390
第19章 Android的拖放技術(shù) 391
19.1 Android中的拖放操作 391
19.2 拖放狀態(tài)與拖放處理 391
19.3 拖動陰影 392
19.4 示例:拖動復(fù)制圖像 393
19.5 小結(jié) 395
第20章 數(shù)據(jù)存儲解決方案 396
20.1 讀寫key-value對:SharedPreferences 396
20.2 文件流操作 397
20.2.1 openFileOutput和openFileInput方法 398
20.2.2 讀寫SD卡中的文件 399
20.3 讀寫JSON格式的數(shù)據(jù) 400
20.4 SQLite數(shù)據(jù)庫 404
20.4.1 SQLite數(shù)據(jù)庫管理工具 404
20.4.2 SQLiteOpenHelper類與自動升級數(shù)據(jù)庫 405
20.4.3 數(shù)據(jù)綁定與SimpleCursorAdapter類 406
20.4.4 操作SD卡上的數(shù)據(jù)庫 409
20.4.5 將數(shù)據(jù)庫與應(yīng)用程序一起發(fā)布 410
20.4.6 內(nèi)存數(shù)據(jù)庫 411
20.5 小結(jié) 412
第21章 內(nèi)容提供者(Content Provider) 413
21.1 Content Provider的作用 413
21.2 獲得系統(tǒng)數(shù)據(jù) 413
21.2.1 讀取聯(lián)系人信息 414
21.2.2 查看收件箱的短信 415
21.3 自定義Content Provider 417
21.3.1 查詢城市信息 417
21.3.2 為Content Provider添加訪問權(quán)限 422
21.4 如何查找系統(tǒng)提供的Content Provider 423
21.5 小結(jié) 425
第22章 廣播接收器(Broadcast Receiver) 426
22.1 什么是廣播 426
22.2 接收系統(tǒng)廣播 427
22.2.1 短信攔截 427
22.2.2 用代碼注冊廣播接收器 429
22.2.3 廣播接收器的優(yōu)先級 429
22.2.4 來去電攔截 430
22.2.5 截獲屏幕休眠與喚醒 432
22.2.6 開機自動運行 433
22.2.7 顯示手機電池的當(dāng)前電量 434
22.3 發(fā)送廣播 434
22.4 小結(jié) 435
第23章 服務(wù)(Service) 436
23.1 Service基礎(chǔ) 436
23.1.1 Service的生命周期 436
23.1.2 開機啟動Service 438
23.2 跨進程訪問(AIDL服務(wù)) 439
23.2.1 什么是AIDL服務(wù) 439
23.2.2 建立AIDL服務(wù)的步驟 439
23.2.3 創(chuàng)建和調(diào)用AIDL服務(wù) 440
23.2.4 傳遞復(fù)雜數(shù)據(jù)的AIDL服務(wù) 442
23.2.5 AIDL與來去電自動掛斷 445
23.3 小結(jié) 447
第24章 Android的組件開發(fā) 448
24.1 Android支持哪些組件開發(fā)方式 448
24.2 引用jar文件 449
24.3 跨工程引用 450
24.4 引用NDK Library 451
24.5 動態(tài)引用APK文件 451
24.6 動靜結(jié)合的組件 453
24.7 腳本類型組件(JavaScript)與WebView控件 453
24.8 如何確定動態(tài)組件是否安裝 457
24.9 升級動態(tài)組件 459
24.10 小結(jié) 461
第25章 Android的藍(lán)牙開發(fā)技術(shù) 462
25.1 藍(lán)牙簡介 462
25.2 打開和關(guān)閉藍(lán)牙設(shè)備 462
25.3 搜索藍(lán)牙設(shè)備 463
25.4 藍(lán)牙數(shù)據(jù)傳輸 465
25.5 藍(lán)牙通信一定需要UUID嗎 467
25.6 小結(jié) 467
第26章 近距離無線通信——NFC技術(shù) 468
26.1 NFC簡介 468
26.2 NFC、藍(lán)牙和紅外之間的差異 469
26.3 NFC技術(shù)的未來前景 470
26.4 Android中的NFC技術(shù) 471
26.4.1 NDEF與非NDEF數(shù)據(jù) 471
26.4.2 NFC的三重過濾機制 471
26.4.3 開啟Android的NFC功能 472
26.4.4 編寫NFC程序的基本步驟 473
26.5 測試NFC程序需要的設(shè)備 474
26.6 讓Android手機自動運行程序 475
26.6.1 向NFC標(biāo)簽寫入數(shù)據(jù)的基本步驟 475
26.6.2 向NFC標(biāo)簽寫入啟動Android應(yīng)用程序的消息 476
26.7 讓Android手機自動打開網(wǎng)頁 483
26.8 讀寫NFC標(biāo)簽中的文本 485
26.8.1 實現(xiàn)讀寫文本數(shù)據(jù)應(yīng)用的基本思路 485
26.8.2 如何將NFC標(biāo)簽變成NDEF文本格式 485
26.8.3 NDEF文本格式解析 486
26.8.4 實現(xiàn)讀寫文本數(shù)據(jù)的Android應(yīng)用程序 490
26.9 讀寫NFC標(biāo)簽中的Uri 496
26.9.1 NDEF Uri格式解析 496
26.9.2 實現(xiàn)讀寫Uri的Android應(yīng)用程序 499
26.10 利用NFC標(biāo)簽支持的數(shù)據(jù)格式進行過濾 502
26.11 處理任意NFC標(biāo)簽 504
26.12 讀寫非NDEF格式的數(shù)據(jù) 505
26.13 Android Beam技術(shù)與數(shù)據(jù)交互 507
26.13.1 傳遞NDEF消息 507
26.13.2 傳輸文件 511
26.14 小結(jié) 513
第27章 Android的網(wǎng)絡(luò)開發(fā)技術(shù) 514
27.1 提交HTTP GET和HTTP POST請求 514
27.2 HttpURLConnection類 516
27.3 上傳文件 517
27.4 下載管理(DownloadManager) 519
27.5 Wi-Fi Direct 524
27.5.1 Wi-Fi Direct API的核心部分 524
27.5.2 創(chuàng)建監(jiān)聽Wi-Fi Direct動作的廣播接收器 524
27.5.3 注冊廣播接收器 525
27.5.4 發(fā)現(xiàn)Wi-Fi Direct設(shè)備 526
27.5.5 連接Wi-Fi Direct設(shè)備 526
27.5.6 數(shù)據(jù)傳輸 527
27.6 Internet電話(SIP) 528
27.6.1 使用SIP的要求和限制 528
27.6.2 配置Android版SIP電話 528
27.6.3 創(chuàng)建SipManager 529
27.6.4 注冊SIP服務(wù)器 529
27.6.5 開始打電話 530
27.6.6 接聽電話 530
27.7 小結(jié) 531
第28章 并發(fā)與定時器 532
28.1 Handler 532
28.1.1 更新UI 532
28.1.2 延遲執(zhí)行 535
28.2 定時器 537
28.2.1 單秒循環(huán)的定時器:Chronometer 537
28.2.2 任意時間間隔的定時器:Timer 538
28.2.3 全局定時器:AlarmManager 539
28.3 AsyncTask 541
28.4 小結(jié) 543
第29章 異步裝載(Loader) 544
29.1 Loader簡介 544
29.2 Loader的核心類/接口 544
29.3 如何使用Loader 545
29.3.1 創(chuàng)建/重用Loader 545
29.3.2 遺棄舊的數(shù)據(jù) 546
29.3.3 LoaderManager與方法回調(diào) 546
29.3.4 創(chuàng)建Loader對象(onCreateLoader) 547
29.3.5 完成數(shù)據(jù)裝載(onLoadFinished) 547
29.3.6 Loader被重置(onLoaderReset) 548
29.4 異步裝載聯(lián)系人(CursorLoader的應(yīng)用) 548
29.5 小結(jié) 552
第30章 Android推送技術(shù) 553
30.1 IOS的推送方案 553
30.2 Windows Phone的推送方案 554
30.3 Android的推送方案 554
30.4 第三方推送服務(wù):極光推送 556
30.5 自己搭建推送服務(wù)器:AndroidPN 557
30.6 小結(jié) 558
第31章 Android的多媒體開發(fā)技術(shù) 559
31.1 音頻 559
31.1.1 音頻播放 559
31.1.2 錄制音頻 561
31.2 視頻 563
31.2.1 播放視頻 563
31.2.2 錄制視頻 564
31.3 相機 565
31.3.1 調(diào)用系統(tǒng)的拍照功能 565
31.3.2 自定義拍照功能 566
31.4 鈴聲 570
31.5 小結(jié) 572
第32章 Android的2D繪圖 573
32.1 繪制基本的圖形 573
32.1.1 繪制像素點 573
32.1.2 繪制直線 574
32.1.3 繪制圓形 574
32.1.4 繪制圓弧 574
32.1.5 繪制文本 575
32.1.6 示例:繪制基本的圖形和文本 575
32.2 繪制位圖 578
32.2.1 繪制Bitmap對象 578
32.2.2 使用Drawable.draw方法繪制位圖 579
32.2.3 示例:用兩種方式繪制位圖 579
32.3 設(shè)置圖像的透明度 580
32.4 旋轉(zhuǎn)圖像 581
32.5 小結(jié) 583
第33章 3D繪圖之OpenGL ES 584
33.1 OpenGL ES簡介 584
33.2 在3D空間中繪圖 585
33.2.1 要繪制3D圖形了,第一步要做什么 585
33.2.2 定義頂點 587
33.2.3 繪制三角形 588
33.2.4 三角形合并法繪制矩形 590
33.2.5 頂點法繪制矩形 592
33.2.6 頂點的選取順序 592
33.2.7 索引法繪制矩形 593
33.2.8 基于OpenGL ES的動畫原理 594
33.2.9 旋轉(zhuǎn)的矩形 594
33.3 視圖 595
33.3.1 有趣的比喻:照相機拍照 596
33.3.2 模型變換:立方體旋轉(zhuǎn) 597
33.3.3 用gluLookAt方法變換視圖 599
33.4 顏色 600
33.5 小結(jié) 602
第34章 Android的桌面上的“尤物” 603
34.1 窗口小部件(App Widget) 603
34.1.1 在Android桌面上添加App Widget 603
34.1.2 開發(fā)App Widget的步驟 603
34.1.3 數(shù)字時鐘 605
34.1.4 AppWidgetProvider類 607
34.1.5 向App Widget添加配置窗口 608
34.1.6 可以選擇風(fēng)格的數(shù)字時鐘 608
34.2 動態(tài)壁紙(隨機變換的圓圈) 612
34.3 小結(jié) 618
第35章 Android中的短信(SMS)與彩信(MMS)開發(fā)技術(shù) 619
35.1 通過系統(tǒng)程序發(fā)短信 619
35.2 直接發(fā)送短信 619
35.3 保存短信發(fā)送記錄 620
35.4 監(jiān)聽短信和彩信 621
35.5 顯示視頻縮略圖 622
35.6 彩信內(nèi)容與SMIL協(xié)議 624
35.7 小結(jié) 631
第36章 Android的傳感器開發(fā)技術(shù) 632
36.1 如何使用傳感器 632
36.2 加速度傳感器(Accelerometer) 635
36.3 重力傳感器(Gravity) 635
36.4 光線傳感器(Light) 636
36.5 陀螺儀傳感器(Gyroscope) 636
36.5 方向傳感器(Orientation) 637
36.6 其他傳感器 638
36.7 小結(jié) 638
第37章 Android的全球定位系統(tǒng)(GPS) 639
37.1 GPS的核心API 639
37.2 獲取位置提供者(LocationProvider) 641
37.2.1 獲取所有可用的LocationProvider 641
37.2.2 根據(jù)名稱獲取LocationProvider 642
37.2.3 根據(jù)條件(Criteria)獲取LocationProvider 642
37.3 實時獲取GPS定位數(shù)據(jù) 643
37.4 測量地球上任意兩點之間的距離 645
37.5 鄰近警告 646
37.6 小結(jié) 647
第38章 谷歌地圖(Google Map)開發(fā)應(yīng)用 648
38.1 Google Map的跨平臺解決方案:Maps JavaScript API v3 648
38.2 Google Map的顯示與定位 648
38.3 在Google Map上插入圖像標(biāo)志 651
38.4 插入多個圖像標(biāo)志 653
38.5 帶陰影的位置坐標(biāo)信息 653
38.6 地圖與Java交互 655
38.7 小結(jié) 657
第39章 Android中的人機交互設(shè)計 658
39.1 手勢(Gesture) 658
39.1.1 創(chuàng)建手勢文件 658
39.1.2 通過手勢輸入字符串 658
39.1.3 通過手勢調(diào)用程序 660
39.1.4 編寫自己的手勢創(chuàng)建器 661
39.2 多點觸摸與放大/縮小操作 662
39.3 語音識別 664
39.4 讓手機說話(TTS) 665
39.5 小結(jié) 666
第40章 Android中的輸入法開發(fā) 667
40.1 Android輸入法簡介 667
40.2 控制輸入法 668
40.3 輸入法實戰(zhàn) 669
40.3.1 實現(xiàn)輸入法的步驟 669
40.3.2 編寫輸入法程序 669
40.3.3 輸入法服務(wù)的生命周期 672
40.3.4 預(yù)輸入文本 672
40.3.5 輸入法設(shè)置 673
40.4 小結(jié) 673
第41章 Android NDK開發(fā) 674
41.1 Android NDK簡介 674
41.2 安裝、配置和測試NDK開發(fā)環(huán)境 674
41.2.1 系統(tǒng)和軟件要求 675
41.2.2 下載和安裝Android NDK 675
41.2.3 下載和安裝Cygwin 675
41.2.4 配置Android NDK的開發(fā)環(huán)境 677
41.3 利用NDK Samples學(xué)習(xí)NDK開發(fā) 678
41.3.1 編譯NDK Samples 678
41.3.2 NDK程序的結(jié)構(gòu)與命名規(guī)則 678
41.4 Android NDK配置文件詳解 679
41.4.1 Android NDK定義的變量 680
41.4.2 Android NDK定義的函數(shù) 680
41.4.3 描述模塊的變量 681
41.4.4 配置Application.mk文件 682
41.5 第一個NDK示例:字母的大小寫轉(zhuǎn)換 682
41.5.1 編寫NDK程序 682
41.5.2 編寫調(diào)用NDK函數(shù)的Java程序 684
41.5.3 在Eclipse中開發(fā)和編譯NDK程序 684
41.6 NDK程序讀取Java字段值 686
41.7 小結(jié) 687
第42章 Android的測試驅(qū)動開發(fā)(TDD) 688
42.1 JUnit測試框架 688
42.2 測試Activity 688
42.3 測試Content Provider 691
42.4 測試Service 692
42.5 測試普通類 692
42.6 小結(jié) 693
第43章 Android應(yīng)用的性能優(yōu)化 694
43.1 性能優(yōu)化的基礎(chǔ)知識 694
43.2 編寫Java程序的最優(yōu)化原則 695
43.2.1 用靜態(tài)工廠方法代替構(gòu)造方法 695
43.2.2 避免創(chuàng)建重復(fù)的對象 695
43.2.3 防止內(nèi)存泄漏 697
43.2.4 返回零長度的集合而不是null 697
43.2.5 通過接口引用對象 698
43.3 避免ANR 698
43.4 執(zhí)行時間測試 699
43.5 內(nèi)存消耗測試 700
43.6 測試性能的工具:traceview 701
43.7 小結(jié) 702
第44章 游戲項目實戰(zhàn):笑臉連連看 703
44.1 游戲玩法 703
44.2 準(zhǔn)備圖像素材 703
44.3 實現(xiàn)主界面 704
44.4 隨機生成連連看圖像 705
44.5 選中兩個相同圖像后消失 705
44.6 用定時器限制游戲時間 706
44.7 小結(jié) 707
第45章 開源項目實戰(zhàn):NFC俠(NFCMan) 708
45.1 什么是NFCMan 708
45.2 用Android模擬器和非NFC設(shè)備測試NFC應(yīng)用 709
45.3 NFCMan的實現(xiàn)原理 711
45.4 實現(xiàn)服務(wù)端程序(NFCMan) 711
45.4.1 可視化SWT開發(fā)環(huán)境 712
45.4.2 創(chuàng)建NFC標(biāo)簽 712
45.4.3 描述虛擬NFC標(biāo)簽的NFCTag類 714
45.4.4 保證虛擬NFC標(biāo)簽的全局唯一 715
45.4.5 顯示與保存虛擬NFC標(biāo)簽 716
45.4.6 裝載已經(jīng)存在的虛擬NFC標(biāo)簽 719
45.4.7 開啟服務(wù) 720
45.4.8 處理客戶端請求 721
45.4.9 保證虛擬Android設(shè)備全局唯一 723
45.4.10 描述虛擬Android設(shè)備 724
45.4.11 添加虛擬Android設(shè)備 725
45.4.12 異常處理機制 727
45.5 客戶端與服務(wù)端之間的數(shù)據(jù)管道(NFCManService) 728
45.5.1 與NFCMan交互(Socket方式) 728
45.5.2 與ANFCMan交互(廣播方式) 732
45.6 客戶端Library(ANFCMan) 733
45.6.1 ANFCMan的數(shù)據(jù)結(jié)構(gòu)和異常類 733
45.6.2 ANFCMan的入口類 734
45.6.3 模擬檢測到NFC標(biāo)簽的廣播接收器 734
45.6.4 同時處理物理NFC標(biāo)簽和虛擬NFC標(biāo)簽的窗口 735
45.7 測試ANFCMan(TestANFCMan) 738
45.8 小結(jié) 739
?
轉(zhuǎn)載于:https://www.cnblogs.com/nokiaguy/p/3304407.html
總結(jié)
以上是生活随笔為你收集整理的Android开发权威指南(第2版)新书发布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 公主连结碧插班生是限定吗?
- 下一篇: iOS学习之路十三(动态调整UITabl