欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Android官方技術(shù)文檔翻譯——Gradle插件用戶指南(6) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 技術(shù)分享 >

Android官方技術(shù)文檔翻譯——Gradle插件用戶指南(6)

發(fā)表時(shí)間:2020-10-19

發(fā)布人:葵宇科技

瀏覽次數(shù):63


沒想到翻譯這篇《Gradle 插件用戶指南》拖了差不多一個(gè)月,還跨年了。不過還好,在2號(hào)時(shí)終于一口氣把剩下的給翻譯完了(其實(shí)那天剩下的也就不到一章)。
今天先發(fā)一下第六章,明天再發(fā)第七章。
本文譯自Android官方技巧文檔《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。
翻譯不易,轉(zhuǎn)載請(qǐng)注明CSDN博客上的出處:
http://blog.csdn.net/maosidiaoxian/article/details/42386877
前三章見《Android官方技巧文檔翻譯——Gradle 插件用戶指南(1-3)》。
第四┞仿見《Android官方技巧文檔翻譯——Gradle 插件用戶指南(4)》。
第五章見《Android官方技巧文檔翻譯——Gradle 插件用戶指南(5)》。
翻譯工作耗時(shí)操心,如不雅你認(rèn)為本文翻譯得還OK,請(qǐng)點(diǎn)擊文末的“頂”,我在精力上會(huì)倍受鼓勵(lì)的,感謝。翻譯如有錯(cuò)訛,敬請(qǐng)斧正。

測(cè)試


構(gòu)建一個(gè)測(cè)試應(yīng)用法度榜樣已經(jīng)集成到應(yīng)用法度榜樣項(xiàng)目中了。所以已經(jīng)沒有須要再去創(chuàng)建一個(gè)零丁的測(cè)試項(xiàng)目。

基本常識(shí)和設(shè)備


正如前面所說起,在main sourceSet旁邊的是androidTest sourceSet,默認(rèn)情況下,它位于src /androidTest/
大年夜這里的 sourceSet 構(gòu)建出來的是一個(gè)測(cè)試的apk,它可以安排到設(shè)備上,應(yīng)用 Android 的測(cè)試框架去測(cè)試應(yīng)用法度榜樣。它可以包含單位測(cè)試、 instrumentation 測(cè)試和后來的 uiautomator 測(cè)試。這個(gè)
SourceSet 不該該包含 AndroidManifest.xml ,因?yàn)樗菚?huì)主動(dòng)生成的。
下面是可以用來設(shè)備測(cè)試應(yīng)用法度榜樣的幾個(gè)值:
  • testPackageName
  • testInstrumentationRunner

  • testHandleProfiling

  • testFunctionalTest
正如前面所看到的,它們?cè)?B>defaultConfig對(duì)象中設(shè)備:

android {
    defaultConfig {
        testPackageName "com.test.foo"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
        testHandleProfiling true
        testFunctionalTest true
    }
}

在測(cè)試法度榜樣里的manifest里的instrumentation節(jié)點(diǎn)中,targetPackage屬性的值會(huì)主動(dòng)設(shè)為被測(cè)試的應(yīng)用法度榜樣的包名稱,即使它經(jīng)由過程defaultConfig或Build Type對(duì)象自定義過。這是manifest 主動(dòng)生成的原因之一。
此外,sourceSet可以設(shè)備本身的依附。
默認(rèn)情況下,應(yīng)用法度榜樣和它本身的依附都邑被添加到測(cè)試應(yīng)用法度榜樣的classpath中,然則也可以經(jīng)由過程以下來擴(kuò)大

dependencies {
    androidTestCompile 'com.google.guava:guava:11.0.2'
}

這個(gè)測(cè)試法度榜樣是由assembleTest義務(wù)構(gòu)建的。它不是main里的assemble義務(wù)的依附項(xiàng),當(dāng)設(shè)置測(cè)試運(yùn)行時(shí)它不會(huì)被主動(dòng)調(diào)用。
今朝只有一種Build Type會(huì)進(jìn)行測(cè)試。默認(rèn)情況下是debugBuild Type,但它可以被從新設(shè)備: 

android {
    ...
    testBuildType "staging"
}

運(yùn)行測(cè)試


