天天看點

Android -- ADT變化&aar&Lint

Switch Case

switch case 常用的使用方法:

switch(v.getId()){
	case R.id.btn1:
  		doClick1();
  	break;
}
           

在ADT中的改變

在正常的 Android 項目中,資源R類裡的常量是這樣聲明的:

public static final int main=0x7f030004;
           

然而,到 ADT 14為止,在類庫項目中,他們會被這樣聲明:

public static int main=0x7f030004;
           

原因

在庫項目中這些常量都不是final的。原因很簡單:當多個庫項目整合時,字段的實際值(必須是唯一的)可能會出現碰撞。在ADT 14 之前,所有這樣的字段都是final的,是以導緻所有的庫被使用的時候,主項目必須編譯他們的所有資源和相關 Java 代碼。這樣的性能是很差的,因為它使建構的速度非常慢。它還阻礙了不包含源代碼的庫項目的分發,限制庫項目的使用範圍。

字段不再是 final 的原因是意味着庫jar包可以隻編譯一次,并且能直接在其他項目中複用。以及允許分發庫項目的二進制版本(将在 r15出現),這使得建構更快。

影響

以下代碼不能再編譯通過:

switch(v.getId()){
	case R.id.btn1:
  		doClick1();
  	break;
}
           

隻能換成:

if(v.getId() == R.id.btn1){
	doClick1();
}
//else if(...){....}else{...}
           
Android -- ADT變化&aar&Lint

我是天王蓋地虎的分割線

aar

“aar”包是 Android 的類庫項目的二進制發行包。

檔案擴充名是.aar,maven 項目類型應該也是aar,但檔案本身是帶有以下各項的 zip 檔案:

  • /AndroidManifest.xml (mandatory)
  • /classes.jar (mandatory)
  • /res/ (mandatory)
  • /R.txt (mandatory)
  • /assets/ (optional)
  • /libs/.jar (optional)
  • /jni//.so (optional)
  • /proguard.txt (optional)
  • /lint.jar (optional)

    這些條目是直接位 zip 檔案根目錄的。

R.txt 檔案是aapt帶參數--output-text-symbols的輸出結果。

Lint

Android lint工具是一個靜态代碼分析工具,檢查你的Android項目源檔案潛在的bug,并優化改進,確定正确性、安全性、性能、可用性、可通路性和國際化。

概述

Android SDK提供了一個代碼掃描工具,稱為lint。可以幫助您輕松地識别并糾正問題與結構品質的代碼,不必執行應用程式或編寫任何測試用例。每個問題檢測到該工具報告的一個描述消息和嚴重性級别,您可以快速地優先考慮的關鍵改進。您還可以配置一個問題的嚴重性級别,忽略不相關的問題,或提高的嚴重程度。這個工具有一個指令行接口,是以您可以很容易地內建到您的自動化測試過程。

Lint 工具可以檢查你android工程潛在的bug和優化改進,以確定正确性、安全性、性能、可用性、可通路性和國際性。您可以從指令行運作lint,或eclipse中運作lint。

lint優點

除了測試Android應用程式滿足其功能需求,重要的是要確定代碼沒有結構性問題。代碼結構簡陋的可靠性和效率的影響你的Android應用程式,使您的代碼很難維護。例如,如果XML資源檔案包含未使用的名稱空間,這占用空間并産生不必要的處理。其他的結構性問題,比如使用棄用元素或API調用所不支援的目标API版本,可能會導緻代碼未能正确地運作。

Android lint是在ADT 16提供的新工具,它是一個代碼掃描工具,能夠幫助我們識别代碼結構存在的問題。主要包括:

  • 布局性能(以前是 layoutopt工具,可以解決無用布局、嵌套太多、布局太多)
  • 未使用到資源
  • 不一緻的數組大小
  • 國際化問題(寫死)
  • 圖示的問題(重複的圖示,錯誤的大小)
  • 可用性問題(如不指定的文本字段的輸入型)
  • manifest檔案的錯誤

指令行用法

lint是指令工具,在SDK 的tools/ 目錄下:

$ lint /src/

可以通過添加 --disable argument,禁用一個特定的檢查,或一列的檢查,例如:

$ lint --disable MissingTranslation,UnusedIds,Usability:Icons /src/

可以通過--check标志指定運作哪些确切的檢查。這讓你可以在代碼庫中查找一個具體的問題,比如:

$ lint --check MissingPrefix /src/

使用--show指令加上 id 清單或類别 (或不帶參數檢視全部)可以擷取指定的問題的解釋:

$ lint --show MissingPrefix

要生成 HTML 報告,隻需要添加--html* 檔案名* 作為參數:

$ lint --html /tmp/report.html

運作lint --help以擷取可用參數的相關資訊。

更多

http://developer.android.com/tools/help/lint.html

作者:我愛物聯網

出處:http://yydcdut.cnblogs.com/

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。