精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Gradle for Android系列:為什么Gradle這么火

移動開發 Android
這篇文章對比 Ant 和 Maven 介紹了 Gradle 的一些優點和基礎概念,在理解 Gradle 為什么會被使用、它有什么優點之后,有助于我們后續深入學習 Gradle 的使用。

[[180044]]

Android Studio 占領市場后,構建工具 Gradle 的地位無人能比,我們有必要學習、使用它來為我們創造價值。

在深入學習 Gradle 之前,我們有必要了解下它為什么這么流行。

Android 應用的構建過程

Android 應用程序的構建過程非常復雜,如圖所示: 

 

 

Android 應用程序的構建過程非常復雜 

主要有以下幾步:

  1. 主要的資源文件(layout, values 等)都被 aapt 編譯,并且在一個 R 文件中引用
  2. Java 代碼被 Java 編譯器編譯成 JVM 字節碼(.class 文件)
  3. JVM 字節碼再被 dex 工具轉換成 dalvik 字節碼(.dex 文件)
  4. 然后這些 .dex 文件、編譯過的資源文件和其他資源文件(比如圖片)會被打包成一個 apk
  5. apk 文件在安裝前會被 debug/release 的 key 文件簽名
  6. 安裝到設備

幾個注意點

  1. 上面的步驟中***步注意是主要的資源文件,有些特別的資源文件就不會被編譯,比如 assets 目錄下的文件,raw 目錄下的文件還有圖片,都不會被編譯。只不過 raw 下的文件會在 R 文件里生成 id
  2. 如果對 apk 正式簽名,還需要使用 zipalign 工具對 apk 進行對齊操作,這樣做的好處是當應用運行時會減少內存的開銷

通過上面的介紹可以看到,這么復雜的構建過程如果需要人手動去完成未免太過殘忍,于是有了各種的構建工具。

Android 構建的舊愛:Ant, Maven

在 Gradle 之前被廣泛使用的是 Apache Ant 和 Maven。

Ant 

 

 

[[180045]] 

Ant 2000 年發布,很快成為 Java 項目***的構建工具。

Ant 的優點就是:

  • 簡單、易學,不需要什么特殊準備就能上手
  • 基于過程式編程思想使得構建非常靈活
  • 后來還能支持插件。

不足之處就是使用 XML 作為腳本配置格式,除非是很小的項目,否則它的 XML 文件很快就大得無法管理。

Maven 

 

 

Maven 

Maven 發布于 2004 年。目的是解決使用 Ant 所帶來的一些問題。

Maven 也是使用 XML 作為構建配置的文件格式,不過文件結構卻有了巨大的變化:

  • Ant 需要開發者將執行 task 所需的全部命令都列出來
  • 而 Maven 依靠約定并提供現成的可調用的目標

不僅如此,Maven 更重要的一個進步是具備從網絡上自動下載依賴的能力(當然 Ant 后來通過 Ivy 也具備了這個功能),這革命性地改變了我們開發軟件的方式。

Maven 的缺點是:

  • 依賴管理不能很好地處理相同庫文件不同版本之間的沖突(Ivy在這方面更好一些)
  • XML 作為配置文件的格式有嚴格的結構層次和標準,定制化目標很困難

Maven 主要解決了依賴管理的問題,然而使用 XML 的錯誤使它重蹈覆轍,實際上用 Maven 很難寫出復雜、定制化的構建腳本,在大型項目中,它經常什么“特別的”事還沒干就有幾百行代碼,甚至不如 Ant。

前輩們在反省前兩種構建工具的錯誤之后,提出了 DSL (Domain Special Language, 領域專用語言)的概念,目標是設計一套能夠解決特定領域問題的語言。在構建這方面,DSL 的一個成功案例就是 Gradle。

Android 構建的新歡:Gradle

 

 

Gradle

 

2012 年發布的 Gradle 深刻吸取前面幾位前輩的經驗和教訓,集大家之所成,做了很多改進。

Gradle 有約定優于配置的原則,即為設置和屬性提供默認值,這使得它比 Ant 或者 Maven 更容易上手。

Gradle 構建腳本不再使用 xml ,而是使用基于 Groovy 的 DSL 進行書寫(Groovy 是一種基于 Java 虛擬機的動態語言,因此 Android 開發者看著會很熟悉),從而使得構建腳本比用 Ant 和 Maven 寫的更清晰、簡潔,下面是實現同樣目標的 Maven 代碼和 Gradle 代碼對比: 

 

 

