精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

一本一道久久a久久综合精品| 欧美国产日本高清在线 | 国产99在线播放| 精品国产乱码一区二区| 精品人人人人| 欧美亚洲国产一区二区三区va| 亚洲高清资源综合久久精品| www.久久久久久久久久| 亚洲欧美日韩专区| 久久艳片www.17c.com| av无码一区二区三区| 日韩电影网站| 亚洲卡通动漫在线| 欧美一区二区三区在线播放| 99视频在线观看免费| 欧美亚洲一区| 欧美巨乳在线观看| 国产精品扒开腿做爽爽| 日韩中文字幕无砖| 欧美性三三影院| 91丨porny丨探花| 黄色在线视频网站| 久久综合国产精品| 成人免费在线一区二区三区| 伊人久久国产精品| 每日更新成人在线视频| 久久久爽爽爽美女图片| 成人信息集中地| 综合亚洲自拍| 精品盗摄一区二区三区| 天天干天天色天天干| 奇米777日韩| 欧美性猛交xxxx久久久| 国产九色porny| 精品视频在线一区二区| 欧美激情在线免费观看| 免费国产一区| 四虎在线免费观看| 成人动漫在线一区| 91九色视频在线观看| 亚洲在线免费观看视频| 日韩在线播放一区二区| 欧美孕妇与黑人孕交| 国产无遮挡又黄又爽在线观看| 一精品久久久| www.亚洲一区| 中文字幕求饶的少妇| 精品国产一区探花在线观看| 国产婷婷成人久久av免费高清 | 波多野结衣一区二区三区| 亚洲free嫩bbb| 国产一区二区自拍视频| 蜜桃视频在线观看一区| 国产成人亚洲综合青青| 亚洲男人天堂网址| 视频一区视频二区中文字幕| 国产91久久婷婷一区二区| 日本在线播放视频| 久久成人在线| 国产精品久久久久aaaa九色| 中文字幕xxxx| 免费在线观看日韩欧美| 国产精品私拍pans大尺度在线| 日韩国产亚洲欧美| 捆绑调教美女网站视频一区| 国产欧美一区二区| 国产精品污视频| 国产另类ts人妖一区二区| 91免费看网站| 蜜臀久久精品久久久久| 99精品国产视频| 欧美大香线蕉线伊人久久| 免费在线黄色网址| 国产精品国产馆在线真实露脸| 国产精品h视频| 怡红院在线播放| 亚洲高清一区二区三区| 亚洲熟妇国产熟妇肥婆| 日韩精品三区| 91精品福利在线一区二区三区| 又色又爽又黄18网站| 亚洲日本三级| 最新国产精品拍自在线播放| 日韩一级片av| 国产精品综合| 成人a在线观看| 粉嫩av一区二区夜夜嗨| 久久久久99精品一区| 一区二区在线高清视频| 肉肉视频在线观看| 色一情一乱一乱一91av| 欧美丝袜在线观看| 福利在线一区| 在线日韩日本国产亚洲| 欧美成人一二三区| 天使萌一区二区三区免费观看| 国产免费一区视频观看免费| 黄色片网站免费在线观看| 国产午夜精品一区二区三区视频| 国产日韩欧美大片| av电影一区| 日韩欧美一区二区不卡| 91精品人妻一区二区三区| 一区二区三区国产精华| 欧洲亚洲免费在线| www.色呦呦| 国产嫩草影院久久久久| 成年人网站国产| 美女视频一区| 亚洲欧美日韩区| 欧洲美女女同性互添| 国产精品老牛| 91麻豆精品秘密入口| 成人高潮成人免费观看| 亚洲成人一二三| av在线免费看片| 奇米狠狠一区二区三区| 欧美激情国产日韩精品一区18| 中文字幕在线天堂| 99久久久精品免费观看国产蜜| 亚洲欧洲精品一区二区三区波多野1战4| 大黄网站在线观看| 欧美美女一区二区| 国产美女免费网站| 国产一区二区你懂的| 99国产超薄肉色丝袜交足的后果| www.亚洲.com| 色综合久久九月婷婷色综合| 任你躁av一区二区三区| 五月综合激情| 国产精品影片在线观看| 男人天堂网在线观看| 亚洲妇女屁股眼交7| 一级黄色免费毛片| 欧美一区二区三区另类| 成人乱人伦精品视频在线观看| 国产中文字幕在线播放| 狠狠躁夜夜躁人人躁婷婷91 | 中文字幕在线观看欧美| 久久久久久久久久看片| 国产又黄又大又粗视频| 国内精品偷拍| 久久免费视频在线观看| 亚洲国产日韩在线观看| 亚洲精品视频一区| 在线一区二区不卡| 外国成人激情视频| 91精品中文在线| 国产在线观看91| 3atv一区二区三区| 国产中文av在线| 免费成人美女在线观看.| 日韩免费一区二区三区| 日韩三区免费| 日韩在线视频网站| 国产免费视频一区二区三区| 综合欧美亚洲日本| 国产一级片中文字幕| 亚洲色图网站| 国产精品香蕉视屏| 欧美裸体视频| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 国产在线拍偷自揄拍精品| 欧美三级电影一区二区三区| 67194成人在线观看| 欧美黑人性猛交xxx| 国产寡妇亲子伦一区二区| 韩日视频在线观看| 日韩高清成人在线| 国产成人综合精品在线| 日韩精品成人av| 日韩欧美国产wwwww| 国产黄色片视频| 91麻豆国产福利在线观看| 日本999视频| 久久性感美女视频| 99理论电影网| 欧美gay囗交囗交| 揄拍成人国产精品视频| 国产麻豆精品一区| 欧美日韩加勒比精品一区| 亚洲欧美va天堂人熟伦| 国产麻豆欧美日韩一区| 丰满爆乳一区二区三区| 区一区二视频| 国产精品久久久久久久久久直播| 成人爱爱网址| 成人97在线观看视频| 人妻91麻豆一区二区三区| 91久久精品日日躁夜夜躁欧美| 伊人久久久久久久久久久久久久| 成人一区在线观看| 激情综合网俺也去| 精品91久久久久| 日韩欧美亚洲在线| 91蜜桃臀久久一区二区| 国产精品av电影| 国产精品久久麻豆| 日韩精品欧美国产精品忘忧草 | 2014亚洲天堂| 99久久精品免费| 国产三级生活片| 亚洲综合国产激情另类一区| 一区不卡字幕| 伊人久久大香线蕉av不卡| 91视频国产一区| 欧美xxx网站| 久久久久久成人精品| 91美女视频在线| 亚洲精品福利视频| 国产偷拍一区二区| 欧美在线免费播放| 国产第一页在线播放| 中文字幕一区二区三区乱码在线| 黑丝av在线播放| 国产精品羞羞答答xxdd| 日韩av片网站| 免费视频久久| 欧美日韩在线一| 午夜久久福利| 欧美日韩亚洲国产成人| 国产在线观看91一区二区三区 | 天堂成人在线观看| 9191成人精品久久| 中文字幕丰满人伦在线| 色呦呦国产精品| 99精品在线播放| 精品久久久久久久大神国产| 久操视频免费在线观看| 综合av第一页| 男人的午夜天堂| 国产精品私房写真福利视频| 男人天堂av电影| 99re成人精品视频| 中文字幕一区二区三区乱码不卡| 国产乱人伦精品一区二区在线观看 | 久久一本综合频道| 99精品人妻少妇一区二区 | 久久久之久亚州精品露出| 性欧美videoshd高清| 久久综合久久八八| 国产素人视频在线观看| 欧美成在线观看| 污污视频在线看| 欧美精品video| 丁香影院在线| 久久久免费观看视频| 国精一区二区三区| 色与欲影视天天看综合网| caopon在线免费视频| 欧美成人免费全部| 青春草免费在线视频| 欧美国产日本在线| av日韩国产| 欧美亚洲另类激情另类| 亚洲女同av| 日本精品久久久久影院| 亚洲天堂一区二区| 国产精品一区二区女厕厕| 午夜精品久久久久久毛片| 国产日产亚洲精品| 欧美日韩黄网站| 国产激情美女久久久久久吹潮| 大奶在线精品| 欧美日韩国产综合在线| 欧美日韩国产传媒| 制服国产精品| 激情丁香综合| 日韩人妻精品无码一区二区三区| 免费一区视频| 天堂一区在线观看| 国产精品系列在线观看| 亚洲色偷偷色噜噜狠狠99网| 91性感美女视频| 日本黄区免费视频观看| 亚洲免费色视频| 国产成人无码精品| 欧洲精品一区二区三区在线观看| 又色又爽又黄无遮挡的免费视频| 91精品婷婷国产综合久久| 亚洲成a人片77777精品| 日韩精品在线影院| 三级外国片在线观看视频| 欧美人成在线视频| 奇米777日韩| 亚洲www在线| 亚洲免费成人av在线| 亚洲图片都市激情| 精品91在线| 男女啪啪网站视频| 国产成人午夜精品5599| 国产精品jizz| 亚洲精品中文在线影院| 亚洲精品午夜国产va久久成人| 欧美日韩视频在线第一区| 人妻精品无码一区二区| 色婷婷综合久久久久| 888av在线视频| 国产女人18毛片水18精品| 日韩电影不卡一区| 在线观看日韩羞羞视频| 亚洲综合三区| 91性高潮久久久久久久| 久久久国产精品不卡| 中文字幕第28页| 5858s免费视频成人| 全色精品综合影院| 欧美黑人极品猛少妇色xxxxx| 日本精品网站| 久久精品国产一区二区三区日韩 | 国产伦精品一区二区三区免.费| 亚洲国产另类 国产精品国产免费| 无遮挡动作视频在线观看免费入口| 午夜美女久久久久爽久久| 亚洲欧美一级| 日本一区二区在线| 国产欧美不卡| 亚洲日本久久久| 一区二区三区中文字幕电影| 亚洲视频在线免费播放| 亚洲欧美激情四射在线日| 超碰激情在线| 18成人免费观看网站下载| 日韩精品不卡一区二区| 成人在线激情网| 91免费视频网| 1级黄色大片儿| 精品国产一区二区亚洲人成毛片| 黄色网址在线免费观看| 国产男人精品视频| 色小子综合网| 91制片厂毛片| 欧美激情综合网| 久久国产香蕉视频| 永久免费精品影视网站| **欧美日韩在线观看| 麻豆精品视频| 免费在线亚洲| 欧美熟妇一区二区| 懂色av影视一区二区三区| 午夜av免费在线观看| 91国内产香蕉| 日韩深夜福利| 国产无套内射久久久国产| 久久免费美女视频| 国产午夜精品久久久久| 亚洲免费小视频| 日韩免费va| 亚洲国产日韩综合一区| 精品在线观看视频| 免费国产羞羞网站美图| 欧美一区二区三区四区在线观看| 国产黄网站在线观看| av色综合网| 亚洲经典自拍| 爱爱的免费视频| 91精品福利在线| 免费在线午夜视频| 亚洲影院高清在线| 国产精品av久久久久久麻豆网| 日本少妇一级片| 午夜成人免费电影| 猫咪在线永久网站| 国产拍精品一二三| 亚洲精品tv久久久久久久久久| 日本精品一二三| 大伊人狠狠躁夜夜躁av一区| 精品电影在线| 成人黄色片网站| 狠狠色综合网| 女人又爽又黄免费女仆| 欧美日韩久久一区| 日韩精品亚洲人成在线观看| 久久影视中文粉嫩av| 麻豆视频观看网址久久| 欧美成人aaa片一区国产精品| 日韩av网址在线观看| 视频一区在线免费看| 国产免费一区二区三区四在线播放| 丁香五精品蜜臀久久久久99网站| 久久一区二区三区视频| 综合欧美国产视频二区| 97久久综合精品久久久综合| 黄色一级大片在线观看| 亚洲精品一二三| 青青草手机在线| 91影视免费在线观看| 亚洲麻豆一区| 午夜精品一区二区三级视频| 亚洲第一视频网| 国产乱子精品一区二区在线观看| 欧洲精品在线播放| 欧美国产欧美亚州国产日韩mv天天看完整| 国产乱人乱偷精品视频| 欧美一级大片视频| 久久精品欧美一区| 亚洲av无码国产精品久久| 欧美一区二区三区视频免费播放 | 国产中文字幕91| 性娇小13――14欧美|