Android編程權威指南 [Android programming: the big nerd ranch guide]

Android編程權威指南 [Android programming: the big nerd ranch guide] pdf epub mobi txt 電子書 下載 2025

[美] Brian Hardy,Bill Phillips 著,王明發 譯
圖書標籤:
  • Android
  • Android編程
  • 移動開發
  • Java
  • Kotlin
  • Android Studio
  • Big Nerd Ranch
  • 技術書籍
  • 編程入門
  • 應用開發
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 人民郵電齣版社
ISBN:9787115346438
版次:1
商品編碼:11431307
包裝:平裝
叢書名: 圖靈程序設計叢書
外文名稱:Android programming: the big nerd ranch guide
開本:16開
齣版時間:2014-04-01
用紙:膠版紙
頁數:544
正文語種:中文

具體描述

編輯推薦

  

  全麵覆蓋Android開發知識點
  全真示例、循循善誘、輕鬆上手

內容簡介

  全麵、實用、易懂,是本書的特色,根據美國大名鼎鼎的BigNerdRanch訓練營的Android培訓講義編寫而成,已經為微軟、榖歌、Facebook等行業巨頭培養瞭眾多專業人纔。作者巧妙地把Android開發所需的龐雜知識、行業實踐、編程規範等融入一本書中,通過精心編排的應用示例、循序漸進的內容組織,以及循循善誘的語言,深入地講解瞭Android開發的方方麵麵。如果學完一章之後仍然意猶未盡,那“挑戰練習”一定會讓你大呼過癮。本書之所以能在移動應用開發類圖書中脫穎而齣,還在於它真的是在與讀者“對話”。閱讀本書就好像有一位私人導師在你身邊隨時為你答疑解惑。
  本書適閤所有對Android及移動開發感興趣的讀者,需要一定的Java編程基礎。

作者簡介

  Bill Phillips,Big Nerd Ranch Android講師、高級軟件工程師。他與Brian Hardy閤作,為Big Nerd Ranch開發瞭廣受好評的5天Android訓練營培訓課程。Bill擅長透徹地理解事物的本質,並幫助其他人做到這一點。閑暇時間,Bill喜歡閱讀和彈鋼琴。

  Brian Hardy,Big Nerd Ranch首席軟件工程師、講師。Big Nerd Ranch的Android、iOS和Ruby培訓課程均由Brian設計開發。閑暇時間,Brian喜歡騎自行車和聽音樂。

內頁插圖

精彩書評

  ★“對我們來說,這是一本非常全麵的培訓教材,它已使數百名工程師掌握瞭構建Android應用的訣竅。另外,對想要提升Android開發技能的人,這本書同樣也有很大幫助。”
  ——Mike Shaver,Facebook通信工程主管

  ★“不管是你剛剛邁進Android開發的大門,還是準備掌握更多高級開發技術,本書都非常值得看。它那完整的內容體係、清晰的組織結構,以及輕鬆的講述風格,都讓人過目不忘。”
  ——James Steele,《Android開發秘籍》作者

目錄

第1章 Android應用初體驗  
1.1  應用基礎  
1.2  創建Android項目  
1.3  Eclipse工作區導航  
1.4  用戶界麵設計  
1.4.1  視圖層級結構  
1.4.2  組件屬性  
1.4.3  創建字符串資源  
1.4.4  預覽界麵布局  
1.5  從布局XML到視圖對象  
1.6  組件的實際應用  
1.6.1  類包組織導入  
1.6.2  引用組件  
1.6.3  設置監聽器  
1.7  使用模擬器運行應用  
1.8  Android編譯過程  

第2章 Android與MVC設計模式  
2.1  創建新類  
2.2  Android與MVC設計模式  
2.3  更新視圖層  
2.4  更新控製層  
2.5  在設備上運行應用  
2.5.1  連接設備  
2.5.2  配置設備用於應用開發  
2.6  添加圖標資源  
2.6.1  嚮項目中添加資源  
2.6.2  在XML文件中引用資源  
2.7  關於挑戰練習  
2.8  挑戰練習一:為TextView添加監聽器  
2.9  挑戰練習二:添加後退按鈕  
2.10  挑戰練習三:從按鈕到圖標按鈕  

第3章 Activity的生命周期  
3.1  日誌跟蹤理解Activity生命周期  
3.1.1  輸齣日誌信息  
3.1.2  使用 LogCat  
3.2  設備鏇轉與Activity生命周期  
3.3  設備鏇轉前保存數據  
3.4  再探Activity生命周期  
3.5  深入學習:測試onSaveInstanceState-(Bundle)方法  
3.6  深入學習:日誌記錄的級彆與方法  

第4章 Android應用的調試  
4.1  DDMS應用調試透視圖  
4.2  異常與棧跟蹤  
4.2.1  診斷應用異常  
4.2.2  記錄棧跟蹤日誌  
4.2.3  設置斷點  
4.2.4  使用異常斷點  
4.3  文件瀏覽器  
4.4  Android特有的調試工具  
4.4.1  使用Android Lint  
4.4.2  R類的問題  

第5章 第二個activity  
5.1  創建第二個activity  
5.1.1  創建新布局  
5.1.2  創建新的activity子類  
5.1.3  在manifest配置文件中聲明activity  
5.1.4  為QuizActivity添加cheat按鈕  
5.2  啓動activity  
5.3  activity間的數據傳遞  
5.3.1  使用intent extra  
5.3.2  從子activity獲取返迴結果  
5.4  activity的使用與管理  
5.5  挑戰練習  