Maven 代碼和 Gradle 代碼對比 

Gradle 既有 Ant 的強大和靈活,又有 Maven 的依賴管理,支持插件且易于使用。因此一推出就獲得廣泛關注,2013 年被 Google 選為 Android Studio 的默認構建工具。

Gradle 設計的方式使得它可以很容易地擴展構建和插入到現有的構建過程中,Google 推廣 Gradle 和 Android Studio 時,目標是讓代碼復用、構建 variant、配置和定制構建過程變得更加簡單。

有人可能擔心是否需要專門去學習新語言 Groovy,《Gradle for Android》書中專門提到:

Groovy 代碼非常易讀,如果你學習過 Java,那么學習 Groovy 的曲線不會陡峭。 如果你想構建自己的任務和插件,那么對 Groovy 有更深層次的理解尤為重要。 不過因為 Groovy 是基于 Java 虛擬機的,所以你完全可以用 Java 或者其他基于 Java 虛擬機的語言來編寫你的自定義插件。

Gradle 的關鍵概念及構建生命周期

Gradle 中兩個關鍵的概念:項目和任務。

每個 build.gradle 構建腳本文件代表一個項目 project: 

 

 

每個 build.gradle 構建腳本文件代表一個項目 project 

任務 task 定義在構建腳本里: 

 

 

任務 task 定義在構建腳本里 

每次構建至少包括一個項目,每個項目里又至少包括一個任務。

構建生命周期

一個 Gradle 構建通常包括下面三個階段:

1.初始化

項目實例會在這時被創建,如果這個項目里有多個 module,或者依賴多個 library,并且它們都有對應的 build.gradle 文件,就會創建多個項目實例

2.配置

在這個階段構建腳本被執行,并且為每個項目實例創建和配置任務

3.執行

在這個階段 Gradle 將根據構建腳本的配置決定哪些任務會被執行

不同任務之間可能有 相互依賴,因此在配置階段 Gradle 會生產依賴關系圖,沒有依賴的任務通常會被優先執行,然后一個接一個執行其他任務。一旦一個任務被執行過,就不會被再次執行。

Gradle Wrapper

Gradle 在不斷的發展,有可能存在新版本不兼容舊版本的情況,于是官方為我們提供了 Gradle Wrapper,就是為了兼容和適配不同版本,確保構建是可重復的。

普通的 Gradle 腳本命令是: 

  1. gradle ... 

而 Gradle Wrapper 命令只是在 gradle 后加了個 w:

  1. gradlew ... 

在 Mac 下略微有些不同:

  1. ./gradlew ... 

開發者或者自動構建系統可以通過使用 wrapper 來運行 gradle 命令,由它來搞定兼容等問題。因此我們甚至都不需要安裝 gradle,直接使用 gradle wrapper 即可,就像 Android Studio 里推薦的一樣: 

 

 

 

上圖我并沒有使用 wrapper,是因為當你運行 gradlew 命令時,gradle wrapper 會自動下載需要但是你沒有的 gradle 版本并使用。 這在多人協作時,很可能因為別人修改了 gradle 版本、上傳到 git,然后導致你運行命令時需要下載半天。

不過官方還是推薦使用 wrapper,畢竟這樣更穩定。

總結

這篇文章對比 Ant 和 Maven 介紹了 Gradle 的一些優點和基礎概念,在理解 Gradle 為什么會被使用、它有什么優點之后,有助于我們后續深入學習 Gradle 的使用。 

責任編輯:龐桂玉 來源: Android開發中文站
相關推薦

2013-03-04 10:10:36

WebKit瀏覽器

2024-03-07 10:21:56

2024-01-10 17:04:13

通信模塊通信技術通信模組

2020-05-25 20:46:59

Python編程語言程序員

2021-06-30 06:56:18

數據泄露零信任網絡安全

2020-05-06 16:47:59

ServerlessMVC架構

2022-07-14 07:17:11

LXCDocker語言

2014-10-10 13:46:33

Docker

2018-07-25 14:36:46

邊緣計算云計算

2024-03-01 17:01:15

GraphQL后端

2021-03-26 08:47:01

SD-WAN網絡5G

2020-06-30 14:25:28

MavenGradle Spring

2024-02-04 16:51:47

