久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

理解與配置Android studio中的gradle

 quasiceo 2018-06-21

使用gradle構(gòu)建android應(yīng)用時(shí),你總是需要這樣一個(gè)文件:build.gradle,。你應(yīng)該已經(jīng)看過(guò)這個(gè)文件了,,如果沒(méi)有看過(guò)的話,你現(xiàn)在就可以看一下,,它沒(méi)有多少內(nèi)容,。它的簡(jiǎn)潔性得益于它提供了很多對(duì)設(shè)置和屬性的默認(rèn)值。gradle是基于groovy語(yǔ)言的,,不過(guò)如果只是用它構(gòu)建普通的工程的話,,是可以不去學(xué)groovy的,如果想深入的做一下自定義的構(gòu)建插件,,可以考慮學(xué)一下groovy,,因?yàn)樗腔趈ava的,所以你有java基礎(chǔ)的話,,學(xué)習(xí)不會(huì)很難,。

這篇博客旨讓任何一個(gè)人能看懂a(chǎn)ndroid studio的gradle scripts,主要會(huì)從gradle的簡(jiǎn)單語(yǔ)法,,gradle scripts的腳本結(jié)構(gòu),,每一個(gè)腳本(build.gradle,settings.gradle)的作用,腳本中每一項(xiàng)的意義等方面說(shuō)明gradle scripts.如果想了解如何詳細(xì)配置gradle,比如實(shí)現(xiàn)一個(gè)工程中,,使用同一部分java代碼,,不同的資源res,一次生成多個(gè)不同渠道商的apk,可以看下我的這篇博客,它對(duì)如何配置gradle有較細(xì)致的介紹

1.projects , tasks and action

    是的,,工程,,任務(wù)和行為。一個(gè)項(xiàng)目至少要有一個(gè)工程,,一個(gè)工程至少要有一個(gè)任務(wù),,一個(gè)任務(wù)由一些action組成。如果project比較抽象的話,,可以這么理解,,一個(gè)build.gradle對(duì)應(yīng)一個(gè)project,而action就好像java中的方法,,他就是一段代碼的集合,。在工程構(gòu)建的過(guò)程中,gradle會(huì)根據(jù)build.gradle中的配置信息生成相應(yīng)的project和task,。

    Project實(shí)質(zhì)上是一系列task的集合,,每一個(gè)task執(zhí)行一些工作,,比如編譯類(lèi)文件,解壓縮文件,,刪除文件等等,。

 1.1構(gòu)建過(guò)程

    1.1.1初始化階段。首先會(huì)創(chuàng)建一個(gè)Project對(duì)象,,然后執(zhí)行build.gradle配置這個(gè)對(duì)象,。如果一個(gè)工程中有多個(gè)module,那么意味著會(huì)有多個(gè)Project,也就需要多個(gè)build.gradle.

    1.1.2配置階段。這個(gè)階段,,配置腳本會(huì)被執(zhí)行,,執(zhí)行的過(guò)程中,新的task會(huì)被創(chuàng)建并且配置給Project對(duì)象,。

    1.1.3執(zhí)行階段,。這個(gè)階段,配置階段創(chuàng)建的task會(huì)被執(zhí)行,,執(zhí)行的順序取決于啟動(dòng)腳本時(shí)傳入的參數(shù)和當(dāng)前目錄,。

 1.2 task

    task標(biāo)示一個(gè)邏輯上的執(zhí)行單元,你可能已經(jīng)用過(guò)它很多次了,,不知道你有沒(méi)有意識(shí)到,。當(dāng)你當(dāng)你重新編譯工程的時(shí)候,會(huì)用到一個(gè)叫做build 的task,,當(dāng)你清理工程的時(shí)候,會(huì)用到一個(gè)叫做clean 的task(后面會(huì)講到),,gradle 已經(jīng)為你準(zhǔn)備了很多的task,可以使用 gradle tasks 來(lái)查看,,比如,這里列出來(lái)一些:

  1. assemble - Assembles all variants of all applications and secondary packages.  
  2. build - Assembles and tests this project.  
  3. buildDependents - Assembles and tests this project and all projects that depend on it.  
  4. buildNeeded - Assembles and tests this project and all projects it depends on.  
  5. clean - Deletes the build directory.  

此外,,你還可以自己聲明一個(gè)task,比如像這樣:

  1. task haha {  
  2.     println "haha"  
  3. }  
然后使用gradle haha命令,,就會(huì)打印出haha。這里,,haha這個(gè)任務(wù)被執(zhí)行了,,所以說(shuō)task就是個(gè)執(zhí)行單元。你還可以使用如下方法來(lái)定義task:

  1. task hello << {  
  2.     println "hello world"  
  3. }  
這和前者是有區(qū)別的,“<<”意思是給hello這個(gè)task添加一些action,其實(shí)就是調(diào)用了task的doLast方法,,所以,,它和以下代碼時(shí)等價(jià)的:

  1. task hello {  
  2.     doLast{  
  3.         println "hello world" 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多