Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android資訊 >> 高效Android開發者必須知道的4個工具

高效Android開發者必須知道的4個工具

編輯:Android資訊

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!

移動app開發是一個漫長而費力的過程。然而,現在的企業總是希望能夠盡快發布app。幸運的是,我們有很多幫助移動開發人員加快工作步伐的工具。

可用的工具集隨著移動平台新版本的出現而不斷更新。是的,我們很難緊跟所有創新的腳步。這同樣適用於通常不被公布的附加功能,盡管它們在常規作業中真的非常有用。

特別是,在創建移動app的時候,每個Android開發者必須解決一系列的問題。例如:

  • 在布局運行到設備之前先檢查它看上去如何
  • 運行代碼檢查工具,如Lint:在編譯之前很難發現代碼中的錯誤
  • 為位圖圖形的所有顯示分辨率和狀態(啟用,禁用,按壓等)提供選擇選項,並將它們導出到不同的數字設備
  • 在調試app構建中的開發階段檢測內存洩漏

有經驗的開發人員可以輕松地處理上述任務。然而,快速而高效解決緊迫問題的方法並不是每個人都知道的。下面讓我們為大家詳細介紹一些高效Android開發中必知的好工具。

1.Tools Attributes

任務:檢查UI元素在開發階段是什麼樣的,避免它們在最終構建中出意外。

解決方案:Tools Attributes

Tools Attributes可以使用額外的命名空間來幫助管理Android Studio,這樣開發框架就不會傳輸運行時版本的屬性到最終構建。

看似Android開發人員只有一種方法來檢查成品布局——在設備上運行它。但是,你還可以使用內置於開發框架的Tools Attributes,在我們的例子中所使用的框架是Android Studio。

Tools Attributes的兩個主要類別:

  • Lint Attributes
  • Design Attributes

作為一個靜態分析工具,Lint被用於很多編程語言和軟件平台。應用Lint Attributes有助於協調Lint工作。

下面是一些具體的Lint Attributes:

tools:ignore

tools:ignore屬性允許你建立Lint工具來禁止XML文件中特定屬性的警告。例如:

tools:ignore="ContentDescription"

從根本上說tools:ignore類似於Java的@SupressWarning注解。

tools:targetApi

tools:targetApi和@TargetApi注解的工作方式相同,它顯示了app將使用的最低API版本。舉個例子,如果你正在應用Android KitKat,並且項目中最低的API版本是21。在這種情況下,你只要在代碼中寫下tools:targetApi以及適合的版本號即可。這可以避免惱人的Lint警告。

tools:locale

這個屬性可以幫助你配置語言,並關閉關於錯誤拼寫的Lint警告。例如,如果你的字符串僅包含西班牙文本,那麼你可以設置“西班牙語為默認”:

<resources xmlns:tools="http://schemas.android.com/tools" tools:locale="es">

這樣,你就將西班牙語設置為默認語言,並且會檢查西班牙語的拼寫。

至於Design Attributes,可以大大便利創建開發框架中的XML布局。

Design Attributes包括:

tools:context

tools:context可用來顯示開發框架選擇什麼活動類來實施布局。使用這個屬性,Android Studio會自動選擇所需的主題用於預覽。

tools:showIn

tools:showIn有助於指出想要哪個布局在預覽中顯示。例如:

tools:showIn="@layout/activity_main"

用來包括布局。通過這樣做,開發人員就告訴了框架在哪個地方inflate什麼特定布局。

tools:listitem, listheader, listfooter

你可以輕松地用特定布局調整組件視圖,以便於分開list、header和footer的元素。例如:

tools:layout

使用tools:layout屬性,可以在運行時屏幕上顯示片段標簽布局:

tools:layout="@android:layout/list_content"

因此,Tools Attributes可以幫助開發人員確保他們總是能夠遠離在最終app構建中顯示臨時文本的風險。

2.Support Annotations

任務:在編譯前檢查代碼中的可能錯誤,並且為了防止錯誤,對代碼做一個全面的審查。

解決方案:Android Support Library

Android Support Library Annotations可以幫助Android Studio提升代碼。它從Android Studio 1.3.0開始有用。對於之前的版本,你需要單獨插入注解。

Android Support Annotations Library允許你在開發下找app中的bug。添加注解到項目,開發人員就可以讓保持純代碼的任務變得更容易。

Support Annotations可分為:

  • Nullness Annotations
  • @Nullable, @NonNull

