安卓開發經驗分享:資源、UI、函數庫、測試、構建一個都不能少

來源:互聯網
上載者:User

標籤:

除了高超的武藝,每位黑忍者還需要裝備最好的武器。在軟體開發的世界裡,好的工具能讓我們的生活變得更輕鬆,在更短的時間裡寫出更棒的代碼。

時光回到2008年,那時安卓還很年輕。只有幾個相關的部落格和Google官方的幾個應用開發教程,沒有函數庫也沒有代碼產生器,甚至連成熟的設計模式也沒有(除了OOP和一些Java實踐)。今非昔比,我們已經有了一個成熟的OS、很棒的開發工具、穩定的Eclipse外掛程式和其他IDE,數不清的開發書籍和相關的技術部落格。

這裡,我想分享自己在開發安卓應用時用到的工具和一些技巧,希望可以讓大家少走一些彎路。

1. 資源

所有的UI指南都可以在這裡找到。有些時候我們需要快速地找到資源,我們需要工具列表徵圖、主題、其他表徵圖和各種安卓應用需要的設計資源。Android Assets Studio是最佳工具之一。它可以為你產生各種解析度 (mdpi, hdpi, xhdpi)的啟動器、標籤、工具列、菜單表徵圖,可以按照你的配色產生主題,還可以產生工具列資源 適用於Sherlock Action Bar。轉換和縮放DPI是很痛苦的,所以你需要Android Dpi Calculator

2. UI組件

只要遵循安卓官方的UI設計理念,我們就在重用UI組件。有很多優秀的萬用群組件可以利用,當然你可以基於他們開發適合自己的組件。你可以在Android Views上找到他們。這裡我只提出幾個“必備的”組件:

  • Sherlock Action Bar:作者Jake Wharton。這個工具列設計擴充了支援函數庫,可以通過一個API操作各個版本的安卓工具列。該函數庫會在合適的時候自動調用原生工具列,也可以在你布局基礎上封裝一個自訂實現。這樣你就可以很輕鬆地為各種2.x及以上的安卓版本開發一個帶工具列的應用。
  • Sliding Menu :這是時下非常流行的UI模式。Google Play市場上很多最佳應用都採用了這個UI模式,比如Google Plus、Facebook、Youtube以及其他的應用程式都採用了Sliding Menu。
  • Cards:一個非常漂亮簡介的UI組件,可以讓你的應用看起來和Google Home一樣。你可以在螢幕上添加一個或者層疊若干個卡片。

3. 函數庫

安卓應用不僅僅是UI,還包括了很多顏色和圖片資源。Optimus Prime(譯著:《變形金剛》裡面正義一方的領袖)曾經說過:“真相不只是眼前所見”。我們還需要編寫後台代碼載入和緩衝圖片、加快與伺服器通訊、編寫資料庫操作工具等等。接下來,我們理所應當地會重用一些最佳實務代碼。我的最愛(以及常用的工具)包括:

  • Android Universal Loader:高度可定製圖片下載和載入函數庫。支援從緩衝或檔案載入,配置非常簡單。
  • Spring for Android:如果你沒有聽說過Spring…那麼請先去搜尋一下。這個最流行的Java架構已經將他的產品線延伸到了移動領域。正如他們所說“移動就是未來”。Spring for android提供了幾個很棒的函數庫和架構,包括:
    • Spring RESTtemplate:一個非常流行的基於Java REST用戶端。Spring for Android RestTemplate模組提供了一個可以在安卓環境下工作的RestTemplate版本,為你的安卓應用程式提供了一個非常靈活的REST API。
    • 驗證支援:OAuth是該領域快速崛起一個的協議。OAuth是一個開源協議,為使用者提供第三方應用支援,提供對其他網站受限資源或服務的訪問。
  • Square:他們在GitHub上發布了很多優秀的函數庫。我最喜歡的是RetoFit,正如他的介紹那樣“一個型別安全的安卓和Java REST用戶端”。
  • OrmLite :編寫和維護資料庫表通常是很乏味的。OrmLite是一個支援安卓和Sqlite的ORM架構。通常完成這項工作會有數不清的備選工具,但是如果你正在建立一個需要很大資料庫的應用也許OrmLite會是你的最佳選擇。最好的事情是——OrmLite是通過註解驅動的。
  • AndroidAnnotations:UI和代碼之間的粘合劑,通過它可以編寫更少的代碼並且輕鬆維護現存的代碼。

4. 測試

