當前位置:首頁 » 安卓系統 » androidlint

androidlint

發布時間: 2024-01-19 00:42:30

A. Android-Lint 檢查有關問題列表怎麼解決

定製Android-Lint檢查問題的現有規則
對Android-Lint發現的問題進行處理。可定製項目中採用的規則。
Android-Lint檢查問題列表
Android SDK Tools / ADT 20.0.3中所支持的默認檢查的所有問題。
有英文版本和中文版本。英文版本從Android-Lint中直接導出;中文版本還不完整,對每一條的解釋會逐步完善。

Android SDK自帶的APIDemo用Android-Lint檢查一下,也還報了很多的問題。

一、忽略XML文件中的問題
1.1 MissingPrefix問題
Layout的device_admin_sample.xml文件中定義了下面的Button

[html] view plainprint?

<Button
android:id="@+id/set_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android_layout_gravity="east|center_vertical"
android:text="@string/set_password">
</Button>
<Button
android:id="@+id/set_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android_layout_gravity="east|center_vertical"
android:text="@string/set_password">
</Button>執行Android-Lint就會報MissingPrefix警告:

1.2 解決XML中的問題
可以在Lint Warnings View中解決(圖中圖標從左至右順序)

Suppress this error with an annotation/attribute
點擊該圖標之後,直接更改了device_admin_sample.xml文件:

[html] view plainprint?

<Button
android:id="@+id/set_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android_layout_gravity="east|center_vertical"
android:text="@string/set_password"
tools:ignore="MissingPrefix" >
</Button>
<Button
android:id="@+id/set_password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android_layout_gravity="east|center_vertical"
android:text="@string/set_password"
tools:ignore="MissingPrefix" >
</Button>XML文件中直接增加了tools:ignore="MissingPrefix"。

Ignore in this file
在本文件中忽略,而在別的文件中仍然出現。

Ignore in this project
當前項目中都忽略該Issue。

執行之後,在本項目根目錄下創建了lint.xml的文件,內容為:

[html] view plainprint?

<?xml version="1.0"encoding="UTF-8"?>
<lint>
<issue id="MissingPrefix"severity="ignore" />
</lint>
<?xml version="1.0"encoding="UTF-8"?>
<lint>
<issue id="MissingPrefix"severity="ignore" />
</lint> Always ignore
所有項目中都忽略。

