前言
人總是在不斷地探索和嘗試,總是發明出一些新的科技來改善我們的生活。為了風雨無阻,人類發明了汽車,為了自由翱翔,人類發明了飛機。人們總是朝著更快、更高、更遠的目標奮進。科技的進步讓我們的工作變得更加高效,於是我們有了更多的時間來思考,思考如何使用技術讓這個世界變得更加美好。
現如今,移動網際網路正值浪潮之顛,物聯網、大數據、雲計算、虛擬現實(VR)、增強現實(AR)等,新技術不斷湧現又將會帶來新一輪的裂變,而你我有幸處在這樣一個充滿機遇和創意的時代。作為程式設計師的我們,作為移動網際網路產品的開發者,應該要有更多的時間學習和思考,需要把更多的時間和精力放在產品的設計和創新上。那些簡單的、重複的、有規律的、易出錯的編碼和測試工作,都應該由工具來幫我們完成。
圖書簡介
本書以通俗易懂的語言全面系統地介紹了AndroidStudio實用工具和操作技巧,場景明確,步驟清晰,圖文結合。全書共16章。第1章對AndroidStudio做概要的介紹,從特性、界面、工具、功能到環境搭建和常用的偏好設定,讓讀者對AndroidStudio有一個全面的認識。第2章介紹了項目、檔案和資源的創建。第3章主要介紹可視化布局編輯器的使用,讓讀者學會如何快速創建布局檔案。第4章介紹項目、檔案、IDE和代碼的管理技巧。第5~7章對代碼編輯、視圖、導航操作技巧進行了全面的介紹。第8章介紹了代碼生成、活動模板、自動補全、代碼格式化。第9章介紹了代碼檢查工具的使用。第10章介紹了如何快速重構。第11章介紹了如何使用Gradle進行配置、編譯和構建應用程式。第12章主要介紹了如何配置、運行和調試應用程式。第13章介紹了集成進AndroidStudio的各種實用工具的使用。第14章以Git為例介紹了版本控制系統的使用。第15章介紹了視窗和標籤的管理。第16章讀者將學會如何配置一個個性化、高效、符合自己開發習慣的IDE。
本書並不是一本循序漸進的學習書籍,而更像是一本Cookbook,讀者需要有目的地去閱讀。當遇到問題或者想了解某個工具如何使用時,可直接定位到相關的章節進行閱讀。
本書適用於Android開發、測試以及想學習Android開發的相關從業人員,適合放在床頭案邊時常翻閱。
目錄
第1章初識AndroidStudio1
1.1什麼是AndroidStudio1
1.1.1AndroidStudio簡介1
1.1.2系統要求2
1.1.3下載地址2
1.1.4為什麼要用AndroidStudio2
1.2AndroidStudio的特點3
1.3macOS環境配置7
1.3.1配置JDK7
1.3.2下載AndroidStudio8
1.3.3配置Android的環境變數8
1.4Windows環境配置9
1.4.1配置JDK9
1.4.2配置AndroidStudio10
1.4.3配置Android的環境變數11
1.5Linux環境配置12
1.5.1配置JDK12
1.5.2配置AndroidStudio12
1.5.3配置Android的環境變數13
1.6認識歡迎界面13
1.6.1最近打開的項目14
1.6.2開始一個項目14
1.7認識配置界面15
1.8幫助和教程19
1.9更新AndroidStudio版本22
1.10配置AndroidStudio更新通道23
1.10.1在偏好設定中配置更新通道23
1.10.2在檢測結果對話框中配置更新通道23
1.10.3單獨下載最近更新的版本23
1.10.4四種版本的區別24
1.11在AndroidStudio中使用代理25
1.12認識偏好設定26
1.12.1基礎配置27
1.12.2個性化配置28
1.13認識工作檯30
1.14認識工具視窗33
第2章項目與模組37
2.1AndroidStudio的項目結構37
2.1.1項目和模組37
2.1.2基本的項目結構38
2.2導入項目和模組40
2.2.1導入AndroidStudio項目40
2.2.2導入Eclipse項目40
2.2.3導入Android示例代碼44
2.2.4導入模組44
2.2.5導入.JAR/.AAR46
2.2.6從VCS檢出項目47
2.3創建項目和模組49
2.3.1創建項目49
2.3.2創建應用程式模組53
2.3.3創建Android公共庫模組55
2.4刪除模組57
2.5添加so檔案58
2.6創建類和檔案59
2.7創建Activity61
2.7.1Activity模板列表61
2.7.2ActivityGallery61
2.7.3新建一個Activity62
2.8創建Fragment檔案64
2.9創建Service檔案65
2.9.1創建Service檔案66
2.9.2創建IntentService檔案66
2.10創建自定義組件67
2.11創建AppWidget69
2.12創建可編譯的資源檔案70
2.12.1可編譯的資源檔案70
2.12.2創建可編譯的資源檔案72
2.12.3資源限定符74
2.13創建不同解析度的圖示77
2.13.1啟動圖示78
2.13.2活動欄和選項卡圖示79
2.13.3通知圖示80
2.14創建矢量圖81
2.14.1使用定義好的素材圖示81
2.14.2使用本地的SVG檔案81
2.15創建AIDL檔案82
2.16創建Android資料夾83
2.17創建ResourceBundle檔案84
第3章布局86
3.1認識布局86
3.1.1Android中定義布局的方法86
3.1.2快速開始87
3.2設計布局88
3.2.1文本編輯器88
3.2.2可視化布局編輯器89
3.3組件列表90
3.4預覽94
3.4.1設定控制項屬性94
3.4.2警告和錯誤提示94
3.4.3界面縮放96
3.4.4控制項操作96
3.5結構樹96
3.5.1快速轉換布局屬性97
3.5.2選擇控制項97
3.5.3跳到源碼97
3.6屬性97
3.7工具列99
第4章管理103
4.1項目視窗103
4.1.1視圖模式103
4.1.2常用設定和操作105
4.2項目管理110
4.2.1打開和關閉項目110
4.2.2管理最近打開的項目111
4.3檔案管理112
4.3.1檔案同步112
4.3.2導出到HTML112
4.3.3切換檔案編碼方式113
4.3.4切換行分隔設定113
4.3.5使檔案唯讀114
4.3.6使用省電模式114
4.3.7打開檔案/資料夾所在磁碟目錄114
4.4AndroidStudio管理115
4.4.1隱藏/顯示/退出AndroidStudio115
4.4.2清除快取/重啟AndroidStudio116
4.5收藏夾116
4.5.1添加到收藏夾116
4.5.2管理收藏夾118
4.6TODO119
4.6.1添加TODO任務119
4.6.2查看TODO任務120
4.6.3TODO工具視窗常用操作120
4.6.4設定TODO122
4.6.5使用TODO分配代碼Review任務123
第5章編輯126
5.1撤消/重做/剪下/複製/貼上126
5.2複製技巧127
5.2.1複製為純文本127
5.2.2複製引用127
5.2.3從複製歷史中選擇貼上127
5.2.4設定貼上歷史記錄的個數128
5.2.5複製行128
5.3合併兩行內容129
5.4選擇技巧129
5.4.1擴大選擇範圍129
5.4.2縮小選擇範圍130
5.4.3使用列選擇模式130
5.5縮進設定131
5.6自動補全當前的語句131
5.7一鍵切換大小寫字母132
5.8查找工具列132
5.8.1打開查找工具列132
5.8.2快速查找133
5.8.3查找範圍設定133
5.9在查找結果中跳轉134
5.10選擇查找結果134
5.11指定查找路徑135
5.12替換136
5.13指定替換路徑137
5.14在結構中查找和替換139
5.15查找用法141
5.16設定查找用法的過程和範圍141
5.17顯示用法144
5.18查看在當前檔案中的用法144
5.19在檔案中高亮顯示字元145
5.20最近查找145
5.21Macros(宏)146
第6章視圖148
6.1工具視窗148
6.1.1顯示/隱藏工具視窗148
6.1.2快速切換工具視窗149
6.2工作檯管理150
6.3查看定義151
6.4查看同胞元素152
6.5查看文檔152
6.6查看方法的參數信息154
6.7查看錶達式的類型155
6.8查看上下文信息155
6.9查看源碼156
6.10查看最近打開過的檔案156
6.11查看最近改動過的檔案156
6.12查看最近的改動156
6.13對比任意檔案158
6.14將選中的檔案和正在編輯的檔案進行對比160
6.15將選中的檔案和剪下板上的內容進行對比160
6.16切換編輯器配色方案161
6.16.1快速切換編輯器配色方案161
6.16.2切換編輯器配色方案161
6.17切換代碼風格161
6.18切換鍵盤映射162
6.19快速切換視圖模式163
6.20快速切換主題164
6.21設定編輯器是否顯示空格164
6.22設定編輯器是否顯示行號165
6.23設定編輯器是否顯示縮進嚮導166
6.24設定編輯器是否使用自動換行167
6.25設定編輯器是否彈出導入提示168
6.26使用演示模式169
6.27使用免打擾模式170
6.28使用全螢幕模式171
第7章導航172
7.1搜尋並打開類檔案172
7.2搜尋並打開某個檔案173
7.3搜尋並打開某個檔案或方法174
7.4使用自定義代碼塊174
7.5快速跳轉到某一行代碼176
7.6快速跳轉到游標的歷史位置177
7.7快速跳轉到編輯過的歷史位置178
7.8標記書籤178
7.9使用助記符標記書籤179
7.10管理書籤179
7.10.1在書籤管理界面管理書籤180
7.10.2在收藏夾中管理書籤181
7.11快速跳轉到導航欄181
7.12快速跳轉到聲明181
7.13快速跳轉到實現182
7.14快速跳轉到類型聲明182
7.15快速跳轉到父類183
7.16類和測試類之間快速跳轉184
7.17查看相關聯的檔案186
7.18查看檔案結構187
7.19查看類的層次結構圖188
7.20查看方法類型的層次結構189
7.21查看方法調用層次結構190
7.22快速跳轉到錯誤代碼的位置190
7.23在方法間前後跳轉191
7.24使用翻頁功能191
7.25選擇當前檔案在哪裡顯示192
7.26游標快速跳轉到編輯器192
7.27游標快速跳轉到頁首/頁尾193
第8章編碼194
8.1覆寫或實現方法194
8.2實現接口方法196
8.3實現代理方法196
8.4生成構造函式199
8.5生成Getter和Setter方法200
8.6覆寫equals和hashcode方法200
8.7覆寫toString方法201
8.8插入版權資訊203
8.8.1插入版權資訊203
8.8.2配置版權資訊204
8.8.3共享版權資訊配置207
8.9提取或刪除代碼208
8.10自動補全提示209
8.11代碼補全210
8.12補全循環擴展詞212
8.13展開或摺疊代碼213
8.13.1展開或摺疊當前代碼塊213
8.13.2展開或摺疊當前代碼塊中的所有子模組213
8.13.3展開和摺疊全部代碼塊214
8.13.4展開和摺疊當前檔案中的所有注釋214
8.13.5指定展開層級214
8.13.6展開和摺疊選中區域215
8.13.7摺疊代碼片段215
8.14插入代碼模板215
8.14.1類中常用的縮寫215
8.14.2方法中常用的縮寫216
8.15使用代碼模板包裹代碼218
8.16查看和編輯代碼模板219
8.17使用常用代碼模板包裹代碼220
8.18注釋代碼222
8.19格式化代碼222
8.20自動縮進行224
8.21最佳化導入224
8.22重新排列代碼225
8.23移動一段代碼225
8.24移動一行代碼226
8.25操作意圖提示227
8.26正則表達式操作意圖提示228
第9章檢查229
9.1代碼檢查工具229
9.2全面了解Lint230
9.2.1Lint是什麼230
9.2.2為什麼要用Lint230
9.2.3Lint會檢查哪些錯誤230
9.2.4Lint工作流程231
9.2.5報告中的Issue和Category232
9.2.6Lint使用場景232
9.2.7如何配置Lint檢查233
9.2.8Lint命令行用法介紹233
9.2.9Lint命令行用法舉例235
9.3執行一次代碼檢查237
9.4指定檢查範圍239
9.4.1先執行檢查再指定範圍239
9.4.2選定範圍再執行檢查239
9.5代碼檢查結果及輔助工具240
9.6詳解代碼檢查結果輔助工具242
9.6.1重新執行代碼檢查242
9.6.2全部展開或摺疊檢查結果242
9.6.3在檢查結果中快速上下跳轉243
9.6.4自動定位到問題的源碼243
9.6.5導出代碼檢查結果243
9.6.6按嚴重程度分組排查問題244
9.6.7按目錄分組排查問題244
9.6.8過濾已解決的問題244
9.6.9高亮顯示不同和僅顯示不同244
9.6.10快速設定245
9.6.11快速解決問題245
9.6.12對檢查出的問題進行操作246
9.7禁用和啟用某項檢查247
9.7.1在檢查結果中禁用和啟用某項檢查247
9.7.2在偏好設定中禁用和啟用某項檢查248
9.8忽略檢查249
9.9在指定範圍內執行某項檢查252
9.10解決檢查出的問題252
9.11管理代碼檢查配置檔案253
9.12配置代碼檢查規則255
9.13Android類目的所有檢查項259
9.14AndroidLint類目的檢查項260
9.15在lint.xml檔案中配置Lint檢查264
9.16在Gradle中配置Lint檢查264
9.17使用Gradle執行Lint檢查267
9.17.1命令行執行Lint檢查267
9.17.2Gradle工具視窗執行Lint檢查267
9.18在Java和XML源碼中配置Lint檢查267
9.18.1在Java源碼中配置Lint檢查267
9.18.2在XML源碼中配置Lint檢查268
9.19代碼清理269
9.20通過名字來指定代碼檢查項271
9.21配置當前檔案自動檢查的規則272
9.22導入並查看離線檢查結果274
9.23自動添加是否可為空註解275
9.24分析依賴276
9.25分析反向依賴277
9.26分析模組依賴278
9.27分析循環依賴279
9.28分析數據流279
9.29分析堆疊信息280
第10章重構282
10.1重命名282
10.1.1重命名類282
10.1.2重命名變數283
10.1.3重命名檔案283
10.2更改方法簽名284
10.3遷移變數類型284
10.4轉成靜態方法286
10.5靜態方法轉為實例方法287
10.6移動類288
10.7移動靜態方法289
10.8移動靜態欄位290
10.9複製291
10.10安全刪除291
10.11提取變數294
10.12提取常量295
10.13提取欄位296
10.14提取參數298
10.15提取函式式參數300
10.16提取參數對象301
10.17提取方法303
10.18提取方法對象304
10.19提取委託304
10.20提取接口306
10.21提取父類307
10.22內聯方法309
10.23內聯臨時變數310
10.24查找並替換重複代碼311
10.25反轉布爾值312
10.26把成員拉到父類313
10.27把成員推到子類314
10.28儘可能使用接口316
10.29使用委託替換繼承318
10.30移除中間人321
10.31包裝方法返回值323
10.32將匿名類轉成內部類325
10.33封裝欄位326
10.34使用查詢替換臨時變數327
10.35使用工廠方法替換構造方法329
10.36使用構建器替換構造方法330
10.37泛型化332
10.38國際化333
第11章構建335
11.1認識Gradle335
11.1.1Gradle是什麼335
11.1.2Gradle中依賴的倉庫336
11.2配置Gradle環境338
11.3GradleWrapper339
11.4查看和執行Gradle任務340
11.4.1查看當前項目支持的Gradle任務340
11.4.2執行Gradle任務342
11.4.3常用Gradle任務342
11.4.4Gradle工具視窗343
11.5構建項目和模組345
11.5.1編譯項目345
11.5.2編譯模組346
11.5.3設定自動編譯項目347
11.5.4重新構建項目347
11.5.5MakeProject與RebuildProject的區別348
11.5.6清理項目348
11.6GradleScript348
11.6.1Gradlew配置檔案gradle-wrapper.properties349
11.6.2項目全局配置檔案settings.gradle350
11.6.3本地屬性配置檔案local.properties350
11.6.4Gradle配置檔案gradle.properties351
11.6.5代碼混淆規則配置檔案proguard-rules.pro351
11.6.6項目構建配置檔案build.gradle354
11.6.7模組構建配置檔案build.gradle355
11.7在項目結構中配置模組構建357
11.7.1配置應用程式屬性357
11.7.2配置應用程式簽名358
11.7.3配置應用程式特性359
11.7.4配置應用程式構建類型361
11.7.5配置應用程式依賴364
11.8簽名和打包365
11.8.1創建簽名證書365
11.8.2生成簽名的APK366
11.8.3自動打包和簽名370
11.8.4混淆打包371
11.8.5多渠道打包372
11.9配置開發者服務377
第12章運行和調試378
12.1運行和調試配置378
12.1.1運行和調試配置378
12.1.2Android應用程式配置379
12.2運行應用程式383
12.3調試應用程式384
12.4斷點388
12.4.1行斷點388
12.4.2方法斷點388
12.4.3欄位觀察點389
12.4.4條件斷點390
12.4.5臨時斷點390
12.4.6異常斷點391
12.4.7日誌斷點391
12.4.8禁用斷點392
12.4.9斷點設定392
12.5幀調試視窗393
12.6變數調試視窗394
12.7監視視窗397
12.7.1添加變數或表達式到監視視窗398
12.7.2快捷工具399
12.8調試控制工具399
12.9步進調試工具403
12.10計算表達式405
12.10.1在堆疊幀中計算表達式或代碼片段405
12.10.2計算任意表達式407
12.10.3快速計算表達式的值407
12.10.4選中表達式立即顯示表達式的值408
12.11關聯調試到Android進程408
12.12配置和運行單元測試409
12.12.1配置和運行本地單元測試409
12.12.2使用命令行運行單元測試412
12.12.3配置Android單元測試412
第13章工具414
13.1任務414
13.1.1任務介紹和配置414
13.1.2打開任務417
13.1.3創建新任務418
13.1.4任務變更列表419
13.1.5切換/關閉任務420
13.1.6管理上下文420
13.2JavaDoc421
13.2.1配置JavaDoc421
13.2.2生成JavaDoc422
13.3將當前檔案保存為模板424
13.4IDEScriptingConsole425
13.5管理AndroidSDK425
13.5.1管理AndroidSDK平台426
13.5.2管理SDK開發工具和更新站點428
13.6管理Android模擬器429
13.6.1認識模擬器429
13.6.2創建模擬器430
13.6.3啟動模擬器431
13.7即時運行433
13.8Android監視器436
13.9截圖440
13.10錄像440
13.11捕獲系統信息441
13.12布局解析443
13.13Logcat監視器445
13.14記憶體監視器450
13.14.1DumpJavaHeap452
13.14.2AllocationTracking456
13.15CPU監視器458
13.16網路監視器460
13.17GPU監視器460
13.18APK分析器461
13.19主題編輯器462
第14章版本控制466
14.1版本控制系統466
14.2Git偏好設定469
14.3配置GitHub賬戶信息470
14.4從GitHub克隆代碼470
14.5將本地項目共享到GitHub471
14.6查看本地變更歷史472
14.7Git添加檔案474
14.8Git提交變更475
14.9Git檔案逐行追溯476
14.10顯示當前修訂版本477
14.11Git檔案比較478
14.12Git撤銷操作479
14.13Git版本回退480
14.14Git查看提交歷史481
14.15Git分支管理483
14.16Git創建標籤486
14.17Git合併分支487
14.18解決Git合併中的衝突488
14.19Git使用Rebase合併分支489
14.20Git暫存/恢復暫存變更494
14.21Git獲取最新內容496
14.22Git合併最新內容497
14.23Git更新項目497
14.24刷新檔案狀態499
14.25Git補丁500
14.26Git擱置變更501
14.27查看Git項目的提交信息502
第15章視窗504
15.1最小化和最大化視窗504
15.2保存和恢復視窗布局504
15.3工具視窗的顯示和隱藏505
15.4工具視窗的隱藏技巧506
15.5工具視窗調整技巧507
15.6移動工具視窗的位置508
15.7工具視窗的查看模式509
15.8編輯器標籤設定512
15.9快速切換編輯器標籤513
15.10關閉編輯器標籤514
15.11管理編輯器標籤514
15.12標籤顯示位置515
15.13拆分編輯器視窗516
15.14多個項目之間切換517
第16章偏好設定518
16.1外觀與行為518
16.1.1設定工具提示的延遲時間518
16.1.2設定在狀態欄顯示記憶體狀態519
16.1.3對選單選項和工具列的工具進行增/刪改519
16.2系統設定519
16.3鍵盤映射522
16.4編輯器常規設定523
16.4.1設定單擊編輯器游標定位在一行的結尾或定位在單擊的位置523
16.4.2設定滑鼠懸停在元素上會顯示文檔提示523
16.4.3設定是否自動換行524
16.4.4設定使用command+滑鼠控制代碼的縮放526
16.4.5開啟使用駝峰單詞526
16.4.6關閉單詞拼寫檢查527
16.4.7設定代碼摺疊規則527
16.5設定自動導入528
16.5.1設定貼上時自動導入包528
16.5.2設定自動導入需要的包528
16.5.3設定是否彈出導入提示529
16.6編輯器外觀530
16.6.1設定編輯器一直顯示行號530
16.6.2設定編輯器顯示方法分隔設定530
16.6.3設定編輯器顯示空格530
16.6.4設定編輯器顯示縮進嚮導531
16.7代碼補全531
16.7.1設定自動補全時是否區分大小寫531
16.7.2加快自動彈出代碼補全提示的速度532
16.7.3關閉自動彈出代碼補全提示533
16.7.4設定查看方法參數信息的時候顯示方法簽名533
16.8檔案標籤534
16.8.1設定用星號標記修改過的檔案標籤534
16.8.2設定打開的檔案標籤可以多行顯示534
16.8.3設定檔案標籤的顯示位置535
16.8.4設定檔案標籤超過一定數量時的關閉規則535
16.9編輯器顏色536
16.9.1設定是否顯示條標和條標的顯示顏色536
16.9.2設定控制台的顏色537
16.9.3設定控制台的字型538
16.9.4自定義代碼的顏色539
16.10代碼風格541
16.10.1設定Java注釋按縮進顯示541
16.10.2設定語句不要都顯示在一行541
16.10.3設定Java簡單的類合併為一行542
16.10.4設定Java欄位和變數列對齊542
16.10.5設定自動生成欄位名稱時添加前綴542
16.11檔案和代碼模板543
16.11.1設定新建檔案的注釋模板543
16.11.2模板中內置的變數544
16.11.3設定新建類檔案模板544
16.11.4設定IDE和項目的編碼545
16.11.5對動態模板進行增刪改查545
16.11.6設定展開代碼的按鍵547
16.11.7給一個檔案類型添加匹配規則547
16.11.8添加一個自定義的檔案類型547
16.11.9設定忽略某類檔案或資料夾548
16.12外掛程式549
16.12.1安裝外掛程式550
16.12.2禁用外掛程式553
16.12.3卸載外掛程式554
16.12.4常用外掛程式555
16.13編譯和構建556
16.13.1設定AndroidStudio的記憶體參數556
16.13.2設定自動編譯項目556
16.13.3設定並行編譯557
16.13.4調整編譯記憶體大小557
附錄AndroidStudio重要版本發布時間線559
參考資料560