www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] Android Lint是在ADT 16(和 Tools 16)引入的一個(gè)新工具,可以掃描Android 項(xiàng)目源碼中潛在的bug 。它可同時(shí)作為一個(gè)命令行工具,以及集??成在Eclipse(如下所述),和Intell

 Android Lint是在ADT 16(和 Tools 16)引入的一個(gè)新工具,可以掃描Android 項(xiàng)目源碼中潛在的bug 。它可同時(shí)作為一個(gè)命令行工具,以及集??成在Eclipse(如下所述),和IntelliJ(詳細(xì)信息)中。這個(gè)架構(gòu)是有意獨(dú)立于IDE的,因此它有希望與其他的IDE,其他的構(gòu)建工具和持續(xù)集成系統(tǒng)集成。

以下是它進(jìn)行掃描的一些錯(cuò)誤類型的例子:

缺少翻譯(和未使用的翻譯)

布局性能問題(老的layoutopt工具會(huì)用于查找所有這樣的問題,和除此之外更多的問題)

未使用的資源

不一致的數(shù)組大小(當(dāng)在多個(gè)配置中定義數(shù)組)

可訪問性和國(guó)際化問題(硬編碼字符串,缺少contentDescription等)

圖標(biāo)問題 (如丟失密度、 重復(fù)圖標(biāo)、 錯(cuò)誤尺寸等)

可用性問題 (如不在文本字段上指定輸入的類型)

清單錯(cuò)誤 以及其他更多的問題。

請(qǐng)參閱此文檔以了解當(dāng)前 lint 檢查的問題的完整列表。 有關(guān)如何取消顯示(suppress)特定的 lint 警告信息,請(qǐng)參閱取消警告顯示的文檔.

如果你對(duì)編寫自定義的lint 檢查有興趣,可以參閱編寫新的 Lint 檢查和編寫自定義 Lint 規(guī)則。

命令行用法

在 SDK 工具目錄有一個(gè)命令行工具叫做 lint。 如果在你的path上已經(jīng)配置了 SDK 的tools/ 目錄,您可以使用“lint”來(lái)調(diào)用它。只需指向一個(gè)特定的 Android 項(xiàng)目目錄。你也可以指向一個(gè)隨機(jī)的目錄,(如果它不是一個(gè) Android 的項(xiàng)目)將以遞歸方式搜索,并將檢查該目錄下的所有項(xiàng)目。(你還可以指定通過(guò)空格分隔的多個(gè)項(xiàng)目)。

$ lint /src/astrid/

Scanning GreenDroid-GoogleAPIs: ..

Scanning stream: ...

Scanning api: ...........................

Scanning GDCatalog: .......................

Scanning GreenDroid: ...........................................................

Scanning tests: ...

Scanning filters: ....

Scanning tests: .....

Scanning astrid: ....................................................................................................................................................

Scanning simple: .......

api/res/values-ca: Error: Locale ca is missing translations for: sync_SPr_bgwifi_key, sync_SPr_forget_key, sync_SPr_interval_values, sync_SPr_logged_in_prefix... (2 more) [MissingTranslation]

astrid/res/values-ca: Error: Locale ca is missing translations for: DLG_cancel, DLG_dismiss, DLG_ok, EPr_deactivated... (117 more) [MissingTranslation]

api/res/values-cs: Error: Locale cs is missing translations for: sync_SPr_bgwifi_key, sync_SPr_forget_key, sync_SPr_interval_values, sync_SPr_logged_in_prefix... (2 more) [MissingTranslation]

(many lines omitted)

43 errors, 466 warnings

禁用檢查

每種錯(cuò)誤類型的“ID”都顯示在錯(cuò)誤消息后面的括號(hào)中,如上面的“MissingTranslation”。

您可以通過(guò)添加 --disable argument,禁用一個(gè)特定的檢查,或一列的檢查,例如:

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

注意,您也可以列出類別,比如上面的“Usability:Icons”,就是用性類別的圖標(biāo)子類別。

有些檢查默認(rèn)情況下牌禁用狀態(tài)。可以通過(guò)添加--enable標(biāo)志啟用它們。

最后,您可以通過(guò)--check標(biāo)志指定運(yùn)行哪些確切的檢查。這讓你可以在代碼庫(kù)中查找一個(gè)具體的問題,比如:

$ lint --check MissingPrefix /src/astrid/

如果要找出哪個(gè) id 和類別是可用的,請(qǐng)運(yùn)行

$ lint --list

Valid issue categories:

Correctness

Security

Performance

Usability

Usability:Icons

Accessibility

Internationalization

Valid issue id‘s:

ContentDescription: Ensures that image widgets provide a contentDescription

DuplicateIds: Checks for duplicate ids within a single layout

StateListReachable: Looks for unreachable states in a

InefficientWeight: Looks for inefficient weight declarations in LinearLayouts

ScrollViewSize: Checks that ScrollViews use wrap_content in scrolling dimension

MergeRootFrame: Checks whether a root can be replaced with atag

...

使用--show命令加上 id 列表或類別 (或不帶參數(shù)查看全部)可以獲取指定的問題的解釋:

$ lint --show MissingPrefix

MissingPrefix

-------------

Summary: Detect XML attributes not using the Android namespace

Priority: 8 / 10

Severity: Warning

Category: Correctness

Most Android views have attributes in the Android namespace. When

referencing these attributes you *must* include the namespace prefix,

or your attribute will be interpreted by aapt as just a custom

attribute.

HTML 報(bào)表

這個(gè)命令行工具還可以生成HTML報(bào)告。這相比普通的 lint 輸出有一定的優(yōu)勢(shì):

它包含每個(gè)問題相關(guān)的更長(zhǎng)的解釋,并通過(guò)一個(gè)More info 的屬性提供關(guān)于這個(gè)問題的更詳細(xì)信息的鏈接。

它包含有錯(cuò)誤的實(shí)際的源代碼行 (上下各有三行代碼的一個(gè)窗口)。

它可以包含關(guān)聯(lián)到該源代碼文件的鏈接

對(duì)于錯(cuò)誤圖標(biāo),為能夠比較起見,在報(bào)告中會(huì)顯示圖標(biāo)本身 要生成 HTML 報(bào)告,只需要添加--html 文件名 作為參數(shù):[!--empirenews.page--]

$ lint --html /tmp/report.html

默認(rèn)情況下,鏈接到源代碼文件將只使用本地的 file:// 路徑資源。您可以通過(guò) --url 選項(xiàng)把 URL 重新映射向不同的前綴。例如:

$ lint --html /tmp/report.html --url /src/MyProj=http://buildserver/src/MyProj

其他命令行選項(xiàng)

運(yùn)行l(wèi)int --help以獲取可用參數(shù)的相關(guān)信息。

Eclipse 中的用法

注: 此文檔是在 lint 首次發(fā)布時(shí)編寫的。Eclipse 集成已經(jīng)有了顯著的提高。欲了解更多最新的詳細(xì)信息,請(qǐng)參閱新的Eclipse Lint UI(New Eclipse Lint UI), 布局編輯器 Lint 反饋(Layout Editor Lint Feedback) 和 Lint 保存(Lint On Save).

Lint 在 ADT 16及更高的版本上集成。該集成 提供了上述 Lint 命令行版本的幾個(gè)功能:

自動(dòng)修復(fù)許多警告

Lint 可以在各種編輯器操作中自動(dòng)運(yùn)行

屏幕某些錯(cuò)誤類型及特定的錯(cuò)誤實(shí)例

配置問題檢查嚴(yán)重程度

從 lint 視圖直接跳轉(zhuǎn)到問題源碼

Lint 自動(dòng)化

在以下情況時(shí) lint 會(huì)自動(dòng)運(yùn)行:

導(dǎo)出 APK。在這種情況下,會(huì)以特殊模式運(yùn)行 lint,它將只查找致命錯(cuò)誤 (這樣會(huì)更快),并且如果發(fā)現(xiàn)了任何錯(cuò)誤的時(shí)候會(huì)中止導(dǎo)出。你可以在 Lint 選項(xiàng)中關(guān)閉它。

編輯并保存和 XML 文件,例如布局文件或清單文件。在這種情況下,所有適用于給定文件的文件范圍檢查都會(huì)運(yùn)行,并且會(huì)為任何已發(fā)現(xiàn)的問題加上編輯器的標(biāo)記。

使用布局編輯器。每個(gè) UI 操作后,在布局文件上會(huì)運(yùn)行文件范圍檢查 (如各種 layoutopt 規(guī)則),并且結(jié)果將顯示在一個(gè)特別的 lint 窗口(當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí)它可以從顯示在布局編輯器的右上角的錯(cuò)誤標(biāo)記中打開)。

Lint 窗口

要在一個(gè)項(xiàng)目上運(yùn)行 Lint,請(qǐng)?jiān)诎鼮g覽器中選擇項(xiàng)目,然后單擊 Lint 工具欄上的功能(見下面的圖片)。

或者您可以在項(xiàng)目上右擊,在 Android Tools 子菜單中,有一個(gè)“運(yùn)行 Lint”的功能。它將打開一個(gè) Lint 窗口,其中包含各種錯(cuò)誤。選擇一個(gè)錯(cuò)誤將會(huì)在右側(cè)的文本區(qū)顯示相關(guān)聯(lián)的解釋。

如果 lint 視圖上有任何錯(cuò)誤,你可以在錯(cuò)誤上雙擊,來(lái)跳轉(zhuǎn)到相關(guān)聯(lián)的源代碼位置。每個(gè)警告圖標(biāo)將顯示其嚴(yán)重程度,并具對(duì)于已修復(fù)的警告(見下一節(jié))會(huì)有一個(gè)小燈泡重疊。

該窗口也有一個(gè)操作欄(在右上角),它可以讓你

再次運(yùn)行 lint 檢查以刷新結(jié)果 (在刷新期間它會(huì)變成一個(gè) Stop 按鈕,用于中止檢查)

如果有錯(cuò)誤,運(yùn)行與此錯(cuò)誤相關(guān)聯(lián)的修復(fù)

忽略此修復(fù)

刪除警告標(biāo)記

刪除所有的警告標(biāo)記

快速修復(fù)

許多 lint 警告有自動(dòng)修復(fù)功能。例如,各種 layoutopt 修復(fù)的替換提示 (如替換 wrap_content 為 0dp)。

從 lint 視圖中,單擊燈泡來(lái)調(diào)用一個(gè)修復(fù)程序。

從布局編輯器警告摘要中,單擊修復(fù)按鈕來(lái)修復(fù)。

從 XML 代碼編輯器中,調(diào)用快速修復(fù) (Ctrl+1 或Command+1)并選擇與該警告關(guān)聯(lián)的快速修復(fù)。

取消錯(cuò)誤警告的顯示

從編輯器快速修復(fù)菜單中,你也可以選擇

僅忽略此文件中的這個(gè)警告

忽略此項(xiàng)目中的這個(gè)警告

在此期間忽略此警告。

通過(guò)添加注解或?qū)傩院雎源藦V告, 此處有解釋。

(如果你在 quickfix 列表找不到 lint 的修復(fù)操作,請(qǐng)參閱 已知 Bug 章節(jié))

這些選擇都存儲(chǔ)項(xiàng)目里名為lint.xml的文件中,可以通過(guò)命令行工具讀取。因此,您可以在 UI 中忽略警告,并在你的源項(xiàng)目關(guān)聯(lián)的lint.xml文件中進(jìn)行記錄,其他運(yùn)行著的lint將不會(huì)看到你已經(jīng)忽略的警告(大概是因?yàn)橐呀?jīng)手動(dòng)驗(yàn)證了)。

選項(xiàng)

要編輯用于所有項(xiàng)目備用選項(xiàng)的 lint 全局選項(xiàng),可以調(diào)用正常的 Eclipse 選項(xiàng)對(duì)話框,并選擇 Android > Lint Options:

如果你選擇了一個(gè)問題,您可以在右下角的下拉列表中編輯其嚴(yán)重程度。這使您可以把某些問題指定為 Error(即會(huì)在啟用了靠近頂部的對(duì)話框中的選項(xiàng)的情況下中止導(dǎo)出 APK)。

要完全關(guān)閉問題檢查,請(qǐng)選擇“Ignore”作為嚴(yán)重程度。

請(qǐng)注意此操作不會(huì)編輯每個(gè)項(xiàng)目的 lint 設(shè)置

。打開項(xiàng)目設(shè)置對(duì)話框 (右擊該項(xiàng)目),你將在這里找到 Android Lint 的屬性頁(yè)。在選項(xiàng)對(duì)話框中手動(dòng)嚴(yán)重性編輯也會(huì)與取消顯示的錯(cuò)誤一起被記錄在lint.xml文件中,所以您的團(tuán)隊(duì)中的其他人將會(huì)獲得你對(duì)這個(gè)項(xiàng)目編輯的相同的嚴(yán)重性設(shè)置。 子頁(yè) (2): 取消 Lint 警告的顯示(Suppressing Lint Warnings) 編寫一個(gè) Lint 檢查(Writing a Lint Check)

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