<p>Android 常用的開發工具記錄。其中包括AndroidStudio(IDEA)插件、Mac 上好用的軟件以及國內知名Android開發者博客等。</p>

Android Studio 插件

  1. codota 插件,提供高質量的Android代碼片段搜索,官方網站codota官網

Android 網站

  1. Android Developer Androuid 官網,不解釋。
  2. AndroidDevTool 國人維護的Android開發工具的整理。
  3. Android Arsenal 各種各樣的Android開源庫的推薦。
  4. Android Weekly Android週報,乾貨集錦。
  5. Stack Overflow StackOverflow 能查到的問題,那就不是問題。
  6. Material Design Material Design 設計規範。
  7. Trinea Trinea前輩的博客。
  8. GrepCode 所有版本的Android源碼以及其他著名項目源碼。
  9. AndroidXREF 所有版本的Android源代碼的在線閱讀。
  10. SearchCode 搜索代碼示例
  11. CodePath Android 知識點的入門教程。
  12. Android Training 中文版
  13. Android Api Guide 中文版
  14. Android Design 中文版
  15. Appance 各種AndroidUI設計風格。
  16. Android Libraries and Resources
  17. AndroidElementals 各種Android開源View 組件。
  18. android經典開源代碼分享
  19. Android 源碼解析
  20. awesome-android 各種Android開元項目集合。
  21. Android開發週報中文版
  22. Android開發者博客彙總
  23. GitHub Android大神彙總
  24. ImportNew Java 資訊
  25. 技術小黑屋
  26. 代碼家
  27. Android Cool Posts
  28. Android開源項目分類彙總—Trinea
  29. 美團技術團隊
  30. Google Java編程風格指南中文版
  31. Android Gradle 使用指南
  32. Developing Android Apps 國外某位大神的Android 開發教程
  33. 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 推送

  1. 百度雲推送
  2. 個推推送
  3. 極光推送
  4. 友盟推送
  5. 騰訊信鴿推送
  6. 小米推送
  7. 友推
  8. 華為推送
  9. 雲巴消息推送
  10. 魔泊網
  11. DDPush任意門推送

Android 數據統計

  1. 友盟統計分析
  2. 百度移動統計
  3. TalkingData
  4. Google Analytics統計服務
  5. LeanCloud統計
  6. CNZZ移動統計
  7. 機鋒統計
  8. Flurry Analytics

Androd 常用渠道

  1. 百度手機助手
  2. 豌豆莢移動應用商店
  3. 優億市場
  4. 應用匯
  5. 應用匯
  6. 360手機助手
  7. 安智市場
  8. 騰訊應用寶
  9. 91助手
  10. 安卓市場
  11. 木螞蟻應用市場
  12. Google Play
  13. 機鋒市場

Mac軟件推薦

  1. Dash ,文檔搜索工具,配合Alfred使用,可以快速查看API文檔。
  2. Alfred,效率工具,功能較SpotLight更為強大。
  3. SourceTree,Mac上好用的Git管理工具,方便的管理Git倉庫。
  4. CleanMyMac,強大的系統清理工具,可以清理系統垃圾並卸載App。
  5. Pocket,稍後閱讀。
  6. Atom,GitHub出品的強大文本工具。
  7. Unibox,郵件客戶端,基於用戶名稱管理郵件。
  8. Parallels Desktop,虛擬機,性能彪悍,功能強大。
  9. OneNote,微軟良心產品,筆記工具。
  10. 印象筆記,知識管理工具。
  11. 馬克飛象 好用的 MarkDown 編輯工具,可以將筆記同步到印象筆記。
  12. Kindle,亞馬遜電子書閱讀器。

變更記錄

  • 2015年07月12日 初稿撰寫。將自己收藏夾中的一些常用資源進行整理。
  • 2015年07月15日 增加部分Android相關工具網站,包括推送、數據統計以及上線渠道等。

參考文獻以及版權說明

肥肥在數據整理過程中,參考了大量來自知乎、CSDN、博客園等知名網站、肥肥在工作中的筆記以及大量國內外個人博客,謹在此向這些為了Android發展做出貢獻的前輩們致以最高的敬意。

肥肥盡最大的努力查找所參考資料的原始出處,並在後文以參考文獻的方式列出。由於人力有限,並不能完全的列出資料的原始出處,如有侵犯到您的權利,還望告知。

</div>

书籍推荐