Nullness Annotations的目的是檢查null。它們可被應用於代碼字段,參數和方法。使用這些完全沒有注解的注解的主要區別在於,Nullness Annotations只定義變量是否具有“null”值。

  • Resource Annotations
  • @StringRes, @DrawableRes, @ColorRes

在編碼時,移動開發者經常引用字符串、圖像等資源。使用Resource Annotations可以強制輸入的文本。例如,通過添加resource annotation @ColorRes,當你試圖輸入顏色代碼,而不是引用resource ID的時候,就會得到框架警告。沒有注解,IDE就不反應,因為代碼以及resource ID的引用的期望類型為int。

  • ColorInt Annotations
  • @ColorInt

@ColorInt是@ColorRes的相反注解。在這種情況下,你定義方法不引用resource ID,而是引用具體的顏色。應用@ColorInt Annotations可以讓你快速找到錯誤,如果方法呼吁顏色資源ID的話。

  • Thread Annotations
  • @UiThread,@MainThread,@WorkerThread,@BinderThread

這些注解的目的是確定方法和特定類型的線程之間的連接。

  • Value Constraint Annotations
  • @Size(min = 5), @IntRange(from = 0, to = 12), @FloatRange(…)

在編碼時使用參數的正常值幾乎是不可能的。要定義可能的值的范圍,你可以添加@IntRange或@FloatRange注解。如果你想限制數據數組、集合或線程中字符串的大小或長度,那麼@Size注解將是一個極好的工具。

  • Permission Annotations
  • @RequestPremission(Manifest.permission.ACCESS_FINE_LOCATION)

使用Permission Annotations,你可以驗證一個權限或一列權限。每當app引用方法時,它會提供確認,並且這列權限對你開放。如果權限不存在,你會在代碼中發現錯誤。

  • CallSuper Annotations
  • @CallSuper

當你需要調用方法的super實現時可以使用這個注解。

  • Enumerated Annotations
  • IntDef和StringDef

這種類型的注釋允許創建用於替換一些枚舉常數值的廣義定義。例如,你有IceCreamFlavourManager類,它包括3個模式:VANILLA(香草),CHOCOLATE(巧克力)和STRAWBERRY(草莓)。使用@IntDef,你就可以創建一個名為@Flavour的新的注釋並定義它的具體數值。

3.Cut&Slice me

任務:接收位圖圖形所有顯示分辨率的選項。

解決辦法:Photoshop插件Cut&Slice me

Cut&Slice me僅允許通過按下一個按鈕來生成位圖圖形的切割。它用於實施所有顯示分辨率和狀態(啟用,禁用,按下)。對於Android,resource會被自動傳送到不同的文件夾(drawable-xxhdpi, drawable-xhdpi,..),對於iOS,正確的名稱前綴會被創建((@2x, @3x)。

我們從2013年開始活躍地使用插件Cut&Slice me。並且它在Android以及iOS開發人員中很受歡迎。

4. LeakCanary

任務:及時檢測內存洩漏以防止OutOfMemoryError崩潰,並降低app內存溢出的風險。

解決方案:庫LeakCanary

LeakCanary有助於在調試構建運行時檢測內存洩漏,並提供舒適的UI用於堆棧跟蹤歷史。

大多數時候,開發人員必須手動查找內存洩漏。首先,他們要揭開OutOfMemoryError崩潰。然後使用不同的設備,他們嘗試重現可導致錯誤的問題。此外,他們希望能夠跟隨會導致洩漏的操作的序列。他們創造了內存轉儲,並詳細研究以發現應該垃圾回收的對象。然後,他們制作從對象到垃圾回收的最短引用路徑,並且最後,他們得到激起內存洩漏的引用。

LeakCanary允許自動化所有的搜索研究,並能很快找到所有的洩漏。還有一個附加優點涉及到發送有關於洩漏的數據到服務器,並排除反射引用和來自於方法的特定活動。

總之,我們可以說,Android開發者有各種不同的工具可用於促進app開發過程。特別是,對於移動開發人員,還存在著一系列被遺忘或甚至是不知道的解決方案,如Tools Attributes,Support Annotations, Cut&Slice me,LeakCanary,以及bug reporting systems。關於最後那個提到的工具,我們將在以後深入探討。選擇什麼工具主要取決於開發人員個人的喜好和具體的項目情況。

如果你願意告訴我你認為必須擁有的工具,那麼非常歡迎在評論中暢所欲言。期待聽到不同的聲音。

祝大家都能代碼整潔,項目成功!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved