Android已成為世界上市佔率最高的手機作業系統,想要成為App開發人員,Android一定是第一選擇。
Google自從推出整合的Android開發平台Android Studio之後,大大簡化並統一了Android程式開發的速度,但更重要的,就是現在你已經可以在Mac OS上開發Android應用程式了。如果你已經是蘋果手機App的開發人員,現在不需要再買一台PC或安裝虛擬機,就可以直接用Mac OS開發原生的Android應用程式,不管是原生的API、模擬器、執行環境或連線實體手機,本書都解釋的十分清楚,這也是新版Android Studio最重要的功能,讓你能一機兩用,開發出跨平台的手機應用程式。
適用:Android開發初學者、想從Eclipse轉到Android Studio、想深入瞭解Android Studio、想深入瞭解IntelliJ IDEA、Android開發測試的相關從業人員。
作者簡介:
畢小朋
CSDN 博客專家,8年行動互聯網從業經驗,熟悉 Android 開發與測試,所編寫的《Android Studio實用指南》電子書持續暢銷,備受讀者推崇,獲得百度閱讀的鼎力推薦。
作者序
前言
人總是在不斷地探索和嘗試,總是發明出一些新的科技來改善我們的生活。為了風雨無阻,人類發明了汽車,為了自由翱翔,人類發明了飛機。人們總是朝著更快、更高、更遠的目標奮進。科技的進步讓我們的工作變得更加高效,於是我們有了更多的時間來思考,思考如何使用技術讓這個世界變得更加美好。
現如今,行動網際網路正值浪潮之顛,物聯網、大數據、雲端運算、虛擬實境(VR)、擴增實境(AR)等,新技術不斷湧現又將帶來新一輪的裂變,而你我有幸處在這樣一個填滿機遇和創意的時代。作為程式設計師的我們,作為行動網際網路產品的開發者,應該要有更多的時間學習和思考,需要把更多的時間和精力放在產品的設計和創新上。那些簡單的、重複的、有規律的、易出錯的編碼和測試工作,都應該由工具來幫我們完成。
Android Studio 正是這樣一款Android 開發者們夢寐以求的工具,它的誕生就是為了讓Android 開發變得更加簡單和高效。
含著金湯勺出生的Android Studio,由於繼承自Intellij IDEA 這個號稱目前最好最強最智慧的Java IDE,天然地擁有了智慧和效率上的優勢。加上Google 為其量身定做的Android 開發工具,讓Android Studio 成為了Android 專案開發和測試的必備神器。
從2013 年5 月16 日Google 在I/O 大會上發佈Android Studio 第1個預覽版本開始,到現在2.2 版本的發佈。Google 對它的增強和最佳化從未間斷過,很多實用的功能被不斷地整合進來,每一次重大的更新都會使開發者歡呼雀躍。我對Android Studio 的學習和使用也從未間斷過,感覺它就像一座需要不斷探索和採擷的寶藏,每次不經意地獲得一項新的技能都會讓我感慨它的奇妙。
正所謂“聞道有先後,術業有專攻”。我採訪過很多資深的開發人員,他們大多專注研究和學習Android 開發技術,不會有太多的時間去深入工具的使用。目前中國市場上關於Android 開發的書籍有很多,但是至今還沒有一本專門介紹Android Studio,因緣際會,我成為第一人,希望能夠透過這本書把我所學習到的一些實用工具和技能介紹給大家,讓大家體會到Android Studio 的強大和便捷之處。
於是2013 年8 月3 日,中國第一本《Android Studio 入門指南》在杭州市濱江區星光大道的星巴克誕生了,迅速在網上傳播開來。
2015 年4 月29 日,又是在同一家星巴克,我開始動筆撰寫《Android Studio 實用指南》。
2015 年5 月5 日,《Android Studio 實用指南》寫滿一萬字在百度閱讀上架,被讀者@ 萌萌番長購買。
2016 年5 月30 日,與清華大學出版社簽約,書名改為《精通Android Studio》。經過3 年的累積,15 個月的努力,200 多次的修改,1000 多位讀者的支援和監督,近70 萬字的《精通Android Studio》最後得以出版。激動和感激之情無以言表,感謝大家,感謝這個偉大的、一切皆有可能的網際網路時代。
✤ 本書定位
這不是一本循序漸進的學習書,更像是一本Cookbook,你需要有目的地去閱讀。遇到問題或想了解某個工具如何使用時,可以直接到相關的章節。
本書是一本非常實用的指導手冊,它幾乎囊括Android Studio 所有的實用功能和操作技巧,適合放在讀者的電腦旁經常翻閱。
本書以通俗容易的語言描述工具和使用技巧,每個操作都有實例示範,讓讀者感覺是在跟一個有經驗的人聊天。
本書以近1500 張圖詳細描述Android Studio 的使用,真正的圖文並茂。
本書以解決問題為目的,說明如何使用工具解決實際問題。
本書專注於操作技巧的說明,對於Android 開發的基礎知識略有提及,但不是本書的重點。
本書以macOS 上的操作為例進行示範,不同作業系統上Android Studio 的操作差異不大,對於快速鍵會區分macOS/Windows/Linux。
本書的大部分操作技巧同樣適用於IntelliJ IDEA。
✤ 目標讀者
■ 如果你初學Android 開發;
■ 如果你想從Eclipse 轉到Android Studio;
■ 如果你從其他語言轉到Android 開發;
■ 如果你想深入了解Android Studio;
■ 如果你想深入了解IntelliJ IDEA;
■ 如果你從事Android 測試開發;
■ 如果你想節省搜索的時間、加強工作效率;
那麼本書就是為你量身定做的!
✤ 讀者須知
關於開發環境:
■ 本書適用macOS/Windows/Linux 作業系統,主要以macOS 來示範。
■ 本書以JDK1.7 為例介紹如何設定開發環境,如果你使用的是Android Studio2.2 及以上版本,需要設定JDK1.8。
■ 由於Android Studio 介面變化太快,因此本書中有些圖片可能是舊版本的介面,但是絲毫不會影響了解和閱讀。
✤ 勘誤與回饋
本書已經盡可能全面地轉換目前最新的2.2 版本,但是由於IntelliJ IDEA 在持續更新,Android Studio 也在持續更新,再加上筆者能力有限,書中難免會有遺漏、了解錯誤或表達不清晰的地方。如果你在閱讀本書時發現了這些問題,請發郵件(wirelessqa@163.com)或直接傳送BUG 到Github:https://github.com/bxiaopeng/AndroidStudio/issues。
本書的所有勘誤及版本轉換都會更新在Github 上。
✤ 致謝
好多次,在出門前,兒子都會問“爸爸,你跟我們一起去嗎?”或問“爸爸,你去哪裡?”媽媽會搶著說“爸爸加班,晚上陪你玩”。現在兒子已經快3 歲了,有時候會問“爸爸怎麼老是加班啊”,我總是說“因為爸爸忙啊”。
寫書不是件輕鬆的事情,這本書幾乎用掉了我所有的休息時間。每個禮拜天我都會雷打不動地在星巴克寫啊寫,如果沒有家人的了解和支援,沒有老婆和兒子莫大的支援和鼓勵,我是無法完成這本書的,感謝他們的付出。
感謝樓主、友哥、猴哥、煒哥、戰老師對本書的校對,他們都是非常資深的Android 開發工程師,感謝他們對本書提出的修改建議。
感謝已經買電子書的1000 多位讀者,他們見證這本書的的成長,沒有他們的支援和鼓勵,我也沒有信心出版這本書。
感謝所有的讀者,感謝你對本書的關注。
前言
人總是在不斷地探索和嘗試,總是發明出一些新的科技來改善我們的生活。為了風雨無阻,人類發明了汽車,為了自由翱翔,人類發明了飛機。人們總是朝著更快、更高、更遠的目標奮進。科技的進步讓我們的工作變得更加高效,於是我們有了更多的時間來思考,思考如何使用技術讓這個世界變得更加美好。
現如今,行動網際網路正值浪潮之顛,物聯網、大數據、雲端運算、虛擬實境(VR)、擴增實境(AR)等,新技術不斷湧現又將帶來新一輪的裂變,而你我有幸處在這樣一個填滿機遇和創意的時代。作為程式設計師的我們,作為行動網際網路產品的開...
目錄
前言
01 Android Studio
1.1 什麼是Android Studio
1.2 Android Studio 的特點
1.3 macOS 環境設定
1.4 Windows 環境設定
1.5 Linux 環境設定
1.6 認識歡迎介面
1.7 認識設定介面
1.8 說明和教學
1.9 更新Android Studio 版本
1.10 設定Android Studio 更新通道
1.11 在Android Studio 中使用代理
1.12 認識偏好設定
1.13 認識工作環境
1.14 認識工具視窗
02 專案與模組
2.1 Android Studio 的專案結構
2.2 匯入專案和模組
2.3 建立專案和模組
2.4 刪除模組
2.5 增加so 檔案
2.6 建立類別和檔案
2.7 建立Activity
2.8 建立Fragment 檔案
2.9 建立Service 檔案
2.10 建立自定義元件
2.11 建立App Widget
2.12 建立可編譯的資源檔
2.13 建立不同解析度的圖示
2.14 建立向量圖
2.15 建立AIDL 檔案
2.16 建立Android 資料夾
2.17 建立Resource Bundle 檔案
03 版面配置
3.1 認識版面配置
3.2 設計版面配置
3.3 元件列表
3.4 預覽
3.5 結構樹
3.6 屬性
3.7 工具列
04 管理
4.1 專案視窗
4.2 專案管理
4.3 檔案管理
4.4 Android Studio 管理
4.5 我的最愛
4.6 TODO
05 編輯
5.1 取消/ 重做/ 剪下/ 複製/ 貼上
5.2 複製技巧
5.3 合併兩行內容
5.4 選擇技巧
5.5 縮排設定
5.6 自動補全目前的敘述
5.7 一鍵切換大小寫字母
5.8 尋找工具列
5.9 在尋找結果中跳躍
5.10 選擇尋找結果
5.11 指定尋找路徑
5.12 替換
5.13 指定取代路徑
5.14 在結構中尋找和取代
5.15 尋找用法
5.16 設定尋找用法的過程和範圍
5.17 顯示用法
5.18 檢視在目前檔案中的用法
5.19 在檔案中反白顯示字元
5.20 最近尋找
5.21 Macros (巨集)
06 視圖
6.1 工具視窗
6.2 工作環境管理
6.3 檢視定義
6.4 檢視同胞元素
6.5 檢視文件
6.6 檢視方法的參數資訊
6.7 檢視運算式的類型
6.8 檢視上下文資訊
6.9 檢視原始程式
6.10 檢視最近開啟過的檔案
6.11 檢視最近改動過的檔案
6.12 檢視最近的改動
6.13 比較任意檔案
6.14 將選取的檔案和正在編輯的檔案進行比較
6.15 將選取的檔案和剪下板上的內容進行比
6.16 切換編輯器配色方案
6.17 切換程式風格
6.18 切換鍵盤對映
6.19 快速切換視圖模式
6.20 快速切換主題
6.21 設定編輯器是否顯示空格
6.22 設定編輯器是否顯示行號
6.23 設定編輯器是否顯示縮排精靈
6.24 設定編輯器是否使用自動換行
6.25 設定編輯器是否出現匯入提示
6.26 使用示範模式
6.27 使用免打擾模式
6.28 使用全螢幕模式
07 導覽
7.1 搜索並開啟類別檔案
7.2 搜索並開啟某個檔案
7.3 搜索並開啟某個檔案或方法
7.4 使用自訂程式區塊
7.5 快速跳躍到某一行程式
7.6 快速跳躍到游標的歷史位置
7.7 快速跳躍到編輯過的歷史位置
7.8 標記書籤
7.9 使用快速鍵標記書籤
7.10 管理書籤
7.11 快速跳躍到導覽列
7.12 快速跳躍到宣告
7.13 快速跳躍到實現
7.14 快速跳躍到類型宣告
7.15 快速跳躍到父類別
7.16 類別和測試類別之間快速跳躍
7.17 檢視相連結的檔案
7.18 檢視檔案結構
7.19 檢視類別的層次結構圖
7.20 檢視方法類型的層次結構
7.21 檢視方法呼叫層次結構
7.22 快速跳躍到錯誤程式的位置
7.23 在方法間前後跳躍
7.24 使用翻頁功能
7.25 選擇目前檔案在哪裡顯示
7.26 游標快速跳躍到編輯器
7.27 游標快速跳躍到表頭/ 頁尾
08 程式設計
8.1 覆載或實現方法
8.2 實現介面方法
8.3 實現代理方法
8.4 產生建置函數
8.5 產生Getter 和Setter 方法
8.6 覆載equals 和hashcode 方法
8.7 覆載toString 方法
8.8 插入版權資訊
8.9 分析或刪除程式
8.10 自動補全提示
8.11 程式補全
8.12 補全循環擴充詞
8.13 展開或折疊程式
8.14 插入程式範本
8.15 使用程式範本包裹程式
8.16 檢視和編輯程式範本
8.17 使用常用程式範本包裹程式
8.18 註釋程式
8.19 格式化程式
8.20 自動縮排行
8.21 最佳化匯入
8.22 重新排列程式
8.23 移動一段程式
8.24 移動一行程式
8.25 操作意圖提示
8.26 正規表示法操作意圖提示
09 檢查
9.1 程式檢查工具
9.2 更加了解Lint
9.3 執行一次程式檢查
9.4 指定檢查範圍
9.5 程式檢查結果及輔助工具
9.6 詳解程式檢查結果輔助工具
9.7 禁用和啟用某項檢查
9.8 忽略檢查
9.9 在指定範圍內執行某項檢查
9.10 解決檢查出的問題
9.11 管理程式檢查設定檔
9.12 設定程式檢查規則
9.13 Android 類別目的所有檢查項
9.14 Android Lint 類別目的檢查項
9.15 在lint.xml 檔案中設定Lint 檢查
9.16 在Gradle 中設定Lint 檢查
9.17 使用Gradle 執行Lint 檢查
9.18 在Java 和XML 原始程式中設定Lint 檢
9.19 程式清理
9.20 透過名字來指定程式檢查項
9.21 設定目前檔案自動檢查的規則
9.22 匯入並檢視離線檢查結果
9.23 自動增加是否可為空註釋
9.24 分析依賴
9.25 分析反向依賴
9.26 分析模組依賴
9.27 分析循環依賴
9.28 分析資料流程
9.29 分析堆疊資訊
10 重構
10.1 重新命名
10.2 更改方法簽名
10.3 移轉變數類型
10.4 轉成靜態方法
10.5 靜態方法轉為實例方法
10.6 移動類別
10.7 移動靜態方法
10.8 移動靜態欄位
10.9 複製
10.10 安全刪除
10.11 分析變數
10.12 分析常數
10.13 分析欄位
10.14 分析參數
10.15 分析函數式參數
10.16 分析參數物件
10.17 分析方法
10.18 分析方法物件
10.19 分析委派
10.20 分析介面
10.21 分析父類別
10.22 內聯方法
10.23 內聯臨時變數
10.24 尋找並取代重複程式
10.25 反轉布林值
10.26 把成員拉到父類別
10.27 把成員推到子類別
10.28 盡可能使用介面
10.29 使用委派取代繼承
10.30 移除中間人
10.31 包裝方法傳回值
10.32 將匿名類別轉成內部類別
10.33 封裝欄位
10.34 使用查詢取代臨時變數
10.35 使用工廠方法取代建置方法
10.36 使用建置元取代建置方法
10.37 泛型化
10.38 國際化
11 構建
11.1 認識Gradle
11.2 設定Gradle 環境
11.3 Gradle Wrapper
11.4 檢視和執行Gradle 工作
11.5 建置專案和模組
11.6 Gradle Script
11.7 在專案結構中設定模組建置
11.8 簽名和包裝
11.9 設定開發者服務
12 執行和偵錯
12.1 執行和偵錯設定
12.2 執行應用程式
12.3 偵錯應用程式
12.4 中斷點
12.5 頁框偵錯視窗
12.6 變數偵錯視窗
12.7 監看視窗
12.8 偵錯控制工具
12.9 步進偵錯工具
12.10 計算運算式
12.11 連結偵錯到Android 處理程序
12.12 設定和執行單元測試
13 工具
13.1 任務
13.2 JavaDoc
13.3 將目前檔案儲存為範本
13.4 IDE Scripting Console
13.5 管理Android SDK
13.6 管理Android 模擬器
13.7 即時執行
13.8 Android 監視器
13.9 截圖
13.10 錄像
13.11 捕捉系統資訊
13.12 版面配置解析
13.13 Logcat 監視器
13.14 記憶體監視器
13.15 CPU 監視器
13.16 網路監視器
13.17 GPU 監視器
13.18 APK 分析器
13.19 主題編輯器
14 版本控制
14.1 版本控制系統
14.2 Git 偏好設定
14.3 設定GitHub 帳戶資訊
14.4 從GitHub 複製程式
14.5 將本機專案共用到GitHub
14.6 檢視本機變更歷史
14.7 Git 增加檔案
14.8 Git 傳送變更
14.9 Git 檔案逐行追溯
14.10 顯示目前修訂版本
14.11 Git 檔案比較
14.12 Git 取消操作
14.13 Git 版本回復
14.14 Git 檢視傳送歷史
14.15 Git 分支管理
14.16 Git 建立標籤
14.17 Git 合併分支
14.18 解決Git 合併中的衝突
14.19 Git 使用Rebase 合併分支
14.20 Git 暫存/ 恢復暫存變更
14.21 Git 取得最新內容
14.22 Git 合併最新內容
14.23 Git 更新專案
14.24 更新檔案狀態
14.25 Git 更新
14.26 Git 擱置變更
14.27 檢視Git 專案的傳送資訊
15 視窗
15.1 最小化和最大化視窗
15.2 儲存和恢復視窗版面配置
15.3 工具視窗的顯示和隱藏
15.4 工具視窗的隱藏技巧
15.5 工具視窗調整技巧
15.6 移動工具視窗的位置
15.7 工具視窗的檢視模式
15.8 編輯器標籤設定
15.9 快速切換編輯器標籤
15.10 關閉編輯器標籤
15.11 管理編輯器標籤
15.12 標籤顯示位置
15.13 拆分編輯器視窗
15.14 多個專案之間切換
16 偏好設定
16.1 外觀與行為
16.2 系統設定
16.3 鍵盤對映
16.4 編輯器正常設定
16.5 設定自動匯入
16.6 編輯器外觀
16.7 程式補全
16.8 檔案標籤
16.9 編輯器顏色
16.10 程式風格
16.11 檔案和程式範本
16.12 外掛
16.13 編譯和建置
A 附錄
A-1 Android Studio 重要版本發佈時間線
A-2 參考資料
前言
01 Android Studio
1.1 什麼是Android Studio
1.2 Android Studio 的特點
1.3 macOS 環境設定
1.4 Windows 環境設定
1.5 Linux 環境設定
1.6 認識歡迎介面
1.7 認識設定介面
1.8 說明和教學
1.9 更新Android Studio 版本
1.10 設定Android Studio 更新通道
1.11 在Android Studio 中使用代理
1.12 認識偏好設定
1.13 認識工作環境
1.14 認識工具視窗
02 專案與模組
2.1 Android Studio 的專案結構
2.2 匯入專案和模組
2.3 建立專案和模組
2.4 刪除模組
2.5 增加so 檔案
2.6 建立類別和檔案
2.7 建立Activity
2.8 建...