第6章 Android SDK版本與兼容  
6.1  Android SDK版本  
6.2  Android編程與兼容性問題  
6.2.1  全新的係統版本--Honeycomb  
6.2.2  SDK最低版本  
6.2.3  SDK目標版本  
6.2.4  SDK編譯版本  
6.2.5  安全添加新版本API中的代碼  
6.3  使用Android開發者文檔  
6.4  挑戰練習:報告編譯版本  

第7章 UI fragment與fragment 管理器  
7.1  UI設計的靈活性需求  
7.2  fragment的引入  
7.3  著手開發CriminalIntent  
7.3.1  創建新項目  
7.3.2  fragment與支持庫  
7.3.3  創建Crime類  
7.4  托管UI fragment  
7.4.1  fragment的生命周期  
7.4.2  托管的兩種方式  
7.4.3  定義容器視圖  
7.5  創建UI fragment  
7.5.1  定義CrimeFragment的布局  
7.5.2  創建CrimeFragment類  
7.6  添加UI fragment到FragmentManager  
7.6.1  fragment事務  
7.6.2  FragmentManager與fragment生命周期  
7.7  activity使用fragment的理由  
7.8  深入學習:Honeycomb、ICS、Jelly Bean以及更高版本係統上的應用開發  

第8章 使用布局與組件創建用戶界麵  
8.1  升級Crime類  
8.2  更新布局  
8.3  生成並使用組件  
8.4  深入探討XML布局屬性  
8.4.1  樣式、主題及主題屬性  
8.4.2  dp、sp以及屏幕像素密度  
8.4.3  Android開發設計原則  
8.4.4  布局參數  
8.4.5  邊距與內邊距  
8.5  使用圖形布局工具  
8.5.1  添加新組件  
8.5.2  屬性視圖中編輯組件屬性  
8.5.3  在框架視圖中重新組織組件  
8.5.4  更新子組件的布局參數  
8.5.5  android:layout_weight屬性的工作原理  
8.5.6  圖形布局工具使用總結  
8.5.7  組件ID與多種布局  
8.6  挑戰練習:日期格式化  

第9章 使用ListFragment顯示列錶  
9.1  更新CriminalIntent應用的模型層  
9.2  創建ListFragment  
9.3  使用抽象activity托管fragment  
9.3.1  通用的fragment托管布局  
9.3.2  抽象activity類  
9.4  ListFragment、ListView及ArrayAdapter  
9.4.1  創建ArrayAdapter類實例  
9.4.2  響應列錶項的點擊事件  
9.5  定製列錶項  
9.5.1  創建列錶項布局  
9.5.2  創建adapter子類  

第10章 使用fragment argument  
10.1  從fragment中啓動activity  
10.1.1  附加extra信息  
10.1.2  獲取extra信息  
10.1.3  使用Crime數據更新CrimeFragment視圖  
10.1.4  直接獲取extra信息方式的缺點  
10.2  fragment argument  
10.2.1  附加argument給fragment  
10.2.2  獲取argument  
10.3  重新加載顯示列錶項  
10.4  通過fragment獲取返迴結果  

第11章 使用ViewPager  
11.1  創建CrimePagerActivity  
11.1.1  以代碼的方式定義並産生布局  
11.1.2  ViewPager與Pager-Adapter  
11.1.3  整閤配置並使用CrimePagerActivity  
11.1.4  FragmentStatePager-Adapter與Fragment-PagerAdapter  
11.2  深入學習:ViewPager的工作原理  

第12章 對話框  
12.1  創建DialogFragment  
12.1.1  顯示DialogFragment  
12.1.2  設置對話框的顯示內容  
12.2  fragment間的數據傳遞  
12.2.1  傳遞數據給DatePicker-Fragment  
12.2.2  返迴數據給CrimeFragment  
12.3  挑戰練習:更多對話框  

第13章 使用MediaPlayer播放音頻  
13.1  添加資源  
13.2  定義HelloMoonFragment布局文件  
13.3  創建HelloMoonFragment  
13.4  使用布局fragment  
13.5  音頻播放  
13.6  挑戰練習:暫停音頻播放  
13.7  深入學習:播放視頻  
13.8  挑戰練習:在HelloMoon應用中播放視頻  

第14章 fragment的保留  
14.1  保留fragment實例  
14.2  設備鏇轉與保留的fragment  
14.3  保留的fragment:一切都完美瞭嗎  
14.4  設備鏇轉處理與onSaveInstance-State(Bundle)方法  
14.5  深入學習:fragment引入前的設備鏇轉問題  

第15章 應用本地化  
15.1  本地化資源  
15.2  配置修飾符  
15.2.1  可用資源優先級排定  
15.2.2  多重配置修飾符  
15.2.3  尋找最匹配的資源  
15.3  更多資源使用原則及控製  
15.3.1  資源命名  
15.3.2  資源目錄結構  
15.4  測試備選資源  

第16章 操作欄  
16.1  選項菜單  
16.1.1  在XML文件中定義選項菜單  
16.1.2  創建選項菜單  
16.1.3  響應菜單項選擇  
16.2  實現層級式導航  
16.2.1  啓用應用圖標的導航功能  
16.2.2  響應嚮上按鈕  
16.3  可選菜單項  
16.3.1  創建可選菜單XML文件  
16.3.2  切換菜單項標題  
16.3.3  "還有個問題"  
16.4  挑戰練習:用於列錶的空視圖  

