Android開發(fā)完全講義(第二版)

-
【作 者】李寧 編著
【I S B N 】978-7-5084-9465-4
【責任編輯】張玉玲
【適用讀者群】科技
【出版時間】2012-04-27
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】656
【千字數】925
【印 張】41
【定 價】¥82
【叢 書】暫無分類
【備注信息】
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關圖書
國內覆蓋面最廣的Android開發(fā)指南,國內著名Android社區(qū)eoeandroid極力推薦。
本書內容全面,詳細講解Android框架、Android用戶接口、Android組件、Android的數據存儲解決方案、Android的4種可跨平臺通信的組件(Activity、Service、Broadcast和ContentProvider)、網絡、繪圖、多媒體、2D動畫、OpenGL ES、資源、國際化、訪問Android手機的硬件、實時壁紙、實時文件夾、NDK(利用C/C++開發(fā)可運行在Android上的應用程序)、腳本語言(Python、Lua、Perl等)、手勢輸入、文字語音轉換(TTS)、藍牙等技術,在本書的最后給出了兩個完整的例子:“萬年歷”和“知道當前位置的Google GTalk機器人”。
本書適合有一定的Java基礎,想通過Android進入移動開發(fā)領域的讀者;已經有一定的Android開發(fā)經驗,想進一步提高Android的開發(fā)能力的讀者;想將本書作為Android的參考手冊,隨時隨地查閱的讀者;對Android抱有濃厚興趣的其他手機平臺的開發(fā)人員;正在學習Android的在校大學生以及培訓學校的學員。
● CSDN超人氣博主、eoeandroid論壇版主、cnblogs著名博主 “銀河使者”傾心編著
● 本書第1版受到數萬開發(fā)人員喜愛,繁體版在臺灣地區(qū)亦多次重印,眾多開發(fā)人員稱為Android國內“第1書”
● 國內最全面的Android開發(fā)技術參考手冊,囊括了Android1.5至Android 4.x版本,適用于手機、平板電腦的應用開發(fā)
● 完美的實戰(zhàn)環(huán)境,Step by Step地融合了超過200個實際案例
● 完整的綜合應用案例,理論與實戰(zhàn)無縫結合,精心剔除常見學習障礙,真正的易學易用
● 大量有價值的高品質代碼,可直接用于實際項目開發(fā)
第二版前言
隨著中國移動互聯網3G時代的到來,很多搶眼的詞匯也不斷沖擊著人們的眼球。3G、Android、Ophone、iPhone、iPad、iPod touch、Google、蘋果、HTC、G1、G2、G3、Nexus S等詞匯在各大網站的新聞和評論中頻繁出現。出現這種情況的原因只有一個,那就是智能手機和移動互聯網終于修成成果,成為完美的一對。
智能手機雖然早在多年前就已出現,但那時的智能手機的功能主要是本地應用,這些手機以Nokia的Symbian系統(tǒng)為主。但隨著移動互聯網時代的到來,本地應用已遠遠無法滿足用戶的需求了。然而在創(chuàng)新為王的今天,新的技術總在不斷地取代舊的技術。以創(chuàng)新聞名的Google為了進軍移動廣告市場,早在2005年,就開始研制新的移動操作系統(tǒng),這也就是我們現在熟知的Android。經過2年多的研發(fā),終于在2007年11月5日發(fā)布了Android的第一個版本:Android 1.0,而HTC(宏達電子)也在10個月后發(fā)布了世界上第一部裝有Android系統(tǒng)的手機:G1。這也標志著Android正式成為移動操作系統(tǒng)大家族的成員,而且出身名門。
自從Google在2007年推出Android以來。Android已經經歷了4年多的發(fā)展。雖然Android的最初的兩個版本(1.0和1.1)并不太穩(wěn)定,也沒有被大眾接受。但從1.5開始,Android開始嶄露頭角,也開始進入了高速發(fā)展階段。
Android的第一個穩(wěn)定而且功能較全面的版本是2.0。Google為了適應平板電腦,又單獨推出了3.x。直到2011年底,Google為了統(tǒng)一手機和平板電腦,推出了Android 4.x。Android 4.x無論從穩(wěn)定性還是從功能上都上了一個新臺階,完全可以和IOS抗衡。
Android是Google進軍移動領域最具殺傷力的武器之一。在此之前,蘋果推出的iPhone在智能手機和移動互聯網領域刮起了首輪風暴,并且贏得了數以百萬計的忠實“粉絲”。而Android與iPhone不同。iPhone與蘋果以往的產品相同,都是在封閉狀態(tài)下發(fā)展的,而且限制太多。Android則在這方面有著絕對的優(yōu)勢,Android不僅免費,而且開源,并且Google沒有限制使用什么語言或技術在Android上開發(fā)軟件。這就意味著任何企業(yè)、組織和個人都可以使用Android系統(tǒng),而且不需要付給Google一分錢。正是因為這一點,支持Android的終端廠商不斷增加,這也使Android的市場占有率節(jié)節(jié)攀升。在2010年第1季度,Android在美國的占有率首次超過iPhone,成為占有率居第二位的移動操作系統(tǒng)。在2011年,Android手機的市場占有率已經全面超過iPhone,成為了智能手機系統(tǒng)中的翹楚。
在與美國相隔萬里的中國,Android也受到相當的關注和重用。國內不僅在短時間內涌現了大量的Android社區(qū)(中國移動開發(fā)者社區(qū)、eoeandroid等),而且很多運營商和企業(yè)也以Android為基礎開發(fā)出了很多定制的移動操作系統(tǒng)。其中國內最早的定制Android系統(tǒng)就是中國移動和播思通訊聯合開發(fā)的Ophone系統(tǒng),也稱為OMS。除此之外,還有聯想的LePhone。聯通和電信也在研發(fā)自己的定制Android系統(tǒng)。這些充分證明了Android在世界上的幾個主要市場(中國、美國等)都已成為競相追逐的梅花鹿,在可預期的未來,將會在全球范圍內上演一場群雄逐鹿的大戲。
既然Android無論在國內還是在國外都是如此的火爆、如此的重要,那么作為開發(fā)人員的我們是不是應該立刻開始學習Android呢?如果您以前閱讀過本書的第一版,那么說明您已經給出了肯定的答案,而本書在第一版的基礎上加入了Android 4.x的新技術,而且所有的示例都升級成了Android 4.x版本。如果您想了解新的Android 4.x技術,那么就不要等待,請繼續(xù)閱讀本書的精彩內容吧!
參加本書部分章節(jié)編寫工作的還有趙華振、李斌鋒、鄧斌、皮文星、閆芳、王玉芹、楊振珂、鄧福金、劉素云、代錫恒、劉曉鍵、李新生、歐陽會、李禮華、石杰、何少亮、歐陽觀、陸正武、王秀明、蘇海建、蘇勝男、胡中華、李風好、馬永浩、鄭國玉、王欣、李延彬、謝星星,在此表示感謝。
編 者
2012年3月
第一版前言
2009年對于中國的移動互聯網領域是最重要的一年,因為這一年信息產業(yè)部向中國三大運營商(移動、聯通、電信)發(fā)放了3G牌照。這就意味著中國移動互聯網3G時代已經到來,因此,2009年也就成為了中國移動互聯網3G時代的元年。
隨著中國移動互聯網3G時代的到來,很多搶眼的詞匯也不斷沖擊著人們的眼球。3G、Android、OPhone、iPhone、iPad、iPod touch、Google、蘋果、HTC、G1、G2、G3等詞匯在各大網站的新聞和評論中頻繁出現。出現這種情況的原因只有一個,那就是智能手機和移動互聯網終于修成成果,成為完美的一對。
智能手機雖然早在多年前就已出現,但那時的智能手機的功能主要是本地應用,這些手機以Nokia的Symbian系統(tǒng)為主。但隨著移動互聯網時代的到來,本地應用已遠遠無法滿足用戶的需求了。然而在創(chuàng)新為王的今天,新的技術總在不斷地取代舊的技術。以創(chuàng)新聞名的Google為了進軍移動廣告市場,早在2005年,就開始研制新的移動操作系統(tǒng),這也就是我們現在熟知的Android。經過2年多的研發(fā),終于在2007年11月5日發(fā)布了Android的第一個版本:Android 1.0,而HTC(宏達電子)也在10個月后發(fā)布了世界上第一部裝有Android系統(tǒng)的手機:G1。這也標志著Android正式成為移動操作系統(tǒng)大家族的成員,而且出身名門。
自從Android問世以來,不斷有新的運營商、終端廠商、瀏覽器廠商、軟件廠商等加入Android陣營,通過合作以及不斷地創(chuàng)新,推出了大量基于Android的新產品,例如,Adobe公司已推出Android版的AIR和Flash 10,并且Google宣布在Android 2.2中將會全面支持Flash,這就意味著可以使用Flash來編寫Android應用程序了。
Android是Google進軍移動領域最具殺傷力的武器之一。在此之前,蘋果推出的iPhone在智能手機和移動互聯網領域刮起了首輪風暴,并且贏得了數以百萬計的忠實“粉絲”。而Android與iPhone不同。iPhone與蘋果以往的產品相同,都是在封閉狀態(tài)下發(fā)展的,而且限制太多。Android則在這方面有著絕對的優(yōu)勢,Android不僅免費,而且開源,并且Google沒有限制使用什么語言或技術在Android上開發(fā)軟件。這就意味著任何企業(yè)、組織和個人都可以使用Android系統(tǒng),而且不需要付給Google一分錢。正是因為這一點,支持Android的終端廠商不斷增加,這也使Android的市場占有率節(jié)節(jié)攀升。甚至在2010年第一季度,Android在美國的占有率首次超過iPhone,成為占有率居第二位的移動操作系統(tǒng)。
在與美國相隔萬里的中國,Android也受到相當的關注和重用。國內不僅在短時間內涌現了大量的Android社區(qū)(中國移動開發(fā)者社區(qū)、eoeandroid等),而且很多運營商和企業(yè)也以Android為基礎開發(fā)出了很多定制的移動操作系統(tǒng)。其中國內最早的定制Android系統(tǒng)就是中國移動和播思通訊聯合開發(fā)的OPhone系統(tǒng),也稱為OMS。除此之外,還有聯想的LePhone。聯通和電信也在研發(fā)自己的定制Android系統(tǒng)。這些充分證明了Android在世界上的幾個主要市場(中國、美國等)都已成為競相追逐的梅花鹿,在可預期的未來,將會在全球范圍內上演一場群雄逐鹿的大戲。
既然Android無論在國內還是在國外都是如此的火爆、如此的重要,那么作為開發(fā)人員的我們是不是應該立刻開始學習Android呢?如果您正在閱讀本書的前言,那么說明您已經給出了肯定的答案,而本書正是打開Android神秘大門的鑰匙。有了這把鑰匙,就可以盡享Android中的寶藏。那么我們還等什么呢?Let’s go. 現在就讓我們繼續(xù)閱讀本書的精彩內容,以獲取更多的寶藏吧!
參加本書部分章節(jié)編寫工作的還有趙華振、李斌鋒、鄧斌、皮文星、閆芳、王玉芹、楊振珂、鄧福金、劉素云、代錫恒、劉曉鍵、李新生、歐陽會、李禮華、石杰、何少亮、歐陽觀、陸正武,在此表示感謝。
編 者
2010年5月
第一版前言
如何使用本書的例子
第一部分 準備篇——大軍未動,糧草先行
第1章 Android入門 2
1.1 Android的基本概念 3
1.1.1 Android簡介 3
1.1.2 Android的系統(tǒng)構架 5
1.2 Android 2.3.x新功能介紹 6
1.2.1 顯示電池使用狀況 6
1.2.2 SIP網絡電話 7
1.2.3 近場通信(NFC) 7
1.2.4 控制多個攝像頭 8
1.3 Android 3.x新功能介紹 8
1.3.1 重新設計的UI 8
1.3.2 系統(tǒng)狀態(tài)條 9
1.3.3 多任務管理 10
1.3.4 多重桌面 11
1.3.5 電子郵件(E-mail) 11
1.3.6 聯系人管理 12
1.3.7 虛擬鍵盤與剪貼功能 12
1.3.8 相機功能 13
1.3.9 視頻電話 13
1.3.10 支持多核處理器 13
1.4 Android開發(fā)環(huán)境的搭建 14
1.4.1 開發(fā)Android程序需要些什么 14
1.4.2 安裝Android SDK 14
1.4.3 安裝Eclipse插件ADT 15
1.4.4 測試ADT是否安裝成功 16
1.5 Android SDK中的常用命令行工具 18
1.5.1 啟動和關閉adb服務(adb start-server
和adb kill-server) 18
1.5.2 查詢當前模擬器/設備的實例
(adb devices) 18
1.5.3 安裝、卸載和運行程序(adb install、
adb uninstall和am) 19
1.5.4 PC與模擬器或真機交換文件(adb
pull和adb push) 20
1.5.5 Shell命令 20
1.5.6 創(chuàng)建、刪除和瀏覽AVD設備
(android) 21
1.5.7 獲取Android版本對應的ID 21
1.5.8 創(chuàng)建SD卡 22
1.6 PC上的Android 22
1.6.1 Android LiveCD 23
1.6.2 AndroidX86 23
1.7 Android的學習資源 24
1.8 應用程序商店 24
1.8.1 Android Market 24
1.8.2 Mobile Market(MM) 25
1.8.3 其他應用程序商店 26
1.9 小結 26
第2章 第一個Android程序 27
2.1 編寫用于顯示當前日期和時間的程序 27
2.1.1 新建一個Android工程 27
2.1.2 界面控件的布局 29
2.1.3 編寫實際代碼 29
2.2 調試程序 32
2.3 簽名和發(fā)布應用程序 33
2.3.1 使用命令行方式進行簽名 33
2.3.2 使用ADT插件方式進行簽名 34
2.4 DDMS透視圖 36
2.5 小結 36
第二部分 基礎篇——Android世界的精彩之旅
第3章 Android應用程序架構 38
3.1 Android應用程序中的資源 38
3.1.1 資源存放在哪里 38
3.1.2 資源的種類 39
3.1.3 資源的基本使用方法 39
3.2 Android的應用程序組件 41
3.2.1 活動(Activity)組件 41
3.2.2 服務(Service)組件 41
3.2.3 廣播接收者(Broadcast receivers)
組件 42
3.2.4 內容提供者(Content providers)
組件 42
3.3 AndroidManifest.xml文件的結構 42
3.4 小結 44
第4章 建立用戶接口 45
4.1 建立、配置和使用Activity 45
4.1.1 建立和配置Activity 46
4.1.2 Activity的生命周期 48
4.1.3 Activity生命周期的演示 50
4.2 視圖(View) 53
4.2.1 視圖簡介 53
4.2.2 使用XML布局文件控制視圖 54
4.2.3 在代碼中控制視圖 55
4.2.4 混合使用XML布局文件和代碼
來控制視圖 57
4.2.5 定制控件(Widget)的3種方式 60
4.2.6 定制控件——帶圖像的TextView 60
4.2.7 定制控件——帶文本標簽的EditText 64
4.2.8 定制控件——可更換表盤的
指針時鐘 67
4.3 使用AlertDialog類創(chuàng)建對話框 73
4.3.1 AlertDialog類簡介 73
4.3.2 【確認/取消】對話框 74
4.3.3 創(chuàng)建詢問是否刪除文件的
【確認/取消】對話框 75
4.3.4 帶3個按鈕的對話框 76
4.3.5 創(chuàng)建【覆蓋/忽略/取消】對話框 77
4.3.6 簡單列表對話框 78
4.3.7 單選列表對話框 79
4.3.8 多選列表對話框 80
4.3.9 創(chuàng)建3種選擇省份的列表對話框 80
4.3.10 水平進度對話框和圓形進度對話框 86
4.3.11 水平進度對話框和圓形進度
對話框演示 87
4.3.12 自定義對話框 90
4.3.13 創(chuàng)建登錄對話框 90
4.3.14 用Activity托管對話框 93
4.3.15 創(chuàng)建懸浮對話框和觸摸任何位置
都可以關閉的對話框 95
4.4 Toast和Notification 98
4.4.1 用Toast顯示提示信息框 98
4.4.2 阻止關閉Toast信息框 99
4.4.3 Notification與狀態(tài)欄信息 101
4.5 菜單 103
4.5.1 創(chuàng)建選項菜單 104
4.5.2 設置與菜單項關聯的圖像和
Activity 105
4.5.3 響應選項菜單項單擊事件的3種
方式 105
4.5.4 動態(tài)添加、修改和刪除選項菜單 107
4.5.5 創(chuàng)建帶復選框和選項按鈕的子菜單 108
4.5.6 創(chuàng)建上下文菜單 109
4.5.7 菜單事件 110
4.5.8 Activity菜單、子菜單、上下文
菜單演示 111
4.6 布局 112
4.6.1 框架布局(FrameLayout) 112
4.6.2 霓虹燈效果的TextView 113
4.6.3 線性布局(LinearLayout) 115
4.6.4 利用LinearLayout將按鈕放在屏幕
的四角和中心位置 117
4.6.5 相對布局(RelativeLayout) 119
4.6.6 利用RelativeLayout實現梅花效果
的布局 119
4.6.7 表格布局(TableLayout) 120
4.6.8 計算器按鈕的布局 121
4.6.9 絕對布局(AbsoluteLayout) 121
4.6.10 查看apk文件中的布局 122
4.7 小結 122
第5章 控件詳解 123
5.1 顯示和編輯文本的控件 124
5.1.1 顯示文本的控件:TextView 124
5.1.2 在TextView中顯示URL及不同
字體大小、不同顏色的文本 127
5.1.3 帶邊框的TextView 128
5.1.4 設置TextView控件的行間距 131
5.1.5 輸入文本的控件:EditText 132
5.1.6 在EditText中輸入特定的字符 134
5.1.7 按回車鍵顯示EditText 135
5.1.8 自動完成輸入內容的控件:
AutoCompleteTextView 137
5.2 按鈕與復選框控件 138
5.2.1 普通按鈕控件:Button 138
5.2.2 異形(圓形、五角星、螺旋形
和箭頭)按鈕 139
5.2.3 圖像按鈕控件:ImageButton 141
5.2.4 同時顯示圖像和文字的按鈕 141
5.2.5 選項按鈕控件:RadioButton 143
5.2.6 開關狀態(tài)按鈕控件:ToggleButton 143
5.2.7 復選框控件:CheckBox 144
5.2.8 利用XML布局文件動態(tài)創(chuàng)建
CheckBox 144
5.3 日期與時間控件 147
5.3.1 輸入日期的控件:DatePicker 147
5.3.2 輸入時間的控件:TimePicker 148
5.3.3 DatePicker、TimePicker與TextView
同步顯示日期和時間 148
5.3.4 顯示時鐘的控件:AnalogClock和
DigitalClock 150
5.4 進度條控件 150
5.4.1 進度條控件:ProgressBar 150
5.4.2 拖動條控件:SeekBar 152
5.4.3 改變ProgressBar和SeekBar的顏色 154
5.4.4 評分控件:RatingBar 155
5.5 其他重要控件 156
5.5.1 顯示圖像的控件:ImageView 157
5.5.2 可顯示圖像指定區(qū)域的ImageView
控件 158
5.5.3 動態(tài)縮放和旋轉圖像 159
5.5.4 列表控件:ListView 160
5.5.5 可以單選和多選的ListView 163
5.5.6 動態(tài)添加、刪除ListView列表項 165
5.5.7 改變ListView列表項選中狀態(tài)的
背景顏色 169
5.5.8 封裝ListView的Activity:
ListActivity 169
5.5.9 使用SimpleAdapter建立復雜的
列表項 170
5.5.10 給應用程序評分 172
5.5.11 可展開的列表控件:
ExpandableListView 175
5.5.12 下拉列表控件:Spinner 178
5.5.13 垂直滾動視圖控件:ScrollView 179
5.5.14 水平滾動視圖控件:
HorizontalScrollView 180
5.5.15 可垂直和水平滾動的視圖 181
5.5.16 網格視圖控件:GridView 181
5.5.17 可循環(huán)顯示和切換圖像的控件:
Gallery和ImageSwitcher 183
5.5.18 標簽控件:TabHost 186
5.6 小結 187
第6章 移動存儲解決方案 188
6.1 最簡單的數據存儲方式:
SharedPreferences 188
6.1.1 使用SharedPreferences存取數據 189
6.1.2 數據的存儲位置和格式 190
6.1.3 存取復雜類型的數據 191
6.1.4 設置數據文件的訪問權限 194
6.1.5 可以保存設置的Activity:
PreferenceActivity 196
6.2 文件的存儲 199
6.2.1 openFileOutput和openFileInput
方法 199
6.2.2 SD卡文件瀏覽器 201
6.2.3 存取SD卡中的圖像 205
6.2.4 SAX引擎讀取XML文件的原理 208
6.2.5 將XML數據轉換成Java對象 208
6.3 SQLite數據庫 212
6.3.1 SQLite數據庫管理工具 212
6.3.2 創(chuàng)建數據庫和表 213
6.3.3 模糊查詢 215
6.3.4 分頁顯示記錄 215
6.3.5 事務 215
6.4 在Android中使用SQLite數據庫 216
6.4.1 SQLiteOpenHelper類與自動
升級數據庫 216
6.4.2 SimpleCursorAdapter類與數據綁定 217
6.4.3 帶照片的聯系人管理系統(tǒng) 220
6.4.4 將數據庫與應用程序一起發(fā)布 224
6.4.5 英文詞典 225
6.5 持久化數據庫引擎(db4o) 229
6.5.1 什么是db4o 229
6.5.2 下載和安裝db4o 230
6.5.3 創(chuàng)建和打開數據庫 230
6.5.4 向數據庫中插入Java對象 230
6.5.5 從數據庫中查詢Java對象 232
6.5.6 高級數據查詢 232
6.5.7 更新數據庫中的Java對象 233
6.5.8 刪除數據庫中的Java對象 233
6.6 小結 233
第7章 應用程序之間的通信 234
7.1 Intent與Activity 234
7.1.1 用Intent啟動Activity,并在Activity
之間傳遞數據 235
7.1.2 調用其他應用程序中的Activity(撥打
電話、瀏覽網頁、發(fā)E-mail等) 238
7.1.3 定制自己的Activity Action 243
7.1.4 將電子詞典的查詢功能共享成一個
Activity Action 245
7.2 接收和發(fā)送廣播 247
7.2.1 接收系統(tǒng)廣播 247
7.2.2 開機可自動運行的程序 248
7.2.3 收到短信了,該做點什么 249
7.2.4 顯示手機電池的當前電量 251
7.2.5 在自己的應用程序中發(fā)送廣播 252
7.2.6 接收聯系人系統(tǒng)中發(fā)送的添加
聯系人廣播 253
7.3 小結 255
第8章 Android服務 256
8.1 Service起步 256
8.1.1 Service的生命周期 257
8.1.2 綁定Activity和Service 259
8.1.3 在BroadcastReceiver中啟動
Service 262
8.2 系統(tǒng)服務 264
8.2.1 獲得系統(tǒng)服務 264
8.2.2 監(jiān)聽手機來電 265
8.2.3 來電黑名單 267
8.2.4 在模擬器上模擬重力感應 267
8.2.5 手機翻轉靜音 270
8.3 時間服務 272
8.3.1 計時器:Chronometer 272
8.3.2 預約時間:Handler 275
8.3.3 定時器:Timer 276
8.3.4 在線程中更新GUI組件 278
8.3.5 全局定時器:AlarmManager 280
8.3.6 定時更換壁紙 281
8.3.7 多次定時提醒 284
8.4 跨進程訪問(AIDL服務) 287
8.4.1 什么是AIDL服務 288
8.4.2 建立AIDL服務的步驟 288
8.4.3 建立AIDL服務 288
8.4.4 傳遞復雜數據的AIDL服務 292
8.5 小結 298
第9章 網絡 299
9.1 可裝載網絡數據的控件 300
9.1.1 裝載網絡數據的原理 300
9.1.2 將網絡圖像裝載到ListView
控件中 300
9.1.3 Google圖像畫廊(Gallery) 304
9.2 WebView控件 309
9.2.1 用WebView控件瀏覽網頁 309
9.2.2 手機瀏覽器 309
9.2.3 用WebView控件裝載HTML代碼 311
9.2.4 將英文詞典整合到Web頁中
(JavaScript調用Java方法) 312
9.3 訪問HTTP資源 315
9.3.1 提交HTTP GET和HTTP POST
請求 315
9.3.2 HttpURLConnection類 317
9.3.3 上傳文件 318
9.3.4 遠程Apk安裝器 322
9.3.5 調用WebService 323
9.3.6 通過WebService查詢產品信息 325
9.4 Internet地址 329
9.4.1 Internet地址概述 329
9.4.2 創(chuàng)建InetAddress對象 331
9.4.3 判斷IP地址類型 333
9.5 客戶端Socket 335
9.5.1 Socket類基礎 335
9.5.2 多種連接服務端的方式 337
9.5.3 客戶端Socket的超時 339
9.5.4 Socket類的getter和setter方法 339
9.5.5 Socket的異常 346
9.6 服務端Socket 347
9.6.1 創(chuàng)建ServerSocket對象 347
9.6.2 設置請求隊列的長度 348
9.6.3 綁定IP地址 349
9.6.4 默認構造方法的使用 349
9.6.5 讀取和發(fā)送數據 350
9.6.6 關閉連接 351
9.7 小結 352
第10章 多媒體 353
10.1 圖形 353
10.1.1 圖形繪制基礎 354
10.1.2 繪制基本的圖形和文本 356
10.1.3 繪制位圖 360
10.1.4 用兩種方式繪制位圖 361
10.1.5 設置顏色的透明度 362
10.1.6 可任意改變透明度的位圖 363
10.1.7 旋轉圖像 365
10.1.8 旋轉動畫 365
10.1.9 扭曲圖像 367
10.1.10 按圓形軌跡扭曲圖像 367
10.1.11 拉伸圖像 371
10.1.12 拉伸圖像演示 372
10.1.13 路徑 374
10.1.14 沿著路徑繪制文本 378
10.1.15 可在圖像上繪制圖形的畫板 381
10.2 音頻和視頻 387
10.2.1 使用MediaPlayer播放MP3文件 387
10.2.2 使用MediaRecorder錄音 388
10.2.3 使用VideoView播放視頻 389
10.2.4 使用SurfaceView播放視頻 390
10.3 小結 391
第三部分 進階篇——深入Android世界的腹地
第11章 2D動畫 393
11.1 幀(Frame)動畫 393
11.1.1 AnimationDrawable與幀動畫 394
11.1.2 通過幀動畫方式播放Gif動畫 395
11.1.3 播放幀動畫的子集 399
11.2 補間(Tween)動畫 402
11.2.1 移動補間動畫 402
11.2.2 循環(huán)向右移動的EditText與上下
彈跳的球 404
11.2.3 縮放補間動畫 406
11.2.4 跳動的心 407
11.2.5 旋轉補間動畫 409
11.2.6 旋轉的星系 410
11.2.7 透明度補間動畫 411
11.2.8 投擲炸彈 412
11.2.9 振動效果 415
11.2.10 自定義動畫渲染器(Interceptor) 416
11.2.11 以動畫方式切換View的控件
ViewFlipper 417
11.3 小結 420
第12章 OpenGL ES編程 421
12.1 OpenGL ES簡介 421
12.2 在3D空間中繪圖 423
12.2.1 要繪制3D圖形了,第一步要
做什么 423
12.2.2 定義頂點 426
12.2.3 繪制三角形 427
12.2.4 三角形合并法繪制矩形 429
12.2.5 頂點法繪制矩形 432
12.2.6 頂點的選取順序 433
12.2.7 索引法繪制矩形 434
12.2.8 基于OpenGL ES的動畫原理 435
12.2.9 旋轉的矩形 436
12.3 視圖 437
12.3.1 有趣的比喻:照相機拍照 438
12.3.2 模型變換:立方體旋轉 440
12.3.3 用gluLookAt方法變換視圖 444
12.4 顏色 445
12.5 小結 448
第13章 資源、國際化與自適應 449
13.1 Android中的資源 450
13.1.1 Android怎么存儲資源 450
13.1.2 資源的種類 450
13.1.3 資源文件的命名 451
13.2 定義和使用資源 451
13.2.1 使用系統(tǒng)資源 452
13.2.2 字符串(String)資源 453
13.2.3 數組(Array)資源 455
13.2.4 顏色(Color)資源 457
13.2.5 尺寸(Dimension)資源 459
13.2.6 類型(Style)資源 461
13.2.7 主題(Theme)資源 462
13.2.8 繪畫(Drawable)資源 463
13.2.9 動畫(Animation)資源 465
13.2.10 菜單(Menu)資源 465
13.2.11 布局(Layout)資源 468
13.2.12 屬性(Attribute)資源 469
13.2.13 改進可顯示圖標的IconTextView
控件 471
13.2.14 XML資源 473
13.2.15 RAW資源 474
13.2.16 ASSETS資源 475
13.3 國際化和資源自適應 476
13.3.1 對資源進行國際化 476
13.3.2 Locale與國際化 478
13.3.3 常用的資源配置 478
13.4 小結 480
第14章 訪問Android手機的硬件 481
14.1 在手機上測試硬件 481
14.1.1 安裝Android USB驅動 482
14.1.2 在手機上測試程序 483
14.1.3 在手機上調試程序 484
14.2 錄音 485
14.3 控制手機攝像頭(拍照) 486
14.3.1 調用系統(tǒng)的拍照功能 486
14.3.2 實現自己的拍照Activity 488
14.4 傳感器在手機中的應用 494
14.4.1 在應用程序中使用傳感器 494
14.4.2 電子羅盤 496
14.4.3 計步器 497
14.5 GPS與地圖定位 499
14.5.1 Google地圖 499
14.5.2 用GPS定位到當前位置 503
14.6 WIFI 505
14.7 小結 507
第15章 放在桌面上的小玩意 508
15.1 窗口小部件(App Widget) 508
15.1.1 在Android桌面上添加App
Widget 509
15.1.2 開發(fā)App Widget的步驟 509
15.1.3 數字時鐘 512
15.1.4 AppWidgetProvider類 515
15.1.5 向App Widget添加配置Activity 515
15.1.6 可以選擇風格的數字時鐘 516
15.2 快捷方式 521
15.2.1 向快捷方式列表中添加快捷方式 521
15.2.2 直接將快捷方式放到桌面上 522
15.3 實時文件夾(LiveFolder) 523
15.4 小結 524
第16章 NDK編程 525
16.1 Android NDK簡介 525
16.2 安裝、配置和測試NDK開發(fā)環(huán)境 526
16.2.1 系統(tǒng)和軟件要求 526
16.2.2 下載和安裝Android NDK 527
16.2.3 下載和安裝Cygwin 527
16.2.4 配置Android NDK的開發(fā)環(huán)境 531
16.2.5 編譯和運行NDK自帶的例子 532
16.3 Android NDK開發(fā) 533
16.3.1 JNI接口設計 534
16.3.2 編寫Android NDK程序的步驟 535
16.3.3 將文件中的小寫字母轉換成大寫
字母(NDK版本) 535
16.3.4 配置Android.mk文件 538
16.3.5 Android NDK定義的變量 539
16.3.6 Android NDK定義的函數 540
16.3.7 描述模塊的變量 541
16.3.8 配置Application.mk文件 542
16.4 小結 543
第17章 整合Android與腳本語言 544
17.1 Android腳本環(huán)境簡介 544
17.2 Android腳本環(huán)境安裝 545
17.3 編寫和運行Android腳本 547
17.4 小結 549
第18章 藍牙技術 550
18.1 藍牙簡介 550
18.2 打開和關閉藍牙設備 551
18.3 搜索藍牙設備 552
18.4 藍牙數據傳輸 555
18.5 藍牙通訊一定需要UUID嗎 558
18.6 小結 559
第19章 有趣的Android技術 560
19.1 手勢(Gesture) 560
19.1.1 創(chuàng)建手勢文件 561
19.1.2 通過手勢輸入字符串 561
19.1.3 通過手勢調用程序 563
19.1.4 編寫自己的手勢創(chuàng)建器 565
19.2 讓手機說話(TTS) 567
19.3 動態(tài)壁紙 568
19.4 小結 577
第四部分 綜合實例篇——實踐是檢驗真理的唯一標準
第20章 萬年歷 579
20.1 主界面設計與實現 579
20.1.1 萬年歷的核心類:Calendar 580
20.1.2 日歷內容元素的基類:
CalendarParent 581
20.1.3 繪制萬年歷邊框:Border類 582
20.1.4 繪制周名稱:Week類 583
20.1.5 繪制日期和網格:Grid類 584
20.1.6 日歷視圖:CalendarView類 592
20.1.7 生成萬年歷的主界面 596
20.2 選項菜單功能 596
20.2.1 切換到今天的日期 596
20.2.2 指定日期 597
20.3 可以寫日記和提醒的萬年歷 599
20.3.1 顯示所有的記錄信息:
AllRecord類 599
20.3.2 添加和修改記錄:Record類 601
20.3.3 設置提醒時間 603
20.3.4 啟動服務 604
20.3.5 在廣播接收器中顯示提醒界面 605
20.3.6 訪問數據庫:DBService 607
20.4 小結 611
第21章 知道當前位置的Google GTalk
機器人 612
21.1 GTalk的通訊協(xié)議和技術 612
21.1.1 Jabber和XMPP 612
21.1.2 XMPP客戶端庫:Smack和
Asmack 613
21.2 登錄GTalk:Login類 614
21.3 聯系人信息 616
21.3.1 顯示聯系人列表 616
21.3.2 監(jiān)聽聯系人是否上線 618
21.4 聯系人之間的通訊 620
21.4.1 發(fā)送聊天信息 621
21.4.2 接收聊天信息 622
21.4.3 自動回復當前的位置
(GPS定位) 625
21.5 小結 627
第22章 Android 4.x支持的新技術 628
22.1 Android 4.x的10大特性 628
22.2 子窗口:Fragments 629
22.2.1 Fragments的設計原理 630
22.2.2 創(chuàng)建Fragment 630
22.2.3 建立一個用戶界面 632
22.2.4 將Fragment添加到Activity中 633
22.2.5 處理Fragment事務 634
22.3.6 與Activity通信 635
22.3 動作欄:Action Bar 637
22.3.1 添加Action Bar 637
22.3.2 移除Action Bar 637
22.3.3 添加Action Item 638
22.3.4 將應用圖標用作菜單項目 639
22.4 小結 639
- 深入淺出OpenHarmony——架構、內核、驅動及應用開發(fā)全棧 [李傳釗 著]
- Android高級程序設計 [主編 周雯 舒松]
- 基于Android平臺的移動開發(fā)技術 [主編 徐碩博 黃衛(wèi)東 賈雁]
- Android 應用開發(fā)項目實戰(zhàn) [主編 梁 琨 朱冰鴻]
- Android應用開發(fā)基礎教程 [主編 巫湘林]
- 警用移動通信技術與設備 [胡記文]
- Java ME手機應用程序開發(fā) [易燦 李志勇 編著]
- 移動通信技術 [閆云利]
- Android軟件應用與實踐 [主編 梁平 高峰]
- 移動端UI設計及規(guī)范——分分鐘搞定App UI設計 [北京課工場教育科技有限公司Q]
- 移動端UI商業(yè)項目實戰(zhàn)——讓人愛不釋手的移動端UI設計 [北京課工場教育科技有限公司]
- 移動通信系統(tǒng)與終端維修 [主編 許書君 裴國華]
- Android開發(fā)實用教程 [主編 王建華 張偉]
- C++應用程序設計 [劉彥姝 謝景偉]
- Android基礎教程 [余 平 張建華]
- ANSYS非線性有限元分析方法及范例應用 [張洪偉 高相勝 張慶余 編著]
- ANSYS信號完整性分析與仿真實例 [房麗麗 編著]
- Android 4.X手機/平板電腦程序設計入門、應用到精通(第二版) [孫宏明 著]
- 壓力容器全模型ANSYS分析與強度計算新規(guī)范 [欒春遠 編著]
- Android手機程序設計入門、應用到精通 [孫宏明 著]
- ANSYS 13.0 Workbench數值模擬技術 [許京荊]
- Exchange Server 2010 SP1 實戰(zhàn)精粹 [職念文]
- 移動通信原理與工程 [胡記文 主編]