作為開發人員,我們會不時地進行一些測試。畢竟,我們必須確保開發的程式能正常工作。能遵循測試驅動開發(TDD)當然最好,但是有時候我們只需要一些簡單的測試。這隻是我個人的看法,最終選擇權始終在你手上。

  • Monkey:檢查應用是否會出現ANR(譯者註: ApplicationNotResponding應用程式無響應)的最簡單、快速和有效方法。它會在你的應用上執行N次隨機點擊。你可以在午休時運行一下Monkey。
  • Safe.i j i a m i:Android app漏洞偵查工具,可以一鍵上傳測試出app存在的資訊安全性漏洞、簽名資訊漏洞、源碼安全性漏洞等,根據存在的漏洞可以相應的提出對應的解決方案,強大的安卓開發必備工具之一。
  • Android Test :一個基於JUnit的安卓測試架構。它提供了所有類型的測試。你可以為UI/活動編寫測試案例。功能測試或者黑盒UI測試不要求測試者對應用的實現細節非常瞭解,只需要從使用者角度瞭解執行特定動作或者輸入特定內容會有怎樣的輸出結果。這個方法可以讓開發與測試人員在你的組織裡獨立地工作。
  • Robotium :這是一個安卓自動化測試架構,支援原生應用和混合型應用。通過Robotium你可以輕鬆地編寫功能強大、健壯性好的黑箱測試用例。測試開發人員可以編寫涵蓋各種安卓操作的功能測試、系統測試和驗收測試用例。此外,Robotium還有一個非常活躍的開發人員論壇。
  • 雲端測試:你可以在大量裝置上運行你的測試並獲得所有崩潰和錯誤資訊。相關的工具有:
    • Skyforge
    • BitBar
    • CloudMonkey
    • Perfecto Mobile

他們不是免費的,但確實好用。

5. 構建

這是我最喜歡的部分。我們日複一日、年複一年地工作…..是時候展示自己的產品了。你的應用可能會分付費版、免費版或專屬版。他們會有通用的部分和一些專有邏輯。也許你會有一個為100個客戶定製的應用,不同的包名、顏色、名稱、各種資源和產品風格…..我剛才提到了構建版本嗎?一個開發版、不同階段的測試版、生產測試版、客戶Beta版…..(軟體版本命名)等等。對於不同的應用,有沒有頭疼的問題,如何保安全?在如今這個打包黨泛濫,各種不安全的移動互連網時代,要是不重視安全這塊,簡直就是給自己挖坑!在此,我推薦我的經驗,解決方案就是尋求第三方服務平台的加密技術,既可以達到自己的目的,又節省了自己去研究的時間、精力!

在一天工作結束的時候,秘密就在維護和管理髮布流程。對於這項工作,我只推薦下面幾個構建工具。

  • Ant:我從Ant開始,因為它是Java開發人員最熟悉的一個工具。如果你通過Ant構建一個安卓項目,你會編寫一個包含了所有預設構建任務的build.xml,它會為你完成一些簡單的工作。如果你需要更進階的功能,深呼吸準備好進一步鑽研吧……如果要進行依賴管理,這是更艱巨的任務。
  • Maven:我的一個朋友曾經說過:“Maven管理安卓應用只有Hello World”。Maven從未被Google或者安卓官方支援。社區開發的幾個Maven外掛程式在安卓構建工具的每個新版本上都會崩潰。Maven配置困難,但維護和運行很容易。它的依賴管理做的很好,但是很多安卓函數庫並沒有包含在Maven主倉庫。
  • Gradle:GoogleIO 2013發布了Gradle。它是安卓官方支援的構建工具,也是Android Studio IDE的一部分。Spring和其他幾個業界巨頭也都支援Gradle。我發現Gradle的文法簡單而且易於理解。我成功地構建了一個簡單項目,一個帶有複雜構建邏輯的項目並在24小時內從ant/maven上移植了3個項目到Gradle。Gradle的依賴管理很棒,支援從Maven和Ivy倉庫擷取(pulling)檔案以及多項目構建。我得說:Gradle是新的安卓官方構建工具,相關的安卓外掛程式在不久的將來應該會很快開發並支援,所以繼續關注。

我總是會鼓勵開發人員使用並重用經過檢驗的概念、模式、架構和函數庫。當然,只是針對產品的發布版本。你總是需要學習和實驗新工具和新架構。因為即使是最差勁的忍者也需要磨亮自己的武士刀:)

編程快樂!

安卓開發經驗分享:資源、UI、函數庫、測試、構建一個都不能少

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.