正如前面提到的,經(jīng)由過程錨義務(wù) connectedCheck運(yùn)行的檢查,須要一個(gè)已連接的設(shè)備。
它依附于義務(wù)androidTest,是以將運(yùn)行 androidTest。該義務(wù)履行以下操作:
  • 確保應(yīng)用法度榜樣和測(cè)試應(yīng)用法度榜樣都被構(gòu)建 (依附于 assembleDebug 和 assembleTest)
  • 安裝這兩個(gè)應(yīng)用法度榜樣
  • 運(yùn)行測(cè)試
  • 卸載這兩個(gè)應(yīng)用法度榜樣。
如不雅連接了多個(gè)設(shè)備,所有的測(cè)試都邑并交運(yùn)行在所有連接的設(shè)備上。如不雅任何一個(gè)設(shè)備的個(gè)一一項(xiàng)測(cè)試掉敗,那么全部構(gòu)定都將掉敗。
所有測(cè)試結(jié)不雅都邑保存為 XML 文件,路徑為 
build/androidTest-results

(這類似于 jUnit 按期運(yùn)行的結(jié)不雅保存在 build/text-result 下面)
它可以經(jīng)由過程以下方法來設(shè)備 
設(shè)備

android {
    ...
    testOptions {
        resultsDir = "$project.buildDir/foo/results"
    }
}

Android.testOptions.resultsDir的值精曉過Project.file(String) 獲得

測(cè)試 Android Libraries


測(cè)試 Android Library項(xiàng)目與測(cè)試應(yīng)用法度榜樣項(xiàng)目標(biāo)方法完全一樣。
獨(dú)一的差別是全部庫 (和它的依附項(xiàng)) 會(huì)主動(dòng)作為L(zhǎng)ibrary依附添加到測(cè)試應(yīng)用法度榜樣中。結(jié)不雅就是測(cè)試 APK 不只包含其本身的代碼,還包含測(cè)試庫以及測(cè)試庫的所有依附項(xiàng)。
這個(gè)Library的manifest 會(huì)歸并到測(cè)試應(yīng)用法度榜樣的manifest中(如引用此Library的任何項(xiàng)目)。
AndroidTest義務(wù)改為僅安裝 (以及卸載)測(cè)試 APK (因?yàn)闆]有其他的 APK 要安裝)
其他的都是雷同的。

測(cè)試申報(bào)


當(dāng)運(yùn)行單位測(cè)試時(shí),Gradle 會(huì)輸出 HTML 申報(bào),以便利查看結(jié)不雅。
Android 插件在此基本上擴(kuò)大了 HTML 申報(bào),它聚合了所有連接的設(shè)備的測(cè)試結(jié)不雅。

單個(gè)項(xiàng)目標(biāo)申報(bào)


這個(gè)測(cè)試申報(bào)的項(xiàng)目會(huì)在運(yùn)行測(cè)試時(shí)主動(dòng)生成。它的默認(rèn)地位是
build/reports/androidTests

它類似于 jUnit 申報(bào)的地位build/reports/tests,或其他平日位于build/reports/<plugin>/的申報(bào)。
這個(gè)地位可以經(jīng)由過程以下方法自定義 

android {
    ...
    testOptions {
        reportDir = "$project.buildDir/foo/report"
    }
}

該申報(bào)將聚合在不合的設(shè)備運(yùn)行的測(cè)試。

多項(xiàng)目申報(bào)


在一個(gè)設(shè)置了一個(gè)或多個(gè)application和 library 項(xiàng)目標(biāo)多項(xiàng)目中,當(dāng)同時(shí)運(yùn)行所有的測(cè)試,為所有測(cè)試生成單個(gè)申報(bào)可能是異常有效的。
要做到這一點(diǎn),須要應(yīng)用同一個(gè)文件中的另一個(gè)插件。這個(gè)插件可以如下設(shè)備: 

buildscript {
    repositories {
        mavenCentral()
    }


    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.6'
    }
}
apply plugin: 'android-reporting'

這個(gè)插件應(yīng)當(dāng)在根項(xiàng)目中設(shè)備應(yīng)用,即在 settings.gradle同級(jí)目次的build.gradle中。
然后在根文件夾中,下面的敕令就可以運(yùn)行所有的測(cè)試并聚合測(cè)試申報(bào): 
gradle deviceCheck mergeAndroidReports --continue

注: --continue選項(xiàng)確保所有子項(xiàng)目標(biāo)測(cè)試都邑被運(yùn)行,即使個(gè)中的一個(gè)子項(xiàng)目標(biāo)測(cè)試掉敗了。如不雅不加上這個(gè)選項(xiàng),第一個(gè)掉敗的測(cè)試將會(huì)中斷所有測(cè)試的運(yùn)行,這可能導(dǎo)致有些項(xiàng)目還沒有履行它們的測(cè)試。