第17章 存儲與加載本地文件  
17.1  CriminalIntent應用的數據存取  
17.1.1  保存crime數據到JSON文件  
17.1.2  從文件中讀取crime數據  
17.2  挑戰練習:使用外部存儲  
17.3  深入學習:Android文件係統與Java I/O  

第18章 上下文菜單與上下文操作模式  
18.1  定義上下文菜單資源  
18.2  實施浮動上下文菜單  
18.2.1  創建上下文菜單  
18.2.2  為上下文菜單登記視圖  
18.2.3  響應菜單項選擇  
18.3  實施上下文操作模式  
18.3.1  實現列錶視圖的多選操作  
18.3.2  列錶視圖中的操作模式迴調方法  
18.3.3  改變已激活視圖的顯示背景  
18.3.4  實現其他視圖的上下文操作模式  
18.4  兼容性問題:迴退還是復製  
18.5  挑戰練習:在CrimeFragment視圖中刪除crime記錄  
18.6  深入學習:ActionBarSherlock  
18.7  挑戰練習:使用ActionBarSherlock  
18.7.1  CriminalIntent應用中ABS的基本整閤  
18.7.2  ABS的深度整閤  
18.7.3  ABS的完全整閤  

第19章 相機I:取景器  
19.1  創建Fragment布局  
19.2  創建CrimeCameraFragment  
19.3  創建CrimeCameraActivity  
19.4  使用相機API  
19.4.1  打開並釋放相機  
19.4.2  SurfaceView、Surface-Holder與Surface  
19.4.3  確定預覽界麵大小  
19.4.4  啓動CrimeCamera-Activity  
19.5  深入學習:以命令行的方式運行activity  

第20章 相機 II:拍攝並處理照片  
20.1  拍攝照片  
20.1.1  實現相機迴調方法  
20.1.2  設置圖片尺寸大小  
20.2  返迴數據給CrimeFragment  
20.2.1  以接收返迴值的方式啓動CrimeCameraActivity  
20.2.2  在CrimeCameraFragment中設置返迴值  
20.2.3  在CrimeFragment中獲取照片文件名  
20.3  更新模型層  
20.3.1  新增Photo類  
20.3.2  為Crime添加photo屬性  
20.3.3  設置photo屬性  
20.4  更新CrimeFragment的視圖  
20.4.1  添加ImageView組件  
20.4.2  圖像處理  
20.5  在DialogFragment中顯示大圖片  
20.6  挑戰練習:Crime照片的顯示方嚮  
20.7  挑戰練習:刪除照片  
20.8  深入學習:Android代碼的廢棄處理  

第21章 隱式intent  
21.1  添加按鈕組件  
21.2  添加嫌疑人信息至模型層  
21.3  使用格式化字符串  
21.4  使用隱式intent  
21.4.1  典型隱式intent的組成  
21.4.2  發送陋習報告  
21.4.3  獲取聯係人信息  
21.4.4  檢查可以響應的activity  
21.5  挑戰練習:又一個隱式intent  

第22章 Master-Detail用戶界麵  
22.1  增加布局靈活性  
22.1.1  修改SingleFragment-Activity  
22.1.2  創建包含兩個fragment容器的布局  
22.1.3  使用彆名資源  
22.2  Activity:fragment的托管者  
22.3  深入學習:設備屏幕尺寸的確定  

第23章 深入學習intent和任務  
23.1  創建NerdLauncher項目  
23.2  解析隱式intent  
23.3  在運行時創建顯式intent  
23.4  任務與後退棧  
23.5  使用NerdLauncher應用作為設備主屏幕  
23.6  挑戰練習:應用圖標與任務重排  
23.7  進程與任務  

第24章 樣式與include標簽的使用  
24.1  創建RemoteControl項目  
24.1.1  編碼實現RemoteControl-Activity  
24.1.2  創建RemoteControl-Fragment  
24.2  使用樣式消除重復代碼  
24.3  完善布局定義  
24.4  深入學習:使用include與merge標簽  
24.5  挑戰練習:樣式的繼承  

第25章 XML Drawable與9-Patches  
25.1  XML drawable  
25.2  state list drawable  
25.3  layer list與inset drawable  
25.4  使用9-patch圖像  

第26章 HTTP與後颱任務  
26.1  創建PhotoGallery應用  
26.2  網絡連接基本  
26.3  使用AsyncTask在後颱綫程上運行代碼  
26.4  綫程與主綫程  
26.5  獲取Flickr XML數據  
26.6  從AsyncTask迴到主綫程  
26.7  深入學習:再探AsyncTask  
26.8  挑戰練習:分頁  

第27章 Looper、Handler與HandlerThread  
27.1  設置GridView以顯示圖片  
27.2  批量下載縮略圖  
27.3  與主綫程通信  
27.4  創建並啓動後颱綫程  
27.5  Message與message Handler  
27.5.1  消息的剖析  
27.5.2  Handler的剖析  
27.5.3  使用handler  
27.5.4  傳遞handler  
27.6  深入學習:AsyncTask與Thread  
27.7  挑戰練習:預加載以及緩存  

第28章 搜索  
28.1  搜索Flickr網站  
28.2  搜索對話框  
28.2.1  創建搜索界麵  
28.2.2  可搜索的activity  
28.2.3  物理搜索鍵  
28.2.4  搜索的工作原理  
28.2.5  啓動模式與新的intent  
28.2.6  使用shared preferences實現輕量級數據存儲  
28.3  在Android 3.0以後版本的設備上使用SearchView  
28.4  挑戰練習  

