Android手機程序設計入門、應用到精通
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書把Android的功能按照特性進行分類,根據由淺入深的原則,以教學單元搭配步驟講解,并穿插搭配了許多包含精心設計和講解的應用程序開發案例,如“婚姻建議程序”、“電腦猜拳游戲”、“影像畫廊等。為了在內容的廣度和講解的詳細程度上達到最佳的平衡,本書打破慣例,通過單元編排的方式,讓讀者的學習更有效率,同時也能享受到學習程序設計的樂趣。
本書適合于Android平臺的應用開發人員自學及參考用書,也非常適合作為大學相關軟件專業教材或專業培訓教材。
本書為經臺灣碁峰資訊股份有限公司獨家授權發行的中文簡體版。本書中文簡體字版在中國大陸之專有出版權屬中國水利水電出版社所有。在沒有得到本書原版出版者和本書出版者書面許可時,任何單位和個人不得擅自摘抄、復制本書的一部分或全部以任何方式包括(資料和出版物)進行傳播。本書原版版權屬碁峰資訊股份有限公司。版權所有,侵權必究。
北京市版權局著作權合同登記號:圖字01-2011-5269號
本書把Android的功能按照特性進行分類,根據由淺入深的原則,以教學單元搭配步驟講解,其中穿插搭配了許多包含精心設計和講解的應用程序開發案例,如“婚姻建議程序”、“電腦猜拳游戲”、“影像畫廊等。為了在內容的廣度和講解的詳細程度上達到最佳的平衡,本書打破慣例,通過單元編排的方式,讓讀者的學習更有效率,同時也能享受到學習程序設計的樂趣。
•豐富的Eclipse開發環境的操作技巧,幫助初學者快速學會Eclipse的強大功能
•20種界面控件的使用教學,4種界面布局精講,5種對話框的使用詳解,幫助您設計出好看又漂亮的應用程序
•詳細講解Intent的使用,包括建立Tab標簽頁、發送和返回數據……,讓您完整學會Intent的用法
•4大類Android程序完全詳解,包括Activity、Service、Content provider和Broadcast receiver以及App Widget程序
•2D和3D繪圖程序架構與范例,讓您學會開發Location-based services(LBS 基于位置的服務)
•所有的教學單元都采用步驟式的講解,讓您的學習無障礙
•精心編排的單元內容,方便查詢相關主題
Android!?信息科技的綠芽
相信很多人原來都不曾聽過Android這個詞,但是突然有一天從電視上或是從網絡上,或是在手機商店突然看到這個陌生的詞(通常還伴隨著一個綠色可愛的小機器人)。而后Android這個字開始越來越頻繁地出現在我們周圍的環境,甚至在信息科技類的書架上,我們才開始驚覺它已經悄悄地把觸角延伸到我們的日常生活中。這不是筆者隨意捏造的故事,而是已經發生或是正在發生在許多人身上的實際情況,甚至未來還會有更多人有同樣的經歷,這就好像是春天的綠芽,總是在不經意的時候冒出頭來,然后靜靜地成長茁壯,直到有一天我們才發現它們已經改變了我們的景觀。
Android是一個由Google主導開發的智能手機操作系統,它原來只是一個名不見經傳的小產品,但是Google總是有慧眼識英雄的本領,從網絡搜索引擎到地圖服務,現在再加上智能手機的領域,Google在信息科技界總是能夠掀起一陣又一陣的旋風,由于Google的技術支持與推廣,不僅讓Android從麻雀變鳳凰,也讓Google扶搖直上成為2011年全球最有價值的商業品牌。
Android對于程序開發人員的致命吸引力
開發Android應用程序需要Eclipse、Android SDK和ADT等工具軟件,聽起來好像有點繁雜,但是在Google的技術支持下,這些工具軟件已經完全整合在一起,使用上非常方便。而且相對于其他程序開發工具,這些軟件可說是非常“環保”(對于用戶的計算機來說),因為只需要將它們復制到計算機的文件夾中,再設置好文件夾路徑就可以使用。日后如果不想用,只要刪除相應的文件夾即可。另外還有一個最大的好處是“完全免費”,而且提供每天24小時服務,隨時連上因特網就可以下載安裝和更新。Android操作系統提供的功能甚至超越了一般的計算機操作系統,像是Google地圖服務、定位功能、語音識別、動作和環境感測等,因此只要加上您的創意就可以發展出比一般計算機程序更生活化的應用。而且Google還針對全世界Android應用程序開發人員架設一個Android Market網站,讓他們可以在上面賣或是提供免費下載自己的作品。由于以上這些吸引人的條件,讓世界各地加入開發Android應用程序的人員快速地增加。如果過去我們已經錯過計算機程序研發的先機,現在豈能再錯失成為手機程序開發領頭羊的大好機會!
誰適合閱讀這本書
開發Android應用程序大致上需要三個條件。第一是必須具備程序語法的基礎,也就是說必須知道程序語言(Java、C/C++、Visual Basic皆可)的變量、數組、表達式、循環等基本語法。第二是了解面向對象的概念和用法,因為Android程序是使用Java語言編寫,它采用面向對象的架構。但其實面向對象的基本概念并不難,當然進階的用法就需要比較多的經驗和技術,但是以本書的程序范例而言,是針對入門學習者所設計,因此只要依照書上循序漸進的內容安排來閱讀就可以了解。如果讀者可以配合書上所列舉的操作步驟動手實現,學習效果更能倍增。最后Android程序中使用了事件處理程序和系統callback函數的機制,這種機制并不是Android程序的專屬特性,任何圖形操作接口的操作系統像是Windows也都是采用這種方式,基本上這也是一個概念的問題,只要讀者了解它的運行原理就知道如何使用,本書的學習章節會在適當的時候加以說明,因此只要讀者了解程序語言的基本語法,就可以根據本書的說明和范例開始學習Android程序設計。
如何使用這本書
Android程序設計是一個新興的領域,雖然目前市面上已經出現一些入門學習或是進階應用的書籍,但是在內容的講解和豐富性還欠缺良好的平衡,進階應用書籍中的內容并不適合初學者,而入門書籍所涵蓋的范圍又稍嫌不足,因此編寫這本書的目的就是希望在內容的廣度和內容的細節上取得更好的平衡。為了達到這個目的,我們將Android操作系統的功能按照特性加以分類,然后根據由淺入深的原則進行編排,再加上許多精心設計的范例程序貫穿相關的學習章節,讓讀者在學習單一主題的時候也同時了解相關的功能。本書所使用的章節編排方式也是希望將每一次的學習時間做適當的切割,讓讀者對于新學習的知識有消化反芻的時間,這樣才能夠達到更好的學習成效,同時也能夠享受學習程序設計的樂趣。
本書的第一部分是介紹Android的發展史、系統架構和Google推廣Android的方式。第二部分是介紹安裝Android程序開發工具的步驟并示范第一個Android程序項目以及程序調試的方法、Eclipse的操作技巧和查詢Android SDK聯機幫助文件的方法。這個部分是后續學習的重要基礎,如果讀者是Android程序設計的初學者,請務必仔細研讀,最好能配合動手實現,學習程序設計的秘訣的唯一方法就是多動手,然后想一想、改一改、試一試自然就能理解。完成第二部分的學習之后讀者便可根據自己的興趣或需要學習特定的章節,但由于本書的內容編排是由淺入深,而且有些程序范例具有前后連貫的關系,因此如果讀者在學習上遇到障礙,可以先回到前面相關的章節閱讀之后,再依關連性往后續章節繼續學習,依照這種方式就能夠讓本書的內容對于讀者學習Android程序設計發揮最大的幫助。看完以上的介紹,讀者是不是也被Android平臺的魅力所吸引?那么就從現在開始,讓我們一起踏上Android程序設計的學習之旅吧!
參與本書繁轉簡工作的有李寧、趙華振、李斌鋒、鄧斌、皮文星、閆芳、王玉芹、楊振珂、鄧福金、劉素云、代錫恒、劉曉鍵、李新生、歐陽會、李禮華、石杰、何少亮、歐陽觀、陸正武,在此表示感謝。
最后感謝我最親愛的家人Maysue、小D和小M在本書編寫期間的容忍和體諒,雖然因為我的忙碌而疏忽了你們,但是有你們的陪伴,讓一切的付出和努力更有意義!
孫宏明
于 故園
前言
PART 1 擁抱Android
UNIT 1 從Android的誕生說起 2
1-1 由Google主導開發的Android手機開放平臺 2
1-2 大話Android的發展史 3
UNIT 2 探索Android的功能和應用 6
2-1 Android平臺上究竟可以變出什么魔法 7
UNIT 3 通過編寫Android程序掙錢 8
PART 2 開始我們的Android程序設計之旅
UNIT 4 安裝Android程序開發工具 11
4-1 不同操作系統的開發工具版本 11
4-2 安裝Android程序開發工具的步驟 12
4-3 Android程序開發工具的維護和更新 19
UNIT 5 使用Eclipse建立第一個Android應用程序 22
5-1 建立一個新的Android應用程序項目 22
UNIT 6 了解Android程序項目的架構和執行流程 27
UNIT 7 使用TextView、EditText和Button接口組件 30
7-1 TextView接口組件 31
7-2 EditText接口組件 32
7-3 Button接口組件 33
7-4 鏈接接口組件和程序代碼 34
7-5 設置Button組件的click事件listener 34
7-6 取得edtSex和edtAge接口組件中的字符串 36
7-7 將結果顯示在txtResult接口組件 37
UNIT 8 程序的錯誤類型和除錯方法 39
8-1 程序的語法錯誤和除錯的方法 39
8-2 程序的邏輯錯誤和除錯的方法 40
8-3 執行時期錯誤和除錯的方法 42
UNIT 9 Eclipse進階程序項目管理技巧 46
9-1 根據已經寫好的程序原始文件來建立項目 46
9-2 根據Android SDK中的程序范例來建立項目 48
9-3 把建立好的Android程序項目加載Eclipse 49
9-4 程序項目的管理和維護 50
UNIT 10 讓程序有美好的未來——良好的程序架構 53
UNIT 11 查詢Android SDK的官方文檔 58
11-1 使用頁面的Reference查詢類說明文檔 59
11-2 使用Dev Guide查詢程序設計說明文件 61
PART 3 學習使用基本接口組件
UNIT 12 更多變化的TextView、EditText和Button接口組件 63
12-1 fill_parent和wrap_content的差別 65
12-2 android:inputType范例 66
12-3 控制文字大小、顏色、底色 67
12-4 控制組件四周的間隔距離以及組件內部的文字和邊的距離 68
UNIT 13 Spinner下拉式列表組件 70
13-1 建立Spinner下拉式列表的第一種方法 71
13-2 建立Spinner下拉式列表的第二種方法 75
UNIT 14 使用RadioGroup和RadioButton組件建立單選列表 78
14-1 將“婚姻建議”程序改成使用Radio Group菜單 79
UNIT 15 CheckBox多選列表和ScrollView滾動條 85
UNIT 16 ListView選項列表 92
UNIT 17 ExpandableListView可展開選項列表 97
UNIT 18 AutoCompleteTextView自動完成文字輸入 103
PART 4 布局
UNIT 19 LinearLayout布局 109
UNIT 20 TableLayout布局 115
UNIT 21 RelativeLayout布局 121
UNIT 22 FrameLayout布局 126
UNIT 23 布局的應用實例 129
PART 5 圖像相關的接口組件
UNIT 24 ImageButton和ImageView組件 137
UNIT 25 ImageSwitcher和Gallery組件 143
25-1 Gallery組件的使用方法 144
25-2 ImageSwitcher組件的使用方法 147
25-3 完成“圖像畫廊”程序 148
UNIT 26 使用動畫效果 152
26-1 建立動畫資源文件 153
26-2 建立各種類型的動畫 155
26-3 使用隨機動畫的“圖像畫廊”程序 158
26-4 在程序代碼中建立動畫效果 160
26-5 應該使用動畫資源文件還是在程序代碼中建立動畫對象 162
UNIT 27 GridView接口組件 163
UNIT 28 為ListView加上小圖標 168
28-1 自定義項目的顯示布局 169
28-2 從程序項目的資源類讀入項目數據并設置布局 169
PART 6 其他特殊用途的接口組件
UNIT 29 時間和日期接口組件 174
29-1 DatePicker日期接口組件 174
29-2 TimePicker時間接口組件 175
29-3 范例程序 176
UNIT 30 ProgressBar和Multi-Thread程序 179
30-1 Multi-Thread程序 181
30-2 使用Handler對象完成Thread之間的信息溝通 181
30-3 第一版的Multi-Thread ProgressBar范例程序 182
30-4 第二版的Multi-Thread ProgressBar范例程序 187
UNIT 31 SeekBar和RatingBar界面組件 189
UNIT 32 Tab標簽頁接口 194
PART 7 使用對話框
UNIT 33 DatePickerDialog和TimePickerDialog對話框 200
33-1 DatePickerDialog對話框 201
33-2 TimePickerDialog對話框 202
33-3 范例程序 204
UNIT 34 AlertDialog對話框 208
34-1 使用AlertDialog.Builder類建立AlertDialog對話框 208
34-2 使用AlertDialog類建立AlertDialog對話框 210
34-3 范例程序 212
UNIT 35 ProgressDialog對話框和Multi-Thread程序 216
UNIT 36 自定義Dialog對話框 221
UNIT 37 Toast信息框 227
PART 8 讓Intent幫你的程序完成愿望
UNIT 38 AndroidManifest.xml程序功能描述文件 231
UNIT 39 Intent粉墨登場 237
39-1 Eclipse的DDMS功能以及手機的Linux命令行模式 241
UNIT 40 Tab標簽頁接口——使用Intent對象 244
UNIT 41 用Intent對象傳遞數據 249
41-1 傳送數據的Activity需要完成的工作 249
41-2 從Intent對象中取出數據 251
41-3 范例程序 251
UNIT 42 要求被調用的Activity返回數據 257
PART 9 Intent的高級用法
UNIT 43 Intent Filter讓程序也能幫助別人 263
43-1 設定AndroidManifest.xml文件中的Intent Filter 264
43-2 Android系統比對Intent和Intent Filter的規則 266
43-3 接收到Intent對象的Activity的工作 267
43-4 范例程序 267
UNIT 44 Broadcast Intent和Broadcast Receiver 274
44-1 程序廣播Intent對象的方法 274
44-2 建立Broadcast Receiver監聽廣播消息 275
44-3 范例程序 277
UNIT 45 Service是幕后英雄 282
45-1 Service的運行方式和生命周期 282
45-2 在程序項目中建立Service類 283
45-3 啟動Service的第一種方法 286
45-4 啟動Service的第二種方法 287
45-5 范例程序 288
UNIT 46 App Widget常駐程序 292
46-1 基本的App Widget程序 293
46-2 強化版的App Widget程序 299
46-3 取得并更新App Widget程序的view 302
UNIT 47 App Widget常駐程序的其他兩種執行模式 305
47-1 預定運行時間的App Widget程序 305
47-2 用按鈕啟動App Widget程序 306
PART 10 Activity的生命周期與高級功能
UNIT 48 Activity的生命周期 309
UNIT 49 幫Activity加上選單 313
49-1 onCreateOptionsMenu()方法中的工作 314
49-2 onOptionsItemSelected ()方法中的工作 315
49-3 范例程序 316
UNIT 50 使用Context Menu 320
50-1 Context Menu的用法和限制 320
50-2 范例程序 321
UNIT 51 在屏幕上方的狀態欄顯示信息 324
PART 11 儲存程序數據
UNIT 52 使用SharedPreferences儲存數據 330
52-1 儲存數據的步驟 330
52-2 讀取數據的步驟 331
52-3 刪除數據的步驟 331
52-4 清空數據的步驟 332
UNIT 53 使用SQLite數據庫儲存數據 336
53-1 進入手機模擬器的Linux命令行模式操作SQLite數據庫 336
53-2 SQLiteOpenHelper類 338
53-3 SQLiteDatabase類 339
53-4 范例程序 340
UNIT 54 使用Content Provider跨程序存取數據 348
54-1 Activity和Content Provider之間的運行機制 349
54-2 范例程序 351
UNIT 55 使用文件儲存數據 358
55-1 將數據寫入文件的方法 358
55-2 從文件讀取數據的方法 359
55-3 范例程序 360
PART 12 程序項目的準備工作和發布
UNIT 56 支持多語系和屏幕模式 366
56-1 讓程序支持多語系的方法 367
56-2 讓程序支持多種手機屏幕模式 368
56-3 范例程序 369
UNIT 57 設定手機模擬器的程序 開發相關功能 372
UNIT 58 將程序安裝到實體手機或在網絡上發布 376
58-1 利用Export Wizard幫程序加上數字簽名和完成zipalign 377
58-2 將程序上傳到Google的Android Market網站 379
PART 13 2D和3D繪圖
UNIT 59 使用Drawable對象 382
59-1 從res/drawable文件夾的圖像文件建立Drawable對象 382
59-2 在res/drawable文件夾中建立xml文件格式的Drawable對象定義文件 383
59-3 在程序中建立Drawable類型的對象 384
59-4 范例程序 385
UNIT 60 使用Canvas繪圖 388
UNIT 61 使用View在Canvas上繪制動畫 392
61-1 程序繪制動畫的原理 392
61-2 范例程序 393
UNIT 62 使用SurfaceView進行高速繪圖 397
62-1 使用SurfaceView的步驟 397
62-2 范例程序 398
UNIT 63 繪制3D圖形 403
63-1 3D繪圖的基本觀念 403
63-2 3D繪圖程序 405
PART 14 Google地圖程序
UNIT 64 使用Google地圖 412
64-1 開發Google地圖應用程序的準備工作 412
64-2 建立Google地圖應用程序的步驟 416
64-3 范例程序 418
UNIT 65 Google地圖的進階用法 422
65-1 地圖的縮放和拖曳功能 422
65-2 加上鍵盤控制功能 424
65-3 切換地圖顯示模式 425
UNIT 66 幫地圖加上標注 430
66-1 地圖程序使用Overlay的步驟 430
66-2 范例程序 435
UNIT 67 加上定位讓地圖活起來 437
67-1 手機定位的方法 437
67-2 第一種定位方法——使用MyLocationOverlay對象 438
67-3 第二種定位方法——使用LocationManager 442
PART 15 Android 4.x支持的新技術
UNIT 68 Android 4.x的10大特性 448
UNIT 69 子窗口:Fragments 450
69-1 Fragments的設計原理 451
69-2 創建Fragment 451
69-3 建立一個用戶界面 453
69-4 將Fragment添加到Activity中 453
69-5 處理Fragment事務 455
69-6 與Activity通信 456
UNIT 70 動作欄:Action Bar 458
70-1 添加Action Bar 458
70-2 移除Action Bar 459
70-3 添加Action Item 459
70-4 將應用圖標用作菜單項目 460
附錄 本書光盤內容與使用說明 462
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]
- 簡單易懂的Python入門教程 [[日]大澤文孝 著]