2017-04-10 14:46:29

AndroidGradleBuild.gradl

2017-04-10 13:43:34

AndroidGradleAS

2022-12-22 07:44:04

2013-07-18 17:00:12

Gradle構建AndAndroid開發Android學習

2017-03-02 14:35:33

Androidgradle常用配置

2020-04-26 12:08:10

Python編程語言開發

2021-01-25 10:36:32

知識圖譜人工智能
點贊
收藏

51CTO技術棧公眾號

亚洲性视频h| av日韩电影| 成人av在线一区二区| 97国产精品视频| 久久久久无码精品国产sm果冻| 香蕉av在线播放| 免费在线欧美黄色| 俺去啦;欧美日韩| www.17c.com喷水少妇| 国产成人精品亚洲日本在线观看| 国产精品一级片| 亚洲欧美三级伦理| 欧美污在线观看| 韩日成人影院| 亚洲最大的成人av| 亚洲成人自拍视频| 免费激情视频网站| 精品一区二区三区免费观看| 欧美在线一级va免费观看| 亚洲一区电影在线观看| 日韩欧美ww| 日韩欧美国产麻豆| 男人添女人下面免费视频| а√在线中文网新版地址在线| 国产精品资源站在线| 日韩美女免费视频| 国产在线观看成人| 亚州av乱码久久精品蜜桃| 亚洲男人天堂2023| 小毛片在线观看| 国产精品亚洲一区二区在线观看 | 日本欧美一二三区| 欧美激情一区二区视频| 色综合天天爱| 亚洲午夜未满十八勿入免费观看全集| 久久综合久久色| 九色porny自拍视频在线观看 | 国产美女精品| 欧美黄色www| 91成人福利视频| 久久精品免费一区二区三区| 中文国产成人精品久久一| 实拍女处破www免费看| 日韩最新在线| 亚洲女人天堂成人av在线| 三级黄色片网站| 欧美性生活一级片| 国产丝袜精品视频| 久久久久久久久久久久| 亚洲精品一级二级三级| 精品小视频在线| 人妻大战黑人白浆狂泄| 亚洲欧洲美洲国产香蕉| 精品爽片免费看久久| 熟女少妇一区二区三区| 在线看成人短视频| 国产一区二区三区在线观看网站 | 婷婷成人av| 欧美日韩欧美一区二区| 成人综合久久网| 国产午夜亚洲精品一级在线| 91精品国产欧美一区二区成人| ww国产内射精品后入国产| 九九精品调教| 天天影视网天天综合色在线播放| 色乱码一区二区三在线看| 国产原创av在线| 亚洲国产精品高清| japanese在线视频| 七七成人影院| 欧美日韩国产色| 久久精品.com| 开心久久婷婷综合中文字幕| 制服.丝袜.亚洲.中文.综合| 国产又粗又猛大又黄又爽| 中文在线综合| 亚洲欧美激情在线视频| 美女100%露胸无遮挡| 牛牛国产精品| 国产69精品久久久久久| 中文字幕在线播出| 国产福利精品一区| 久久综合一区| 黄色片网站在线| 香蕉影视欧美成人| 在线看的黄色网址| youjizz亚洲| 亚洲一区二区久久| 免费一级全黄少妇性色生活片| 精品人妻无码一区二区三区| 日韩精品成人在线观看| 日韩精品一区二区三区四区| 中国xxxx性xxxx产国| 国产精品欧美三级在线观看| 日韩在线视频免费观看| 国产小视频在线观看免费| 久久黄色网页| 91超碰在线免费观看| 你懂的视频在线免费| 综合网在线视频| 久久精品国产精品亚洲色婷婷| gratisvideos另类灌满| 欧美影视一区二区三区| 国产精久久久久| 午夜亚洲性色福利视频| 欧美精品三级在线观看| 在线xxxxx| 欧美日韩一二| 97视频免费看| 国产一区二区波多野结衣| 成人高清伦理免费影院在线观看| 国产日产亚洲精品| 国产91免费看| 亚洲三级免费电影| 免费男同深夜夜行网站 | 亚洲三级免费观看| 国产熟女高潮视频| 日韩欧美一级| 日日狠狠久久偷偷四色综合免费| 成人信息集中地| 久久高清一区| 国产伦精品一区二区三区视频孕妇| 亚洲国产精彩视频| 国产日韩欧美精品在线| 欧美深夜福利视频| 一区二区视频| 欧美猛交ⅹxxx乱大交视频| 成人午夜精品视频| 久久综合久久鬼色| 国产一区二区视频播放| 综合久久成人| 久久99热精品| 国产露脸无套对白在线播放| 欧美国产一区在线| 久久久久久久少妇| 妖精一区二区三区精品视频| 91精品国产91久久久久久久久| 亚洲天堂五月天| 久久综合中文字幕| 免费看国产曰批40分钟| 玖玖玖免费嫩草在线影院一区| 亚洲欧美日韩中文在线制服| 国产在线成人精品午夜| 成人免费高清在线| www.xxx麻豆| 高清欧美性猛交xxxx黑人猛| 欧美精品久久久久久久免费观看 | 免费日韩av| 精品国产一区二区三区麻豆免费观看完整版 | 婷婷成人激情| 色婷婷精品大在线视频| 日本免费福利视频| 欧美亚洲在线| 日韩av图片| 国产精品美女午夜爽爽| 色噜噜久久综合伊人一本| 在线视频1卡二卡三卡| 国产精品久久网站| 91 视频免费观看| 综合久久综合| 精品国产乱码久久久久久88av| 午夜视频在线看| 青青草91视频| 精品美女久久久| 性色av一区二区三区红粉影视| 亚洲天堂黄色片| 麻豆精品视频在线观看视频| 亚洲国产一区二区三区在线| 91精品国产综合久久福利软件 | 三级小视频在线观看| 国产精品第四页| 久久黄色片网站| 欧美在线资源| 久久亚洲免费| 国产黄色精品| 色综合久综合久久综合久鬼88| 依依成人综合网| 国产人成亚洲第一网站在线播放| 欧美亚洲色图视频| 国产亚洲欧美另类一区二区三区| www青青草原| 国产精品99久久不卡二区| 中国丰满熟妇xxxx性| 精品国产一区二区三区不卡蜜臂| 免费高清视频精品| 日本一区二区不卡高清更新| 91p九色成人| 欧美精品在线第一页| 天堂av在线7| 欧美日韩亚洲综合| 日产精品久久久久久久| 欧美国产精品一区| 黑人玩弄人妻一区二区三区| 日韩高清不卡一区二区| 久久亚洲a v| 北条麻妃国产九九九精品小说 | 毛片久久久久久| 国产毛片精品国产一区二区三区| 神马影院我不卡午夜| 久久天堂久久| 日本久久亚洲电影| 啦啦啦中文在线观看日本| 亚洲一区二区久久久| 乱精品一区字幕二区| 欧美日韩中字一区| 日本韩国欧美中文字幕| 一区二区三区久久| 国产在视频线精品视频| 91原创在线视频| 初高中福利视频网站| 日韩电影在线一区二区| 欧美综合在线播放| 一本精品一区二区三区| 日韩中文字幕一区二区| 女同另类激情重口| 超碰97国产在线| 91成人小视频| 国产精品午夜视频| 不卡av影片| 国内精品久久久久伊人av| gogo在线高清视频| www.亚洲男人天堂| 成人在线观看黄色| 亚洲欧美日韩一区在线| 亚洲日本香蕉视频| 337p日本欧洲亚洲大胆色噜噜| 日韩黄色在线播放| 午夜精品福利在线| 精品一区在线视频| 亚洲色图欧美激情| 三级黄色录像视频| 国产蜜臀av在线一区二区三区| 亚洲精品永久视频| 日韩精品国产欧美| 国产欧美高清在线| 欧美亚洲三级| 激情六月丁香婷婷| 性色一区二区三区| 免费av网址在线| 久久狠狠婷婷| 999香蕉视频| 日韩激情视频网站| 国产精品视频黄色| 奇米影视在线99精品| 欧美一级裸体视频| 日本麻豆一区二区三区视频| 91淫黄看大片| 青青草视频一区| 伊人国产在线视频| 韩国三级中文字幕hd久久精品| 久久香蕉视频网站| 国偷自产av一区二区三区| 国产成人精品免费视频大全最热| 韩国成人漫画| 国产精品福利在线观看网址| 日韩av超清在线观看| 欧美在线视频一区| 男人皇宫亚洲男人2020| 国产精品久久久久久久app| jizz亚洲女人高潮大叫| 成人免费观看网址| 欧美a在线观看| 国产一区不卡在线观看| 日韩丝袜视频| 亚洲二区自拍| 午夜欧美精品久久久久久久| 丰满的少妇愉情hd高清果冻传媒| 成人在线国产| 椎名由奈jux491在线播放| 亚洲综合小说| 国精产品一区一区三区视频| 欧美亚洲视频| 亚洲xxx在线观看| 国产不卡一区视频| 国产精品一区二区入口九绯色| 国产在线一区二区| 波多野结衣网页| 91色|porny| 很污很黄的网站| 亚洲午夜久久久| 亚洲国产av一区二区三区| 欧美日韩国产精品成人| www三级免费| 一区二区欧美久久| 国产丝袜视频在线播放| 日韩免费中文字幕| 欧美精品影院| 欧美日韩一区二| 自拍日韩欧美| 欧美私人情侣网站| 国产在线精品一区在线观看麻豆| 久久久精品高清| 国产白丝精品91爽爽久久 | 成人午夜视频在线观看| 少妇饥渴放荡91麻豆| 综合亚洲深深色噜噜狠狠网站| 久久久久久久麻豆| 欧美日韩亚洲视频一区| 亚洲在线免费观看视频| 亚洲激情在线视频| 成人在线观看亚洲| 国产91免费看片| 成人台湾亚洲精品一区二区 | 希岛爱理av免费一区二区| 亚洲砖区区免费| 亚洲综合精品四区| 免费人成视频在线播放| 国产午夜亚洲精品不卡| 日本在线免费观看| 91精品国产aⅴ一区二区| 撸视在线观看免费视频| 久久久久久久久久国产精品| 青青久久精品| 日韩欧美精品一区二区| 亚洲人妖在线| 亚洲区 欧美区| 中文字幕在线视频一区| 秋霞av一区二区三区| 欧美一区二区三区播放老司机| 国产免费叼嘿网站免费| 亚洲性生活视频| 波多野结衣中文字幕久久| 91九色综合久久| 999视频精品| 簧片在线免费看| 久久精品亚洲精品国产欧美 | 国产精品流白浆视频| 国产精品对白久久久久粗| 99久re热视频精品98| 蜜臀va亚洲va欧美va天堂| 中文字幕av网址| 午夜精品久久久久久久久久久| 波多野结衣大片| 日韩精品在线播放| 狠狠操一区二区三区| 国产精品一 二 三| 亚洲成人中文| 人妖粗暴刺激videos呻吟| 亚洲精品免费看| 国产免费久久久| 久久中文精品视频| 超碰aⅴ人人做人人爽欧美| 日韩欧美有码在线| 肥臀熟女一区二区三区| 欧美日韩成人精品| 日日夜夜精品视频| av久久久久久| 国产精品18久久久久久久久| 四虎永久免费地址| 欧美欧美欧美欧美首页| 午夜免费福利在线观看| 国产情人节一区| 91精品国产福利在线观看麻豆| 手机福利在线视频| 国内精品视频一区二区三区八戒| 美女扒开腿免费视频| 亚洲制服丝袜av| 熟妇高潮一区二区三区| 欧美一级黄色网| 日韩精品午夜| 中文字幕第三区| 午夜精品福利一区二区三区蜜桃| 91丨九色丨蝌蚪丨对白| 久久国产天堂福利天堂| 久久久久久久久久久久电影| 男人天堂新网址| 99久久99久久精品国产片果冻| wwwav国产| 亚洲白拍色综合图区| 日韩av中字| 最近中文字幕免费mv| 成人动漫在线一区| 日韩国产亚洲欧美| 欧美成人久久久| 免费看久久久| 天天干在线影院| 一区二区三区不卡在线观看 | 成人av影视在线| 99视频在线精品国自产拍免费观看| 中文字幕免费高清在线| 一区二区不卡在线播放| 视频一区二区在线播放| 国产精品视频一区二区高潮| 888久久久| 538国产视频| 欧美另类一区二区三区| 久久影院午夜精品| 在线观看日韩羞羞视频| 成年人国产精品| 这里只有精品6| 91国内精品久久| 亚洲精品va| 国产真实乱人偷精品人妻| 欧美成人aa大片| 日韩美女在线看免费观看| 黄色特一级视频| 国产日韩欧美一区二区三区综合| 国产精品21p| 欧美成年人在线观看| 国产亚洲一卡2卡3卡4卡新区|