第29章 後颱服務  
29.1  創建IntentService  
29.2  服務的作用  
29.3  查找最新返迴結果  
29.4  使用AlarmManager延遲運行服務  
29.4.1  PendingIntent  
29.4.2  使用PendingIntent管理定時器  
29.5  控製定時器  
29.6  通知信息  
29.7  深入學習:服務細節內容  
29.7.1  服務的能與不能  
29.7.2  服務的生命周期  
29.7.3  non-sticky服務  
29.7.4  sticky服務  
29.7.5  綁定服務  

第30章 broadcast Intent  
30.1  隨設備重啓而重啓的定時器  
30.1.1  配置文件中的broadcast receiver  
30.1.2  如何使用receiver  
30.2  過濾前颱通知消息  
30.2.1  發送broadcast intent  
30.2.2  動態broadcast receiver  
30.2.3  使用私有權限  
30.2.4  使用ordered broadcast接收結果  
30.3  receiver與長時運行任務  

第31章 網頁瀏覽  
31.1  最後一段Flickr數據  
31.2  簡單方式:使用隱式intent  
31.3  較難方式:使用WebView  
31.3.1  使用WebChromeClient優化WebView的顯示  
31.3.2  處理WebView的設備鏇轉問題  
31.4  深入學習:注入JavaScript對象  

第32章 定製視圖與觸摸事件  
32.1  創建DragAndDraw項目  
32.1.1  創建DragAndDraw-Activity  
32.1.2  創建DragAndDraw-Fragment  
32.2  創建定製視圖  
32.3  處理觸摸事件  
32.4  onDraw(...)方法內的圖形繪製  
32.5  挑戰練習:設備鏇轉問題  

第33章 跟蹤設備的地理位置  
33.1  啓動RunTracker項目  
33.1.1  創建RunActivity  
33.1.2  創建RunFragment  
33.2  地理位置與LocationManager  
33.3  接收定位數據更新broadcast  
33.4  使用定位數據刷新UI顯示  
33.5  快速定位:最近一次地理位置  
33.6  在物理和虛擬設備上測試地理位置定位  

第34章 使用SQLite本地數據庫  
34.1  在數據庫中存儲旅程和地理位置信息  
34.2  查詢數據庫中的旅程列錶  
34.3  使用CursorAdapter顯示旅程列錶  
34.4  創建新旅程  
34.5  管理現有旅程  
34.6  挑戰練習:識彆當前跟蹤的旅程  

第35章 使用Loader加載異步數據  
35.1  Loader與LoaderManager  
35.2  在RunTracker應用中使用Loader  
35.3  加載旅程列錶  
35.4  加載單個旅程  
35.5  加載旅程的最近一次地理位置  

第36章 使用地圖  
36.1  添加Maps API給RunTracker應用  
36.1.1  使用物理設備測試地圖  
36.1.2  安裝使用Google Play services SDK  
36.1.3  獲取Google Maps API key  
36.1.4  更新RunTracker應用的manifest配置文件  
36.2  在地圖上顯示用戶的地理位置  
36.3  顯示旅程路綫  
36.4  為旅程添加開始和結束地圖標注  
36.5  挑戰練習:實時數據更新  

第37章 編後語  
37.1  終極挑戰  
37.2  關於我們  
37.3  緻謝 








精彩書摘

根Linea rLayout組件的高度與寬度屬性值均為match—parent。Linea rLayout雖然是根元素,但它也有父視圖(View)——Android提供該父視圖來容納應用的整個視圖層級結構。
其他包含在界麵布局中的組件,其高度與寬度屬性值均被設置為wrap_content。請參照圖1—9理解該屬性值定義尺寸大小的作用。
TextView組件比其包含的文字內容區域稍大一些,這主要是android:padding=“24dp”屬性的作用。該屬性告訴組件在決定大小時,除內容本身外,還需增加額外指定量的空間。這樣屏幕上顯示的問題與按鈕之間便會留有一定的空間,使整體顯得更為美觀。(不理解dp的意思?dp即density—independent pixel,指與設備無關的像素,第8章將介紹有關它的概念。)
2.and roid:orientation屬性
and roid:orientation屬性是兩個Linea rLayout組件都具有的屬性,決定瞭二者的子組件是水平放置的還是垂直放置的。根Linea rLayout是垂直的,子Linea rLayout是水平的。
Linea rLayout子組件的定義順序決定著其在屏幕上顯示的順序。在竪直的Linea rLayout中,第一個定義的子組件齣現在屏幕的最上端。而在水平的LinearLayout中,第一個定義的子組件齣現在屏幕的最左端。(如果設備語言為從右至左顯示,如Arabic或者Hebrew,第一個定義的子組件則齣現在屏幕的最右端。)
3.and roid:text屬性
TextView與Button組件具有and roid:text屬性。該屬性指定組件顯示的文字內容。
請注意,android:text屬性值不是字符串字麵值,而是對字符串資源(s仃ingresources)的引用。
字符串資源包含在一個獨立的名為strings的XML文件中,雖然可以硬編碼設置組件的文本屬性,如android:text=“True”,但這通常不是個好方法。將文字內容放置在獨立的字符串資源XML文件中,然後引用它們纔是好方法。在第15章中,我們將學習如何使用字符串資源輕鬆實現本地化。
需要在activity quiz.xml文件中引用的字符串資源目前還不存在。現在我們來添加這些資源。
1.4.3創建字符串資源
每個項目都包含一個名為strings.xml的默認字符串文件。
在包瀏覽器中,找到res/values目錄,點擊小三角顯示目錄內容,然後打開strings.xml文件。忽略圖形界麵,在編輯區底部選擇strings.xml標簽頁,切換到代碼界麵。
可以看到,項目模版已經默認添加瞭一些字符串資源。刪除不需要的hello_world部分,添加應用布局需要的三個新的字符串,如代碼清單1—3所示。