Lint 支撐


大年夜 0.7.0 版本起,您可認(rèn)為一個(gè)指定的variant或所有的variants 運(yùn)行l(wèi)int,在這種情況下,它會(huì)生成一個(gè)申報(bào),描述每一個(gè)給定的問題都存在于哪些指定的variants 。
您可以經(jīng)由過程添加以下的一個(gè) lintOptions 節(jié)點(diǎn)對(duì)lint進(jìn)行設(shè)備。平日,您只須要指定個(gè)中的幾個(gè) ;以下列出了所有可用的選項(xiàng)。
android {
    lintOptions {

        // 設(shè)置為 true時(shí)lint將不申報(bào)分析的進(jìn)度
        quiet true
        // 如不雅為 true,則當(dāng)lint發(fā)明缺點(diǎn)時(shí)停止 gradle構(gòu)建
        abortOnError false
        // 如不雅為 true,則只申報(bào)缺點(diǎn)
        ignoreWarnings true
        // 如不雅為 true,則當(dāng)出缺點(diǎn)時(shí)會(huì)顯示文件的全路徑或絕對(duì)路徑 (默認(rèn)情況下為true)
        //absolutePaths true
        // 如不雅為 true,則檢查所有的問題,包含默認(rèn)不檢盤考題
        checkAllWarnings true
        // 如不雅為 true,則將所有警告視為缺點(diǎn)
        warningsAsErrors true
        // 不檢查給定的問題id
        disable 'TypographyFractions','TypographyQuotes'
        // 檢查給定的問題 id
        enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
        // * 僅 * 檢查給定的問題 id
        check 'NewApi', 'InlinedApi'
        // 如不雅為true,則在缺點(diǎn)申報(bào)的輸出中不包含源代碼行
        noLines true
        // 如不雅為 true,則對(duì)一個(gè)缺點(diǎn)的問題顯示它地點(diǎn)的所有處所,而不會(huì)截短列表,等等。
        showAll true
        // 重置 lint 設(shè)備(應(yīng)用默認(rèn)的嚴(yán)重性等設(shè)置)。
        lintConfig file("default-lint.xml")
        // 如不雅為 true,生成一個(gè)問題的純文本申報(bào)(默認(rèn)為false)
        textReport true
        // 設(shè)備寫入輸出結(jié)不雅的地位;它可所以一個(gè)文件或 “stdout”(標(biāo)準(zhǔn)輸出)
        textOutput 'stdout'
        // 如不雅為真,會(huì)生成一個(gè)XML申報(bào),以給Jenkins之類的應(yīng)用
        xmlReport false
        // 用于寫入申報(bào)的文件(如不雅不指定,默認(rèn)為lint-results.xml)
        xmlOutput file("lint-report.xml")
        // 如不雅為真,會(huì)生成一個(gè)HTML申報(bào)(包含問題的解釋,存在此問題的源碼,等等)
        htmlReport true
        // 寫入申報(bào)的路徑,它是可選的(默認(rèn)為構(gòu)建目次下的 lint-results.html )
        htmlOutput file("lint-report.html")
   // 設(shè)置為 true, 將使所有release 構(gòu)定都以issus的嚴(yán)重性級(jí)別為fatal(severity=false)的設(shè)置來運(yùn)行l(wèi)int
   // 并且,如不雅發(fā)清楚明了致命(fatal)的問題,將會(huì)中斷構(gòu)建(由膳綾擎提到的 abortOnError 控制)
   checkReleaseBuilds true

        // 設(shè)置給定問題的嚴(yán)重級(jí)別(severity)為fatal (這意味著他們將會(huì)
        // 在release構(gòu)建的時(shí)代檢查 (即使 lint 要檢查的問題沒有包含在代碼中)
        fatal 'NewApi', 'InlineApi'
        // 設(shè)置給定問題的嚴(yán)重級(jí)別為error
        error 'Wakelock', 'TextViewEdits'
        // 設(shè)置給定問題的嚴(yán)重級(jí)別為warning
        warning 'ResourceAsColor'
        // 設(shè)置給定問題的嚴(yán)重級(jí)別(severity)為ignore (和不檢查這個(gè)問題一樣)
        ignore 'TypographyQuotes'
    }
}

相關(guān)案例查看更多