<p>Android 常用的開發工具記錄。其中包括AndroidStudio(IDEA)插件、Mac 上好用的軟件以及國內知名Android開發者博客等。</p>
Android Studio 插件
- codota 插件,提供高質量的Android代碼片段搜索,官方網站codota官網
Android 網站
- Android Developer Androuid 官網,不解釋。
- AndroidDevTool 國人維護的Android開發工具的整理。
- Android Arsenal 各種各樣的Android開源庫的推薦。
- Android Weekly Android週報,乾貨集錦。
- Stack Overflow StackOverflow 能查到的問題,那就不是問題。
- Material Design Material Design 設計規範。
- Trinea Trinea前輩的博客。
- GrepCode 所有版本的Android源碼以及其他著名項目源碼。
- AndroidXREF 所有版本的Android源代碼的在線閱讀。
- SearchCode 搜索代碼示例
- CodePath Android 知識點的入門教程。
- Android Training 中文版
- Android Api Guide 中文版
- Android Design 中文版
- Appance 各種AndroidUI設計風格。
- Android Libraries and Resources
- AndroidElementals 各種Android開源View 組件。
- android經典開源代碼分享
- Android 源碼解析
- awesome-android 各種Android開元項目集合。
- Android開發週報中文版
- Android開發者博客彙總
- GitHub Android大神彙總
- ImportNew Java 資訊
- 技術小黑屋
- 代碼家
- Android Cool Posts
- Android開源項目分類彙總—Trinea
- 美團技術團隊
- Google Java編程風格指南中文版
- Android Gradle 使用指南
- Developing Android Apps 國外某位大神的Android 開發教程
- free-programming-books 一大堆英文編程書籍的推薦
Android 系統性能調優工具
TraceView
Traceview是Android平臺特有的數據採集和分析工具,它主要用於分析Android中應用程序的hotspot。Traceview本身只是一個數據分析工具,而數據的採集則需要使用Android SDK中的Debug類或者利用DDMS工具。
Systrace
Systrace是Android4.1中新增的性能數據採樣和分析工具。它可幫助開發者收集Android關鍵子系統(如surfaceflinger、WindowManagerService等Framework部分關鍵模塊、服務)的運行信息,從而幫助開發者更直觀的分析系統瓶頸,改進性能。
Systrace的功能包括跟蹤系統的I/O操作、內核工作隊列、CPU負載以及Android各個子系統的運行狀況等。
Oprofile
Oprofile是另一個功能更強大的性能數據採集和分析工具,其工作原理如下:
它利用性能計數器(Performance Counter)或者定時器(針對kernel不支持性能計數器的情況),通過連續的採樣獲得統計數據,從而對內核和用戶空間進程進行性能分析。
以性能計數器為例,在系統運行過程中,當某個事件發生時,對應的性能計數器就會自加。當達到計數器的設定值時會產生一個中斷。Oprofile驅動利用這個中斷來進行採樣統計。通過獲取中斷髮生時PC指針的值以及內核中保存運行的任務的信息等,並把它們轉化成對測評有用的數據。
Oprofile包括內核驅動和用戶空間工具兩個部分,其中:
內核驅動實現了一個oprofilefs虛擬文件系統。它掛載到/dev/oprofile,用來向用戶空間報告數據和接收來自用戶空間的設置。它是用戶空間進程與內核通信的橋樑。驅動中還包括了與架構相關和通用的驅動,通過它們訪問性能計數器寄存器、收集數據後報告給用戶空間。守護進程用戶從內核接收數據並保存在磁盤上以備分析使用。
在用戶空間提供了兩個工具:oprofiled(作為守護進程在後臺通過和/dev/oprofile交互以獲取驅動收集的數據)、opcontrol(用戶操作的控制工具,它通過讀寫oprofilefs來控制採樣相關的設置)。
Hierarchy Viewer
這個工具可以幫助開發者調試、優化用戶界面。它可以為App的用戶界面結構生成一個圖形的展示方式,並且提供了顯示的放大功能。
Android DDMS
在Android開發工具包當中有一個調試工具,Dalvik Debug Monitor Server (DDMS)。這個工具提供了端口轉發,截屏,堆棧,進程信息,日誌,信號狀態信息,模擬來電,短信,模擬地理位置信息等。
Zipalign
這個工具可以優化Android程序文件(.apk)。這個工具的原理是能夠將所有非壓縮的數據按照4個字節的邊界對齊。
Android測試工具
Android Test Kit
Android Test Kit 是一組 Google 開源測試工具,用於 Android 平臺,包含 Espresso API 可用於編寫簡潔可靠的 Android UI 測試。
AndroidJUnit4
AndroidJUnit4 是一個讓 JUnit 4 可以直接運行在 Android 設備上的開源命令行工具。
Appium
Appium 是一個開源、跨平臺的自動化測試工具,用於測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平臺。Appium 驅動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協議。
Calabash-android
calabash-android 是一個基於 Cucumber 的 Android 的功能自動化測試框架。Calabash 允許你寫和執行,是開源的自動化移動應用測試工具,支持 Android 和 iOS 原生應用。Calabash 的庫允許原生和混合應用的交互測試,交互包括大量的終端用戶活動。Calabash 可以媲美 Selenium WebDriver。但是, 需要注意的是 web 應用和桌面環境的交互跟觸摸屏應用的交互是不同的。Calabash 專為觸摸屏設備的原生應用提供 APIs。
Monkey
Monkey 是 Google 開發的 UI/應用測試工具,也是命令行工具,主要針對壓力測試。你可以在任意的模擬器示例或者設備上運行。Monkey 發送一個用戶事件的 pseudo-random 流給系統,作為你開發應用的壓力測試。
MonkeyTalk
MonkeyTalk 是世界上最強大的移動應用測試工具。MonkeyTalk 自動為 iOS 和 Android 應用進行真實的,功能性交互測試。MonkeyTalk 提供簡單的 「smoke tests」,複雜數據驅動的測試套件。MonkeyTalk 支持原生,移動和混合應用,真實設備或者模擬器。MonkeyTalk 使得場景捕獲非常容易,可以記錄高級別,可讀的測試腳本。同樣的命令可以用在 iOS 和 Android 應用上。你可以記錄一個平臺的一個測試,並且可以在另外一個平臺回放。MonkeyTalk 支持移動觸摸和基於手勢交互為主的移動體驗。點擊,拖拽,移動,甚至是手指繪製也可以被記錄和回放。
NativeDriver
NativeDriver 是 WebDriver API 的實現,是原生應用 UI 驅動,而不是 web 應用。
Robolectric
Robolectric 是一款Android單元測試框架,使用 Android SDK jar,所以你可以使用測試驅動開發 Android 應用。測試只需幾秒就可以在工作站的 JVM 運行。Robolectric 處理視圖縮放,資源加載和大量 Android 設備原生的 C 代碼實現。Robolectric 允許你做大部分真實設備上可以做的事情,可以在工作站中運行,也可以在常規的 JVM 持續集成環境運行,不需要通過模擬器。
RoboSpock
RoboSpock 是一個開源的 Android 測試框架。提供簡單的編寫 BDD 行為驅動開發規範的方法,使用 Groovy 語音,支持 Google Guice 庫。RoboSpock 合併了 Robolectric 和 Spock 的功能。
Robotium
Robotium 是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長 按、滑動等)、查找和斷言機制的API,能夠對各種控件進行操作。Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測 試。另外,Robotium 4.0版本已經支持對WebView的操作。Robotium 對Activity,Dialog,Toast,Menu 都是支持的。
UIAutomator
uiautomator 測試框架提高用戶界面(UI)的測試效率,通過自動創建功能 UI 測試示例,可以在一個或者多個設備上運行你的應用。
Selendroid
Selendroid 是一個 Android 原生應用的 UI 自動化測試框架。測試使用 Selenium 2 客戶端 API 編寫。Selendroid 可以在模擬器和實際設備上使用,也可以集成網格節點作為縮放和並行測試。
Spoon
可用於android不同機型設備自動化測試,能將應用apk和測試apk運行在不同機器上並生成相應測試報告。
項目地址:https://github.com/square/spoon
Android FEST
提供一些列方便的斷言,可用於提高編寫Android自測代碼效率
項目地址:https://github.com/square/fest-android
Android 推送
Android 數據統計
Androd 常用渠道
Mac軟件推薦
- Dash ,文檔搜索工具,配合Alfred使用,可以快速查看API文檔。
- Alfred,效率工具,功能較SpotLight更為強大。
- SourceTree,Mac上好用的Git管理工具,方便的管理Git倉庫。
- CleanMyMac,強大的系統清理工具,可以清理系統垃圾並卸載App。
- Pocket,稍後閱讀。
- Atom,GitHub出品的強大文本工具。
- Unibox,郵件客戶端,基於用戶名稱管理郵件。
- Parallels Desktop,虛擬機,性能彪悍,功能強大。
- OneNote,微軟良心產品,筆記工具。
- 印象筆記,知識管理工具。
- 馬克飛象 好用的 MarkDown 編輯工具,可以將筆記同步到印象筆記。
- Kindle,亞馬遜電子書閱讀器。
變更記錄
- 2015年07月12日 初稿撰寫。將自己收藏夾中的一些常用資源進行整理。
- 2015年07月15日 增加部分Android相關工具網站,包括推送、數據統計以及上線渠道等。
參考文獻以及版權說明
肥肥在數據整理過程中,參考了大量來自知乎、CSDN、博客園等知名網站、肥肥在工作中的筆記以及大量國內外個人博客,謹在此向這些為了Android發展做出貢獻的前輩們致以最高的敬意。
肥肥盡最大的努力查找所參考資料的原始出處,並在後文以參考文獻的方式列出。由於人力有限,並不能完全的列出資料的原始出處,如有侵犯到您的權利,還望告知。
</div>