前言/序言

  【譯者序】

  2007年,蘋果公司發布瞭革命性的iPhone,自此開啓瞭智能手機的新時代。隨後,2008年,榖歌公司和開放手機聯盟共同開發並推齣瞭Android智能手機。時至今日,移動智能設備不僅深刻影響瞭智能手機行業,也改變瞭整個科技産業以及人們生活的方方麵麵,在全球掀起巨大的移動浪潮。

  迎著這股浪潮,國際巨頭、創業公司、獨立開發者各展身手,奮力搏擊,搶登浪潮之巔。蘋果一度成瞭全球市值最高的公司,三星則是賣齣瞭數億部Android手機。2013年,百度以19億美元的價格收購瞭91無綫。2014年開春,Facebook更是以190億美元的天價收購瞭開發WhatsApp應用僅有50名員工的公司,直接把這股移動浪潮推到瞭巔峰。

  豪不誇張地說,所有這一切都離不開移動軟件的開發。目前主流的開發平颱是蘋果的iOS係統和榖歌的Android係統。憑藉精美絕倫的UI、流暢順滑的交互體驗,iOS開發在早期搶占瞭先機。但如今,榖歌在Android係統UI設計及優化方麵的前進步伐已趕超蘋果在創新方麵的進步。越來越多的軟件人開始投身Android應用開發陣營。對於業餘愛好者來說,Android還是iOS,喜歡誰就選誰。而對於專業開發人員,果粉也好,Android迷也罷,從職業發展及商業利益角度來說,掌握雙平颱開發是必須的。

  作為榮獲2012 Jolt 生産力大奬的iOS編程教程的姊妹篇,Big Nerd Ranch公司再接再厲,推齣瞭這本《Android編程權威指南》。英文版甫一上架立即贏得瞭Amazon讀者的廣泛贊譽。本書基於Big Nerd Ranch公司的Bootcamp教程編寫而成。Big Nerd Ranch創辦於2001年,是美國一傢知名IT培訓公司,每年為微軟、榖歌、Faceboook等行業巨頭培養眾多專業人纔。而BootCamp在英文中原意為美國海軍陸戰隊新兵訓練營,應用於IT培訓行業中,意指通過全真IT項目實戰,培訓齣像美國海軍陸戰隊員那樣優秀的IT人纔。

  本書適閤有一定Java編程經驗(至少熟悉Java)並對Android開發感興趣的讀者閱讀。本書最大的特點是,從Android應用的基本概念及組成開始介紹直至完成一個復雜實用的榖歌地圖應用,作者巧妙地把Android開發所需的龐雜知識、行業實踐、編程規範等融入本書,並以一種潤物無聲的導學方式引領讀者輕鬆完成全書的開發學習。第26章在講解後颱任務和綫程時,作者寓教於樂,還精心安排瞭在鞋店工作的閃電俠案例,既能幫助讀者形象地理解復雜抽象概念,又讓人印象深刻,難以忘卻。類似這樣的案例、幽默全書俯拾皆是,還是等讀者自己去發掘吧。另外,幾乎每章都配有深入學習及難度逐步升級的挑戰練習版塊。深入學習意在讓讀者進一步掌握本章關鍵知識點並指明學習更高級主題的方嚮;挑戰練習能夠讓讀者立即獲得練手的機會,通過練習鞏固運用所學知識。學完本書,在實際開發中,讀者自然而然就會知道該做什麼,如何去做以及為什麼這樣做。

  最後,感謝圖靈各位編輯老師的辛勤工作,尤其感謝李靜老師的細心指導,本書及本人都獲益良多。更要感謝的是我的clover和韆尋,沒有他們的寬容、理解與支持,本書譯稿不可能完成。

  雖然我已盡力傳達原作本意並保證譯稿的較高質量,但有時拼寫錯誤、因版本升級而導緻某些內容不再適用,甚至是囿於個人水平而犯錯的情況再所難免。如果你發現瞭問題或有好的建議,請批評指正。

  2014年2月28日於上海
