A. 如何一步步實現androidCI
一步步實現Android CI
Android上的CI構建鏈與其它平台一致,依然包含Compilation, Testing, Inspection,
Deploying階段,每一個階段的Feedback的都保持對整個團隊透明。
2、添加Function Test
Android為大家提供了一套集成測試框架Android integration testing
framework。但此框架未集成Cucumber,這導致每增加一個Function Test都需要較大的開發和維護工作。這樣高成本的實現Function
Test將大大延緩開發進度,最終因為項目進度的原因導致Function Test被丟棄。產生這樣的後果那必然是不願意看到的。
目前Android平台下已經出現多種Functiong Testing測試工具,如Native Driver, Robotium,
Calabash等。在嘗試對比後,最終選擇了Calabash Android作為解決方案。Calabash
Android是Cucumber在Android平台的實現,使用Ruby書寫Function Test,並提供了一組操作Anadroid App元素的API。
3、添加UI Test
Android在新近退出了UI測試工具UIAutomator。此工具僅支持Android4.1及以上平台,鑒於目前市場上2.3和4.0版本仍佔主導的情況來看,目前還無法滿足大家的需要。另外應用該工具實現UI測試的開發成本還較高,筆者暫不推薦使用此工具,但應該關注其發展。
另外基於錄制回放機制的測試方法同樣可以進行UI測試。但錄制回放的方法在面對功能快速迭代時,維護工作會急劇增加,而這個維護成本可以說是很難承受的,所以在此也不會將這種測試方法集成至CI中。
目前來看Android中UI測試還無令人滿意的方法。若對UI成功比較看重,可以投入精力應用UIAutomator進行UI測試。
Best Practice:
*
將測試按照單元測試,組件測試,功能測試和系統測試進行劃分。單元測試應該在每次提交時觸發執行,其它的測試根據運行時間長短和重要程度可以每次提交觸發執行或者定時周期執行。
* 將運行較快的測試優先執行。
* 讓功能測試能夠重復執行。否則維護成本太高,會被舍棄。若是後台數據導致不可重復,可以將數據抽象成為數據集,在每次運行前進行重置。
* 書寫測試時每一個assert只做一種判斷,這樣可以明確每次測試的目的,並且可以快速定位測試失敗願意。
步驟 3:持續檢查持續檢查是對於代碼本身檢測和反饋。檢測主要通過對代碼靜態分析驗證代碼風格,編程規范,代碼復用,代碼語言中的Best Practice等多個維度的代碼質量。
Sonar作為一個開源的代碼質量檢測工具,涵蓋了7項代碼質量檢測方式。這充分滿足Android平台下對於代碼質量的檢測分析。Sonar分為兩部分一部分是代碼分析工具,另一部分是數據分析展示的Server。
Best Practice:
* 將測試覆蓋率,代碼分析結果透明化
* 持續降低代碼復雜度
* 持續的促進設計的演進
* 持續的維護代碼結構
* 持續減少代碼重復
步驟 4:持續部署
由於Android App採用用戶手動從Appstore自行下載安裝的方式發布,使得Android
App無法直接部署至用戶手機中。另外Appstore需要對於上線的App進行審核,不能持續進行Release。因而Android中持續部署將以持續發布可安裝包為目標。
在以上目的下,只需根據自身項目資源找到合適的安裝包管理工具即可。如本文採用Dropbox來管理所有安裝包。
Dropbox作為一個雲存儲平台,在Android終端設備上可以輕松下載存放在其中的文件,同時上傳安裝包也可以交由Dropbox自己完成。
步驟 5:持續反饋
反饋是所有改進的開始,必須要讓所有人獲取到他們所關心的反饋信息,才能實施改進。持續反饋的目的就是讓所有人都掌握項目健康狀況。項目所有人事實都是有意願知道項目當前的健康狀況的,那CI就應該將項目的情況做到透明,並將不同的反饋通知到各相關的成員。
CI不同階段產生了不同維度的反饋,如單元測試報告,測試覆蓋率等。本實踐中將這些反饋都透明的展示在項目首頁中。之所以沒有將這些反饋再以郵件的方式通知所有人,是因為團隊成員已經養成了查看CI的習慣。
如果說只給所有人發一封郵件說明項目狀況,那必然是告訴所有人「CI所有步驟是否都返回正確?」。這樣一個反饋,包含了編譯正確,所有測試通過,安裝包已經准備完畢等重要信息。有必要讓所有人都知道這個信息,特別是在CI執行失敗的時候。Jenkins自身已經提供一個簡單有效的透明化方法,以項目為藍色表示通過,紅色表示有步驟失敗。
反饋的通知方式有很多種,不一定要採用郵件通知的方式。可以尋找更加有趣的方式,如果播放音樂和設置警報燈。在每一次Build成功或失敗後都播放一段有趣的音樂,打開不同顏色的警報燈,這兩種方法都是是一種簡單有效的方式,可以讓項目所有人都獲取到最為關鍵的信息。
B. android用什麼軟體敲代碼
敲代碼用的軟體有:Android studio,WebStorm,Intellij IDEA,source inshght,Vscode。
1、Android studio
對UI界面設計和編寫代碼有更好地支持,可以方便地調整設備上的多種解析度。同樣支持ProGuard工具和應用簽名。不過,目前版本的Android Studio不能在同一窗口中管理多個項目。
C. android手機上看代碼有什麼好軟體
在安卓手機上的話我推薦920文本編輯器。
對於編輯器我沒有太多要求,只要有行號、代碼高亮、多窗口就行了,920編輯器完全符合我的要求。
軟體名稱:920編輯器
軟體簡介: 920文本編輯器(920 Text Editor)是一款運行於Android手機上功能強大的文本編輯器。 特色功能: 多標簽,你可以在不同的標簽打開不同的文件,方便你在不同的文本之本切換編輯 語法高亮 顯示行號 顯示空白字元(製表符,換行符) 自動檢測打開的文件編碼,同時你也可以轉換當前文件編碼 方便的工具欄,你可以快捷進行文件新建、打開、保存、另存為、撤銷/重做、一些常用符號、返回上次編輯位置等等 最近打開的文件歷史列表 正則查找、替換或替換全部 更改字體和字體大小 「自動換行」 開關等等。
下載鏈接:http://hexianghui.net/resource/11.html
註:我提供的是漢化版的,網路提供的是英文版。
好了,安卓代碼編輯器軟體的介紹就到這里了,祝你學有所成!
D. Android有沒有像類似於 IOS 的 cocoapods這樣的包管理工具
每種語言發展到一個階段,就會出現相應的依賴管理工具, 或者是中央代碼倉庫。比如
java: maven,Ivy
Ruby: gems
Python: pip, easy_install
Nodejs: npm
隨著iOS開發者的增多,業界也出現了為iOS程序提供依賴管理的工具,這個工具叫:CocoaPods。
CocoaPods簡介
CocoaPods是一個負責管理iOS項目中第三方開源代碼的工具。CocoaPods項目的源碼在Github上管理。該項目開始於2011年8月12日,經過一年多的發展,現在已經超過1000次提交,並且持續保持活躍更新。開發iOS項目不可避免地要使用第三方開源庫,CocoaPods的出現使得我們可以節省設置和更新第三方開源庫的時間。
拿我之前開發的粉筆網iPhone客戶端為例,其使用了14個第三方開源庫。在沒有使用CocoaPods以前,我需要:
把這些第三方開源庫的相關文件復制到項目中,或者設置成git的submole,然後這些開源庫通常需要依賴系統的一些framework,我需要手工地將這些framework一一增加到項目依賴中,比如ASI網路庫就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics and zlib。
對於RegexKitLite這個正則表達式庫,我還需要設置-licucore的編譯參數
手工管理這些依賴包的更新。
這些體力活雖然簡單,但毫無技術含量並且浪費時間。在使用CocoaPods之後,我只需要將用到的第三方開源庫放到一個名為Podfile的文件中,然後執行pod install。CocoaPods就會自動將這些第三方開源庫的源碼下載下來,並且為我的工程設置好相應的系統依賴和編譯參數。
E. Android Studio有哪些非常好用的插件
android-postfix-plugin可根據後綴快速完成代碼,這個屬於拓展吧,系統已經有這些功能,如sout、notnull等,這個插件在原有的基礎上增添了一些新的功
AndroidAccessors快速生成get和set方法的插件,其實系統的也有類似功能,這個更快。
Lifecycle-Sorter
可以根據Activity或者fragment的生命周期對其生命周期方法位置進行先後排序, 快捷鍵Ctrl + alt + K
JsonOnlineViewer
可實現直接在android studio中調試介面數據,可以選擇請求類型,自定義請求頭及請求體,json數據格式化後展示
CodeGlance
可用於快速定位代碼,類似於Sublime編輯器右側定位視圖
idea-android-studio-plugin
IntelliJ IDEA / Android Studio plugin with some tools and usability improvements
folding-plugin
可以給資源文件分組,並且不移動文件,也不會創建文件夾:Android File Grouping Plugin
Android Drawable Importer
為了適應所有Android屏幕的大小和密度,每個Android項目都會包含drawable文件夾。任何具備Android開發經驗的開發人員都知道,為了支持所有的屏幕尺寸,你必須給每個屏幕類型導入不同的畫板。Android Drawable Importer插件能讓這項工作變得更容易。它可以減少導入縮放圖像到Android項目所需的工作量。Android Drawable Importer添加了一個在不同解析度導入畫板或縮放指定圖像到定義解析度的選項。這個插件加速了開發人員的畫板工作。
Android ButterKnife Zelezny
用於在活動、片段和適配器中,從所選的XML布局文件生成ButterKnife注入。該插件提供了生成XML對象注入的最快方式。
Android Holo Colors Generator
開發Android應用程序需要偉大的設計和布局。Android Holo Colors Generator則是定製符合喜好的Android應用程序的最簡單方法。Android Holo Colors Generator是一個允許你為你的應用程序隨心所欲地創建Android布局組件的插件。此插件會生成所有必要的可在項目中使用的相關的XML畫板和樣式資源。
Android Parcelable code generator
生成實現了Parcelable介面的代碼的插件。在你的類中,按下alt + insert鍵彈出插入代碼的上下文菜單,你會看到在下面有一個Parcelable,如下所示。選擇它之後,就會在你的類當中插入實現了Parcelable介面的代碼。從此不用再手動寫Parcelable代碼
AndroidCodeGenerator
可以生成ViewHolder和findView方法的代碼。尤其是在Adapter實現類的getView當中很有用。
Android Layout ID Converter
生成findView代碼的使用方法。
SelectorChapek for Android
生成Selector的插件。你需要在drawable文件夾中右鍵,在彈出的菜單中選擇Generate Android Selectors,如下所示,它就會根據你的幾個drawable文件夾里的資源的命名,幫你生成Selector代碼。當然,你的資源文件需要根據約定的後綴來命名。比如按下狀態為_pressed,正常狀態為_normal,不可用狀態為_disable,等等
genymotion-gradle-plugin
不同於圖形化的genymotion插件,這個允許你通過腳本來配置,創建device。
sdk-manager-plugin
SDK管理插件,自動檢測更新並下載。
otto-intellij-pluginotto事件導航工具。
dagger-intellij-plugin
dagger可視化輔助工具。
eventbus-intellij-plugin
eventbus導航插件
eventbus3-intellij-plugin
eventbus導航插件
strings-xml-tools
管理Android工程中字元串國際化的插件
gradle-packer-plugin
Android多渠道打包工具。
gradle-retrolambda
在java 6 7中使用 lambda表達式的插件。
lint-cleaner-plugin
移除Android中無用資源。
dexcount-gradle-plugin方法數計算,對於較大應用避免方法爆棚很有用。
android-unit-test
添加Android單元測試。
robolectric-gradle-plugin
Robolectric測試輔助工具。
maven gradle 依賴支持自動補全。idea-markdownmarkdown插件
詳細教程