[TIPS#1] Ignore in this project和 Always ignore操作,同執行Lint Warnings View中的最後一個Icon -- Options…,然後配置某一個項目或者全局設置中該Issue的Severity為ignore。

[TIPS#2] Eclipse中的實現有BUG,有時設置了這些Ignore操作,即便立即執行檢查也不一定生效,需要重啟Eclipse。

二、解決Java代碼中的問題
2.1 NewAPI問題
APIDemo中指明了支持最低API-1,但是代碼里卻用了API-3的介面,執行Lint會報錯:

2.2 解決問題
把游標放在報錯代碼處,會自動提示如何快速fix。

1. 前面紅色圓角框內是用Javaannotation方式解決(API-16之後才有):@SuppressLint『<IssueId>』或@TargetAPI(<api>)

@SuppressLint 『<IssueId>』用來忽略<IssueId>。適用范圍在所調用的方法處或整個類中。

@TargetAPI(<api>)用來指示API用給定的<api>,而不是項目中指定的。適用范圍在所調用的方法處或整個類中。

2. 後麵粉紅色圓角框內同XML中解決方式——在本文件/ 本項目/ 全局范圍內忽略檢查。

三、命令行下解決問題
從上面Eclipse環境下的解決問題的方式知道,可以指定文件來定製Lint檢查Issue的處理方式。

下面是一個lint.xml的例子:

[html] view plainprint?

<?xml version="1.0" encoding="UTF-8"?>
<lint>
<!-- Disable the given check in thisproject -->
<issue id="IconMissingDensityFolder" severity="ignore" />

<!-- Ignore the ObsoleteLayoutParamissue in the given files -->
<issue id="ObsoleteLayoutParam">
<ignore path="res/layout/activation.xml" />
<ignore path="res/layout-xlarge/activation.xml" />
</issue>

<!-- Ignore the UselessLeaf issue inthe given file -->
<issue id="UselessLeaf">
<ignore path="res/layout/main.xml" />
</issue>

<!-- Change the severity of hardcodedstrings to "error" -->
<issue id="HardcodedText" severity="error" />
</lint>
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<!-- Disable the given check in thisproject -->
<issue id="IconMissingDensityFolder" severity="ignore" />

<!-- Ignore the ObsoleteLayoutParamissue in the given files -->
<issue id="ObsoleteLayoutParam">
<ignore path="res/layout/activation.xml" />
<ignore path="res/layout-xlarge/activation.xml" />
</issue>

<!-- Ignore the UselessLeaf issue inthe given file -->
<issue id="UselessLeaf">
<ignore path="res/layout/main.xml" />
</issue>

<!-- Change the severity of hardcodedstrings to "error" -->
<issue id="HardcodedText" severity="error" />
</lint>Lint.xml中關鍵是對issue(用id指定)的severity進行指定,並且可以指定該issue作用於指定的文件還是當前項目。

把lint.xml放在項目的根目錄中,命令行執行lint時候,lint就會用lint.xml中的規則。

另外,執行lint時還可以用參數--config<fileName>指定一個全局的配置用於所有的項目。當項目中已有lint.xml,則對於某個issue而言,在lint.xml中沒有對該issue特別定製的情況下,--config指定的文件<fileName>中的該issue的定製才起作用。

四、定製Lint檢查的規則
Android-Lint有默認的檢查和報錯的規則,但通過上面的分析知道,可以在Eclipse或者命令行下改變這種規則,從而可以定製Lint檢查的規則。

推薦定製的路線:

在Eclipse中基於現有的問題,逐個分析並解決,然後我們就能得到一個Eclipse自動生成的lint.xml這個定製文件;
然後這個lint.xml用於Eclipse和/或命令行下進行後續的檢查;
後續發現的問題再進一步處理,逐步完善lint.xml這個定製文件。
當然,如果有足夠的時間,完全也可以Review一遍Android-Lint已經支持的所有的Issue,對他們逐個進行定製。對這些Issue的 Review,也能加深對Android設計中問題解決和性能優化方法的理解。

B. 吉利智上博越androidlink連不上怎麼辦

  1. 插上數據線,然後設置里--->開發者選項-->USB鏈接;

  2. 用carplay或者Glink可以互聯,車機本身有提示;

  3. 多看看說明書,不行就4s店裡問問。

C. Android Studio 2.3 正式版發布,看看有什麼新功能

Android Studio 2.3 正式版發布了!來看看我們的勞動工具 2.3 有什麼新功能吧!

編譯

Instant Run

工具欄上增加了一個「閃電」的標志,原來的「Run」按鈕(Shift+F10)會保持全量編譯。新增的「閃電」按鈕(Gradle 需要升級到 2.3.0)才是 Instant Run,會在程序保持運行的情況下替換代碼。

Instant Run 的底層代碼有很大的改進,消除了的啟動延時。

模擬器支持和主機操作系統共享粘貼板,也就是可以互相復制粘貼了。需要使用 x86 Google API,並且 API 19(Android 4.4)以上的模擬器。

個人小結

Android Stuido 2.3 帶來的改進還是挺多的。

首先,編譯速度又快了一些,我把關掉的 Instant Run 又打開了(咦?我為什麼要說又)。

作為習慣寫xm代碼的碼農來說,估計還沒怎麼用過 ConstraintLayout。谷歌從 16 年開發者大會之後就一直在推 ConstraintLayout,這次連默認模板裡面的布局都改成了 ConstraintLayout 了,感覺是時候要了解一下了。

關於 WebP 格式,官方說可以減少 25% 以上的容量。我隨便找了一張圖片轉,居然只有原來 5% 的大小。如果項目裡面用到的圖片比較多,可以在很大程度上減小 apk 的大小。

說實話,之前沒怎麼用過 Lint 檢查代碼。一旦用上了,作為一名不允許有一根黃線存在的強迫症患者,感覺又多了一些工作量。



熱點內容
廣數編程p 發布:2024-11-28 20:38:37 瀏覽:666
sql2008vs2010 發布:2024-11-28 20:38:34 瀏覽:374
編譯plc程序 發布:2024-11-28 20:28:49 瀏覽:917
母嬰源碼 發布:2024-11-28 20:23:13 瀏覽:300
ftp標題下劃線怎麼添加 發布:2024-11-28 20:23:09 瀏覽:794
電腦金鏟鏟之戰伺服器已滿怎麼辦 發布:2024-11-28 20:09:58 瀏覽:619
腳本六要素 發布:2024-11-28 19:41:07 瀏覽:986
linuxoralce 發布:2024-11-28 19:39:51 瀏覽:608
4k存儲量 發布:2024-11-28 19:39:36 瀏覽:825
php動態鏈接 發布:2024-11-28 19:34:16 瀏覽:151