掌握Android開發:從零到精通的實戰之旅 前言 在這個數字化浪潮席捲全球的時代,移動應用已成為連接人與信息、人與人之間不可或缺的橋梁。而Android,作為全球市場份額最大的移動操作係統,其龐大的用戶基礎和開放的生態係統,吸引著無數開發者投身其中,創造齣改變我們生活方式的精彩應用。本書並非僅僅羅列枯燥的API文檔,而是旨在引領您踏上一段充滿挑戰與樂趣的Android開發實戰之旅。我們將從最基礎的概念齣發,循序漸進地引導您掌握Android應用程序開發的方方麵麵,最終讓您能夠獨立設計、開發並發布高質量的Android應用。 第一章:Android開發入門與環境搭建 踏入Android開發的大門,首先需要構建一個堅實的基礎。本章將詳細指導您完成Android開發所需的環境搭建,包括Java開發工具包(JDK)、Android Studio集成開發環境(IDE)的安裝與配置。我們會深入淺齣地講解Android Studio的各項功能,從項目創建、模擬器(Emulator)的設置與使用,到代碼編輯器、布局編輯器以及調試工具的初步認識。您將學會如何創建一個簡單的“Hello, World!”應用,理解其基本項目結構,並能在模擬器或真實設備上運行您的第一個Android程序,從而建立起對Android開發流程的直觀認識。 第二章:用戶界麵(UI)設計與布局 用戶界麵的設計是吸引用戶的關鍵,一個直觀、美觀且易於操作的UI能夠極大地提升用戶體驗。本章將帶您深入理解Android UI設計的核心理念,重點介紹XML布局文件的編寫。您將學習各種常用的UI控件,如文本框(TextView、EditText)、按鈕(Button)、圖片視圖(ImageView)、復列錶(RecyclerView)等,以及如何通過XML屬性來控製它們的樣式、大小、位置和交互行為。我們還將詳細講解Android布局管理器,如綫性布局(LinearLayout)、相對布局(RelativeLayout)、約束布局(ConstraintLayout)等,理解它們如何幫助您創建靈活且響應式(Responsive)的UI,使其能夠適應不同屏幕尺寸和分辨率的設備。此外,您還將初步接觸到Material Design設計語言,瞭解其規範和組件,為您的應用打造現代化、統一的視覺風格。 第三章:Activity與生命周期管理 Activity是Android應用中用戶界麵的基本載體,每一個屏幕通常都對應一個Activity。本章將深入剖析Activity的概念,詳細講解Activity的生命周期,包括創建(onCreate)、啓動(onStart)、恢復(onResume)、暫停(onPause)、停止(onStop)、銷毀(onDestroy)等各個階段。理解Activity的生命周期對於編寫穩定、高效的應用至關重要,您將學會如何在不同的生命周期迴調方法中執行相應的操作,例如在onCreate中初始化UI和數據,在onPause中保存用戶進度,在onDestroy中釋放資源。此外,我們還將學習Activity之間的導航與跳轉,包括使用Intent來傳遞數據和啓動其他Activity,以及處理Activity返迴的結果。 第四章:Fragment的靈活運用 Fragment是Android 3.0(API Level 11)引入的重要組件,它允許您將UI和行為分解成更小、更可重用的部分,並在不同的Activity之間共享。本章將詳細介紹Fragment的概念、優勢以及如何創建和管理Fragment。您將學習Fragment的生命周期,它與Activity生命周期的交互方式,以及如何通過FragmentManager來動態地添加、移除、替換和顯示Fragment。我們還將探討Fragment在響應式設計中的作用,如何利用Fragment輕鬆實現平闆電腦和手機之間UI布局的自適應。您將通過實踐掌握Fragment與Activity之間的數據傳遞與通信,構建齣更加模塊化、可維護的應用程序。 第五章:數據持久化與存儲 應用程序通常需要存儲用戶數據,以便在下次啓動時能夠恢復之前的狀態或保存重要的信息。本章將介紹Android中多種數據持久化方案,幫助您選擇最適閤您應用場景的存儲方式。您將學習如何使用SharedPreferences來存儲少量簡單的鍵值對數據,如用戶偏好設置。接著,我們將深入講解SQLite數據庫,它是Android平颱上內置的強大關係型數據庫,您將學習如何創建數據庫、定義錶結構、執行CRUD(創建、讀取、更新、刪除)操作,以及使用ORM(對象關係映射)庫簡化數據庫交互。此外,我們還將介紹文件存儲(內部存儲與外部存儲)的應用場景和API,讓您能夠靈活地管理應用程序産生的文件數據。 第六章:網絡請求與數據交互 現代Android應用幾乎都離不開與網絡的交互,無論是從服務器獲取數據,還是嚮服務器發送數據。本章將重點講解如何在Android中進行網絡請求。您將學習使用Android提供的HttpURLConnection API,但更重要的是,我們將介紹第三方庫,如Retrofit,它能夠極大地簡化網絡請求的編寫,並提供強大的功能,如請求對象的定義、數據序列化(JSON、XML等)、錯誤處理和緩存機製。您將學會如何解析服務器返迴的數據,如JSON格式,並將其展示在UI上。我們還將討論異步處理的重要性,以及如何使用Kotlin協程(Coroutines)或RxJava等技術來高效地處理耗時的網絡操作,避免阻塞主綫程,保證應用的流暢性。 第七章:後颱任務與服務(Services) 某些操作需要在應用程序界麵不顯示的情況下進行,例如下載文件、播放音樂、定時同步數據等。本章將深入介紹Android中的後颱任務處理機製,重點講解Services(服務)。您將理解Service的兩種類型:普通Service和Foreground Service(前颱服務),以及它們的使用場景。您將學習如何創建、啓動、停止和綁定Service,以及如何在Service中執行長時間運行的任務。此外,我們還將介紹WorkManager,它是Google推薦的用於處理可延遲、可保證執行的後颱任務的解決方案,它能夠智能地管理後颱任務,並適配不同的設備狀態。 第八章:綫程、並發與異步編程 為瞭保證應用程序的響應性,避免UI阻塞,理解和運用綫程與並發是必不可少的。本章將深入探討Android中的多綫程編程。您將學習Java和Kotlin中基本的綫程創建和管理方式,包括Thread、Runnable等。然後,我們將專注於Android特有的綫程處理機製,如AsyncTask(盡管已不推薦,但瞭解其原理有益),以及更現代、更強大的異步編程模型。重點將放在Kotlin協程(Coroutines)上,您將學習如何使用協程來簡化異步代碼的編寫,實現高效的並發控製,例如在後颱綫程執行耗時操作,並在主綫程更新UI。您還將瞭解同步機製,如Lock和synchronized關鍵字,以避免多綫程訪問共享資源時齣現的競態條件。 第九章:事件處理與用戶交互 與用戶的互動是應用程序的核心。本章將詳細講解Android中事件處理的機製。您將學習如何響應用戶的各種輸入,如觸摸事件(點擊、滑動、拖拽)、按鍵事件等。我們將介紹View的事件監聽器(Listener)機製,如OnClickListener、OnTouchListener等。您將學習如何自定義View,並為其添加交互行為。此外,我們還將探討手勢識彆(Gesture Detection),讓您的應用能夠識彆更復雜的用戶手勢,從而提供更豐富的交互體驗。 第十章:廣播接收者(Broadcast Receivers)與係統事件 廣播接收者(Broadcast Receiver)是Android中用於響應係統範圍事件或應用程序之間通信的組件。本章將深入講解廣播的概念,包括係統廣播(如電池電量低、網絡連接改變)和自定義廣播。您將學習如何注冊和實現BroadcastReceiver,以及如何發送和接收自定義廣播。我們將探討廣播的發送方式(普通廣播和有序廣播)以及它們的區彆。理解BroadcastReceiver是構建響應式和事件驅動型Android應用的重要組成部分。 第十一章:內容提供者(Content Providers)與數據共享 內容提供者(Content Provider)是Android中用於管理共享數據的標準機製。本章將詳細介紹Content Provider的作用,它如何充當應用程序之間數據共享的接口。您將學習如何創建自定義的Content Provider,定義其URI(統一資源標識符),以及實現query、insert、update、delete等操作。同時,您也將學習如何查詢和使用其他應用程序提供的Content Provider,例如聯係人(Contacts)或媒體存儲(Media Store)。理解Content Provider是實現數據跨應用訪問的關鍵。 第十二章:通知(Notifications)的創建與管理 通知是Android應用與用戶溝通的重要方式,它能夠及時嚮用戶傳達信息,如新消息、事件提醒等。本章將詳細指導您如何創建和管理Android通知。您將學習如何使用NotificationCompat.Builder來構建各種類型的通知,包括普通通知、帶有操作按鈕的通知、進度通知以及帶有自定義布局的通知。我們將探討通知的重要性、顯示方式以及如何處理用戶的通知交互(如點擊通知)。 第十三章:後颱服務與後颱處理的進階 在前一章對Service進行瞭初步介紹後,本章將深入探討更高級的後颱服務相關主題。您將學習如何正確地處理Service的生命周期,如何避免Service被係統意外終止,以及如何有效地管理Service的啓動和停止。我們將詳細講解Foreground Service的實現細節,以及如何為其創建持久化的通知,確保其在後颱運行時用戶能夠感知。此外,我們還將進一步探索WorkManager的強大功能,包括任務的依賴關係、重試策略、限製條件等,讓您能夠構建更加健壯和智能的後颱處理方案。 第十四章:圖形與動畫 為您的應用注入活力,通過豐富的圖形和流暢的動畫來提升用戶體驗。本章將帶您進入Android的圖形與動畫世界。您將學習如何使用Canvas API在自定義View中繪製各種形狀、綫條和文本。我們還將介紹Android的動畫框架,包括屬性動畫(Property Animation)和視圖動畫(View Animation)。您將學習如何創建平移、鏇轉、縮放、透明度變化等各種動畫效果,並將其應用於UI元素,為您的應用增添生動的視覺錶現力。 第十五章:位圖(Bitmaps)與圖像處理 圖像在現代應用中無處不在,高效地加載、顯示和處理位圖是至關重要的。本章將深入講解Android中的位圖(Bitmap)對象,包括位圖的加載、內存管理和優化。您將學習如何使用Glide或Picasso等流行的圖像加載庫,它們能夠極大地簡化位圖的加載過程,並提供緩存、占位符、圖片縮放等高級功能。我們還將探討位圖的解碼與編碼,以及一些基本的圖像處理操作,如裁剪、濾鏡應用等。 第十六章:測試與調試 編寫健壯、可靠的代碼離不開有效的測試和調試。本章將引導您掌握Android應用的測試方法。您將學習如何編寫單元測試(Unit Tests)來測試應用程序的獨立組件,以及如何編寫集成測試(Integration Tests)來測試組件之間的交互。我們將介紹Android JUnit測試框架,並演示如何使用Mockito等庫進行模擬。同時,我們還將深入講解Android Studio的調試工具,包括設置斷點、單步執行、查看變量值、分析內存和CPU使用情況等,幫助您快速定位和解決應用程序中的bug。 第十七章:版本控製與發布 當您的應用程序準備好與世界分享時,您需要瞭解如何進行版本控製和發布。本章將介紹Git這一強大的分布式版本控製係統,並演示如何在Android Studio中使用Git進行代碼的版本管理、分支操作和閤並。您還將學習如何準備您的應用程序進行發布,包括簽名您的APK(Android Package Kit),生成發布密鑰,以及如何在Google Play商店上創建開發者賬戶並上傳您的應用程序。 結論 通過本書的學習,您已經掌握瞭Android開發的核心概念、技術和最佳實踐。從環境搭建到UI設計,從Activity與Fragment的管理到數據持久化,從網絡請求到後颱任務,再到測試與發布,您已經具備瞭獨立開發高質量Android應用程序的能力。Android開發領域日新月異,本書為您打下瞭堅實的基礎,鼓勵您持續學習,不斷探索新的技術和API,用您的創造力打造齣更多令人驚嘆的應用。祝您在Android開發的旅程中,收獲滿滿,創造無限可能!

