Android Studio實戰 快速、高效地構建Android應用( 簡體 字) | |
作者:[美] Adam Gerber,Clifton Craig 著 | 類別:1. -> 程式設計 -> 手機程式 -> Android |
譯者:靳曉輝,張文書 譯 | |
出版社:清華大學出版社 | 3dWoo書號: 44714 詢問書籍請說出此書號! 有庫存 NT售價: 300 元 |
出版日:7/1/2016 | |
頁數:378 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787302441533 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第1章AndroidStudio入門 1
1.1在Windows上安裝Java開發 工具包 1 1.1.1在Windows上下載JDK 2 1.1.2在Windows上執行JDK向導 3 1.1.3配置Windows環境變量 4 1.2在Mac上安裝Java開發工具包 7 1.2.1在Mac上下載JDK 7 1.2.2在Mac上執行JDK向導 8 1.2.3在Mac上配置JDK版本 9 1.3安裝AndroidStudio 10 1.4創建第一個項目:HelloWorld 12 1.5使用Android虛擬設備管理器 15 1.6在AVD上運行HelloWorld 16 1.7在Andriod設備上運行HelloWorld 17 1.8小結 19 第2章在AndroidStudio中遨游 21 2.1編輯器 22 2.1.1Editor選項卡 22 2.1.2折疊線 23 2.1.3標記欄 23 2.1.4工具按鈕 23 2.1.5默認布局 24 2.2導航工具窗口 24 2.2.1Project工具窗口 25 2.2.2Stucture工具窗口 26 2.2.3Favorites工具窗口 26 2.2.4TODO工具窗口 27 2.2.5Commander工具窗口 27 2.3主菜單欄 27 2.4工具欄 28 2.5導航欄 28 2.6狀態欄 28 2.7常用操作 29 2.7.1選擇文本 29 2.7.2使用Undo和Redo 29 2.7.3找到最近的文件 30 2.7.4遍歷最近的導航操作 30 2.7.5剪切、復制和粘貼 30 2.8上下文菜單 31 2.9獲取幫助 32 2.10使用鍵盤導航 32 2.10.1SelectIn命令 32 2.10.2Class命令 33 2.10.3File命令 33 2.10.4Line命令 33 2.10.5RelatedFile命令 33 2.10.6LastEditLocation命令 33 2.10.7TypeHierarchy命令 34 2.10.8Declaration命令 34 2.11查找和替換文本 34 2.11.1Find命令 34 2.11.2FindinPath命令 34 2.11.3Replace命令 35 2.11.4ReplaceinPath命令 35 2.12小結 35 第3章在AndroidStudio中編程 37 3.1使用代碼折疊 37 3.2執行代碼補全 39 3.3注釋代碼 42 3.4使用代碼生成 42 3.4.1構造函數 43 3.4.2getter/setter 44 3.4.3重載方法 44 3.4.4toString()方法 45 3.4.5代理方法 46 3.5插入動態模板 47 3.6移動代碼 48 3.7設計代碼風格 50 3.7.1Auto-IndentLines選項 51 3.7.2RearrangeCode選項 51 3.7.3ReformatCode選項 52 3.7.4SurroundWith 52 3.8小結 53 第4章重構代碼 55 4.1重命名 56 4.2修改簽名 57 4.3類型遷移 58 4.4移動 58 4.5復制 59 4.6安全刪除 60 4.7抽取 60 4.7.1抽取變量 61 4.7.2抽取常量 61 4.7.3抽取字段 62 4.7.4抽取參數 62 4.7.5抽取方法 63 4.8高級重構 65 4.8.1下推成員和上拉成員 65 4.8.2使用代理代替繼承 66 4.8.3封裝字段 67 4.8.4封裝方法返回值 68 4.8.5使用工廠方法代替構造函數 69 4.8.6將匿名類轉換為內部類 69 4.9小結 70 第5章備忘錄實驗:第1部分 71 5.1啟動新項目 73 5.2初始化Git倉庫 74 5.3構建用戶界面 77 5.3.1使用可視化設計器 78 5.3.2編輯布局的原始XML 78 5.3.3添加視覺增強效果 83 5.3.4向ListView添加條目 84 5.3.5設置操作欄溢出菜單 86 5.4持久化備忘錄 87 5.4.1數據模型 87 5.4.2SQLiteAPI 89 5.5小結 95 第6章備忘錄實驗:第2部分 97 6.1添加/刪除備忘 97 6.2響應用戶交互 100 6.3提供多選上下文菜單 102 6.3.1兼容較早的SDK 104 6.3.2添加上下文操作模式 105 6.4實現添加、編輯和刪除 107 6.4.1設計自定義對話框 108 6.4.2將設計轉換為代碼 108 6.4.3創建自定義對話框 110 6.4.4添加自定義圖標 113 6.5小結 115 第7章Git入門 117 7.1安裝Git 117 7.2忽略文件 119 7.3添加文件 120 7.4克隆參考App:Reminders 121 7.4.1分叉和克隆 121 7.4.2使用Git日志 124 7.4.3分支 125 7.5在分支上開發 125 7.5.1Git提交和分支 131 7.5.2回退在哪里? 132 7.5.3合并 136 7.5.4Git重置修改歷史 138 7.5.5Git變基 142 7.5.6分離頭部 144 7.5.7相對引用 146 7.5.8在變基時解決沖突 148 7.5.9Git遠端 153 7.6小結 154 第8章設計布局 155 8.1Activity 155 8.2View和ViewGroup 156 8.2.1預覽面板 157 8.2.2寬度和高度 159 8.2.3設計器模式 161 8.2.4幀布局 161 8.2.5線性布局 164 8.2.6相對布局 166 8.2.7嵌套布局 169 8.2.8列表視圖 173 8.3布局設計指導原則 180 8.3.1覆蓋各種顯示尺寸 180 8.3.2組合在一起 183 8.4Fragment 190 8.5小結 200 第9章貨幣實驗:第1部分 201 9.1Currencies規范 201 9.2初始化Git倉庫 205 9.3修改MainActivity的布局 207 9.4定義顏色 211 9.5為布局應用顏色 212 9.6創建并應用樣式 213 9.7創建JSONParser類 216 9.8創建啟動界面 217 9.9獲取JSON格式的活動貨幣代碼 220 9.10啟動MainActivity 223 9.11小結 224 第10章貨幣實驗:第2部分 225 10.1定義MainActivity的成員 225 10.2從bundle中解壓出貨幣代碼 226 10.3創建選項菜單 227 10.4實現選項菜單行為 229 10.5創建spinner_closed布局 230 10.6將mCurrencies綁定到選擇列表 231 10.7將選擇列表行為代理給MainActivity 232 10.8創建偏好管理器 234 10.9根據給定代碼查找位置 235 10.10從貨幣字符串中抽取代碼 236 10.11實現共同偏好 237 10.12按鈕單擊行為 239 10.13保存開發者密鑰 240 10.14獲取開發者密鑰 241 10.15CurrencyConverterTask 242 10.15.1onPreExecute() 246 10.15.2doInBackground() 246 10.15.3onPostExecute() 246 10.16按鈕選擇器 247 10.17啟動圖標 248 10.18小結 249 第11章測試和分析 251 11.1創建新的儀器測試 251 11.1.1定義SetUp()和TearDown()方法 252 11.1.2在MainActivity中定義回調 254 11.1.3定義一些測試方法 255 11.1.4運行儀器測試 257 11.1.5修改Bug 258 11.2使用Monkey 259 11.3使用分析工具 260 11.3.1檢查代碼 260 11.3.2分析依賴 261 11.3.3分析棧軌跡 262 11.4小結 264 第12章調試 265 12.1日志 265 12.1.1使用logcat 266 12.1.2寫入Android日志 268 12.2捕捉Bug! 268 12.2.1使用交互式調試器 272 12.2.2表達式求值 275 12.2.3使用棧軌跡 277 12.2.4探索交互式調試的工具窗口 280 12.2.5使用斷點瀏覽器 281 12.2.6條件斷點 283 12.3小結 285 第13章Gradle 287 13.1Gradle語法 288 13.2IntelliJ核心構建系統 289 13.3Gradle構建概念 290 13.3.1GradleAndroid結構 290 13.3.2項目依賴 291 13.4案例研究:使用Gradle的天氣預報項目 292 13.5Android庫依賴 299 13.5.1Java庫依賴 303 13.5.2第三方庫 311 13.6打開較舊的項目 313 13.7小結 314 第14章更多SDK工具 315 14.1Android設備監視器 315 14.1.1線程監視器 316 14.1.2堆監視器 317 14.1.3分配跟蹤器 318 14.1.4網絡統計 319 14.1.5層次查看器 320 14.2Android監視器 323 14.2.1內存監視器 323 14.2.2方法跟蹤工具 324 14.2.3分配跟蹤器 325 14.2.4屏幕抓取 325 14.3導航編輯器 327 14.3.1設計用戶界面 328 14.3.2導航編輯器初步 328 14.3.3連接Activity 330 14.3.4編輯菜單 331 14.4終端 333 14.4.1查詢設備 333 14.4.2安裝APK 333 14.4.3下載文件 333 14.4.4上傳文件 333 14.4.5端口轉發 334 14.5Google云工具 334 14.5.1創建HelloCloud前端 335 14.5.2創建Java后臺模塊 337 14.5.3組合在一起 339 14.5.4部署到AppEngine 343 14.6小結 346 第15章Android可穿戴設備實驗 347 15.1設置可穿戴設備環境 347 15.1.1安裝設備驅動程序 347 15.1.2設置SDK工具 350 15.1.3設置可穿戴虛擬設備 350 15.1.4設置Android可穿戴設備硬件 353 15.2創建MegaDroid項目 353 15.2.1針對屏幕的優化技術 355 15.2.2構建watch-face服務 356 15.2.3初始化可繪制資源和樣式 358 15.2.4管理手表更新 359 15.2.5繪制界面 363 15.3小結 367 第16章定制AndroidStudio 369 16.1代碼風格 370 16.2外觀、顏色和字體 372 16.3鍵盤映射 374 16.4宏 375 16.5文件和代碼模板 375 16.6菜單和工具欄 377 16.7插件 378 16.8小結 380 《Android Studio實戰 快速、高效地構建Android應用 全面涵蓋關于Android Studio及其龐大工具生態系統的內容,包括Git和Gradle:除了介紹Android Studio與Git(用于源代碼管理)和Gradle(一款構建及測試工具)的無縫工作方式外,還演示了如何使用諸如GitHub和Bitbucket的遠程Git Web服務進行開發/協作。本書配有4個完整的Android項目,它們均可從公共的Git倉庫下載。
通過學習本書,讀者將能夠掌握Android工具生態系統中最新、最實用的工具,以及Android App開發中的最佳實踐。可以將實驗代碼作為模板或框架并在自己的類似App中重用和定制。 Android Studio是一款簡單直觀、功能豐富且極具包容性的集成開發環境,在開發Android App方面比Eclipse更加高效易用。有了這本書,你將快速掌握Android Studio并最大化Android開發時間。遠程Web服務上的源代碼均面向最新的Android Studio發行版——1.2版。 主要內容 ● 如何開始使用Android Studio IDE ● 如何導航及使用Android Studio ● 如何使用Git進行版本控制 ● 如何使用Gradle ● 如何使用嶄新的Android Wear框架 ● 如何使用Android Studio調試代碼 ● 如何管理應用項目 ● 如何測試應用 ● 如何分析并重構代碼 ● 如何定制Android Studio 大約5.3億年前,在那個地質學家稱之為“寒武紀大爆發”的時代,包括現存所有門在內的大量物種在短短100萬年的時間迅速出現——而這對于地質學時間來說僅僅是一眨眼工夫。科學家們對于此現象一直感到非常驚訝,達爾文自己都認為“寒武紀大爆發”發生如此之快,甚至讓他的自然進化論產生了疑點。今天,我們正在經歷著科技領域的“寒武紀大爆發”。美國勞工統計局預測現在的高中畢業生在其一生中將從事11份工作,而這種職業生涯短暫現象主要歸因于科技的快速變化1。
技術會衍生出更多的技術,而新的技術也正在加速發展。有些新技術幾年之后依然會存在,但大多數將會消失。沒有比投入時間和精力去掌握一門已經過時或者效用短暫的新技能更糟糕的事情了。我們編寫本書是因為相信其中涵蓋的工具和技術將會留存下來,而且值得你為之投入。 小即是美 摩爾定律是無情的,它指出CPU的處理能力大約每18個月會翻一倍。在過去幾年里,筆記本電腦已經達到了與體積更大的桌面電腦相同的性能。筆記本電腦和平板電腦占據了2014年PC銷售額的81%2,而且銷量還會繼續增長,相反桌面電腦的銷量將會下滑。沒有哪個人或組織能夠阻止或逆轉這種趨勢——這是經濟規律的力量,是個體選擇集聚的結果。筆記本電腦在未來大約10年將會是腦力工作者的首選工具。然而,一場悄無聲息的革命正在發生,它將會很快推翻全能的筆記本電腦。大約到2025年,或者可能更早,我們的智能手機將會達到與筆記本電腦相同的性能——也就是說,更大體積的外形已經不再具備任何性能優勢了。最終,我們的移動電腦(Mobile Computer,MC)將用于大多數計算應用,即使是那些你我現在認為只能在筆記本電腦上完成的應用。這場變革是可預見的,與推翻桌面電腦的變革一樣確定。同時,你可以期望MC(換句話說,智能手機或平板電腦)開始發揮出和筆記本電腦一樣的功能,包括連接諸如鍵盤、顯示器和鼠標等外圍設備。 PC時代即將結束,但MC時代其實更具個性化。不久,一系列新型可穿戴設計即將可用,例如手表、眼鏡和鞋子。我們預見在不久后的某一天,我們將會在身上穿著自己的電腦,并在顯示器、鍵盤和鼠標這些外圍設備可用的地方連接它們。這將會是一個真正的個人電腦時代,盡管我們不大可能再這樣稱呼它了。 Android的優勢 如果渴望成為一名Android開發者,那么你已經做出了極好的選擇。在未來的10年里,這個不斷發展的世界上的數十億人都會來到線上。對于這些人中的大多數,他們的第一部電腦將會是智能手機,而這些智能手機中的大部分將會搭載Android系統3。我們的樂觀是有充分原因的,因為已經有了大量可供推算的歷史數據。Gartner Group公司指出2015年將售出12.5億部Android設備4。在撰寫本書時,Android獨占了超過四分之三的中國市場份額5,而中國消費者在移動設備上的投入是驚人的,一些人會在新款移動設備上花費70%的月薪,因為互聯是參與全球經濟的先決條件6。在絕對數量上,中國是最大的市場,但我們能夠在所有發展中國家觀察到類似的趨勢。更進一步,由于Android操作系統是開源免費的,因此它幾乎總是電視游戲機、游戲系統、增強現實系統以及大量其他電子設備廠商的首選。 出于多種原因,Android將繼續鞏固其在全球市場的主導地位。Android的模塊化架構允許進行各種各樣的配置和定制。Android設備標配的所有核心應用均可以被任意數量的第三方應用替代,這包括類似電話撥號器、電子郵件客戶端、瀏覽器甚至操作系統導航器等應用。可用的Android設備有著各種各樣令人驚訝的形狀和功能,有Android增強現實眼鏡、Android游戲機(Ouya是最著名的)、Android手表、各種尺寸的Android平板電腦,當然還有Android智能手機。 Android的核心技術毫不遜色于它的主要競爭者。Android的包容性和開源許可證已經吸引了大量盟友,包括三星——全球最具創新性的公司之一。免費7和可定制的操作系統意味著Android設備廠商可以專注于向市場上推出優秀的產品,而高度競爭的Android設備市場也會持續生產出廉價、高質量且結構上開放的設備。 Android Studio是革命性的 作為一名腦力勞動者,工具的選擇極其重要。我們總是在尋求可以提高生產效率并能自動完成工作的工具。某些工具有著顯而易見的好處,人們會立刻采納它。Android Studio就是一款這樣的工具。 2013年在Google I/O預發布Android Studio幾天之后,我們就接觸了它。在那以前,我們在專業領域和教學時均使用Android開發者工具(Android Developer Tool,ADT)。ADT是一個Android開發環境,內置于一個稱為Eclipse的開源集成開發環境(IDE)中。雖然Android Studio仍處于早期預發布階段,但我們已開始在專業領域內使用Android Studio。 Android Studio是JetBrains和Google合作的產物。Android Studio基于JetBrain的IntelliJ構建,因此其功能是IntelliJ的超集。能夠使用IntelliJ做到的大多數事情,都可以在Android Studio中完成。Android Studio是革命性的,因為它流程化了Android開發過程并讓Android開發比以前更加容易接近8。Android Studio目前是Android的官方IDE。 Android工具生態系統 Android是一個有著自身工具生態系統支持的技術平臺。緊隨Android Studio之后,Git是Android生態系統中下一個最重要的工具。Git是一款分布式的源代碼管理工具,它正在迅速成為標準,不僅是在移動開發領域,而是在整個軟件工程領域。我們所有的移動開發項目均使用Git來做版本控制,沒有例外。Git足可以用一本書來介紹,但幸運的是,你無須了解Git的所有功能就可以熟練地使用它。Android Studio包含優秀的、全功能的且已集成的Git工具,它有著令人印象深刻的圖形用戶界面。本書涵蓋了成為高效Git用戶所需要了解的特性,如果想要深入掌握關于這個不可或缺工具的知識,我們為你指出了進一步學習所需的資源。 Android生態系統中的另一個重要工具是Gradle。Gradle是一款類似于Ant和Maven的構建工具,它允許你管理庫和庫項目、運行儀器測試以及創建條件構建。Android Studio在庫管理方面本身已經很不錯了,但Gradle使得此項任務更加便捷。與Git一樣,Gradle已經完全集成到Android Studio,而且擁有令人印象深刻的界面,使得用戶能夠圖形化地檢查Gradle文件并監測Gradle構建過程的輸出。 Android和Java 如果在沒有充分了解Java的情況下嘗試在Android Studio中開發Android App,那么你將會遭遇挫折。出于諸多原因,Java是一門極其有用且流行的編程語言。或許Java流行的最重要原因是其內存托管機制。內存托管意味著程序員不必考慮釋放堆內存,也不必擔心內存泄漏。在內存托管環境中進行開發的程序員通常更高效,而且程序的運行時錯誤會更少。和Java類似,Android也是一種內存托管的編程環境。托管內存被證明是一個非常好的思路,使得微軟和蘋果公司均在各自的移動開發平臺中采用了此模型9。 從ADT/Eclipse轉型 如果你是一位有經驗的Android開發者而且習慣使用ADT編程,那么你會收獲驚喜。幸運的是,所有SDK工具(例如DDMS和Hierarchy Viewer)都依然可用,你將發現在Android Studio中很容易就可以訪問到它們。如果你是一位ADT用戶,那么你可能需要不斷地清理并重新構建項目,以便資源能夠與源代碼同步(可怕的R.java同步錯誤)。在使用Android Studio的這些日子里,我們一直沒有被這個問題困擾過。如果你是一位有經驗的ADT用戶,那么為了提升使用Android Studio的效率,你將需要學習一些鍵盤快捷鍵、熟悉Gradle以及適應Android Studio的表現邏輯。總而言之,享受Android Studio帶來的強大功能和樂趣只需付出很小的代價。 本書約定 Android Studio在操作系統之間保持了高度的一致性。事實上,Windows和Linux中的用戶界面幾乎就是一樣的。不過,Mac OS用戶將會發現部分菜單的位置和鍵盤快捷鍵是不同的。當涉及需要系統導航的內容時,我們使用Windows。不過,當給出鍵盤快捷鍵時,我們將同時包含Windows-Linux和Mac快捷鍵,中間使用豎線分隔(例如,Ctrl+K | Cmd+K)。我們會適時為Mac用戶給出提示、鏈接和其他資源。 |