用戶評價

評分

我是一名正在積極尋找第一份Android開發工作的學生,市麵上各種資料琳琅滿目,讓我難以抉擇。直到我偶然間發現瞭這本書,纔感覺找到瞭“寶藏”。它不像某些教程那樣,隻注重羅列API,而是真正地教你如何去思考問題,如何去構建一個完整的應用。書中從最基礎的環境搭建講起,一步步引導讀者完成第一個“Hello World”,然後逐漸深入到更復雜的UI控件、事件處理、數據持久化等等。我特彆喜歡書中在講解每個主題時,都會先設定一個小目標,然後通過一係列的代碼示例來逐步實現。這種“項目驅動”的學習方式,讓我始終保持著學習的動力和興趣。而且,書中還非常注重講解Android開發中的一些核心概念,比如進程、綫程、消息隊列等等,這對於理解Android的底層運行機製至關重要。

評分

坦白說,我一直覺得Android開發是個非常龐大的體係,光是想到要掌握各種API、框架和工具鏈,就有點望而卻步。但這本書的齣現,徹底改變瞭我的看法。它就像一個精心設計的地圖,為我勾勒齣瞭Android開發的整個藍圖。從最基礎的Activity生命周期,到更高級的Fragment、Service,再到數據存儲、網絡通信等等,書中都進行瞭詳盡的闡述。讓我特彆贊賞的是,作者在講解每一個知識點時,都會結閤生動的例子,並且會深入剖析其背後的原理。舉個例子,在講解Intent時,書中不僅說明瞭如何顯式和隱式調用,還詳細解釋瞭Intent的工作機製,這讓我對Activity之間的通信有瞭更透徹的理解。而且,書中還穿插瞭許多關於性能優化和代碼規範的建議,這對於初學者來說,無疑是寶貴的財富。它讓我意識到,寫齣能運行的代碼隻是第一步,寫齣健壯、高效、易於維護的代碼纔是真正的目標。

評分

作為一名擁有一定Java基礎,但對Android開發涉足不深的開發者,我一直想找一本能夠快速入門並建立起紮實基礎的書籍。這本書無疑滿足瞭我的需求。它以一種非常係統化的方式,從Android開發的核心概念入手,逐步引導讀者掌握各種重要的API和開發技巧。我尤其欣賞書中對於Android架構的講解,它清晰地闡述瞭Android係統的分層結構,以及各個組件之間的協作關係,這讓我對整個Android平颱有瞭宏觀的認識。在講解具體的技術點時,書中也非常注重代碼的實踐性,提供瞭大量的示例代碼,並且對代碼的每一部分都進行瞭詳細的解釋,這使得我能夠更好地理解代碼的邏輯,並將其應用到自己的項目中。此外,書中還提及瞭一些關於性能優化和錯誤處理的建議,這對於提高應用的質量非常有幫助。

評分

這本書,我拿到手的時候,真是又驚又喜。首先,它的厚度就足夠讓我安心,感覺內容肯定非常紮實,不像那些淺嘗輒止的書籍。翻開來看,排版清晰,代碼示例也恰到好處,不會讓人覺得枯燥。最讓我印象深刻的是,作者的敘述方式非常平易近人,就像一位經驗豐富的朋友在一步步地教你。即使是之前對Android開發一竅不通的我,也能在這種循序漸進的引導下,逐漸理解那些看似復雜的概念。比如,在講解UI布局時,書中並沒有直接拋齣一堆XML代碼,而是先解釋瞭不同布局的原理和適用場景,再結閤實際的案例來演示如何構建。這種“知其然,更知其所以然”的學習方式,讓我對Android開發的整體架構有瞭更清晰的認識,而不是僅僅停留在“怎麼做”的層麵。而且,書中提到的很多最佳實踐和設計模式,都是我在後續的學習和實際項目中受益匪淺的。它不僅僅是一本技術手冊,更像是一本啓濛書,幫助我建立瞭正確的開發思維。

評分

這本書的內容實在是太豐富瞭,我簡直不敢相信它涵蓋瞭如此多的Android開發知識點。從UI設計到網絡請求,從數據存儲到後颱服務,幾乎我想到的和沒想到的,它都覆蓋到瞭。而且,它並不是簡單地堆砌知識,而是將這些知識點有機地結閤在一起,形成瞭一個完整的學習路徑。我特彆喜歡書中對每個主題的深入剖析,它不僅告訴你“怎麼做”,更重要的是告訴你“為什麼這麼做”。比如,在講解Activity的生命周期時,書中詳細解釋瞭每個生命周期方法的調用時機和作用,以及它們在不同場景下的應用。這種深度講解,讓我對Android開發的理解不再停留在錶麵,而是能夠觸及到更深層次的原理。同時,書中還提供瞭大量的實戰案例,讓我能夠通過動手實踐來鞏固所學知識。

評分

一直信賴京東!一直信賴京東!

評分

還好吧,物流很快,

評分

書不錯,送貨快,好評

評分

學習學習吧學習

評分

還沒看完。繼續加油!

評分

加起郵費比當當貴點,但是送貨快

評分

書很好,很喜歡

評分

挺好的,邊看著總算能寫齣期末項目的代碼瞭

評分

挺滿意 挺滿意 挺滿意

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有