用Gradle 構(gòu)建你的android程序
前言
android gradle 的插件終于把混淆代碼的task集成進(jìn)去了,加上最近,android studio 用的是gradle 來構(gòu)建項(xiàng)目, 下定決心把a(bǔ)ndroid gralde 構(gòu)建項(xiàng)目的用戶指南全部看完, 讓不會用gradle 的人也用gradle構(gòu)建android項(xiàng)目,讓打包(注意,打包和構(gòu)建是兩碼事)多版本android不再痛苦。最后,題外話:珍惜生命,遠(yuǎn)離ant....
Gradle build android 歷史
Android Tools 主頁 ,大概是今年2月份發(fā)布 adt21.1 的時(shí)候,忽然在主頁發(fā)現(xiàn)了New Build System 原來是可以用gradle 來構(gòu)建android項(xiàng)目,至于gradle是什么(既然點(diǎn)擊進(jìn)來看了應(yīng)該都知道了吧。) 。然后,又看了一下RoadMap 那時(shí)候,還并不支持Proguard 打包,于是就沒看了。。。
最近,android studio 發(fā)布,終于gradle 0.4 也跟著出來了,于是,先把gradle 學(xué)了一遍,然后把Gradle Plugin User Guide也認(rèn)真閱讀了一下,根據(jù)我的個人體驗(yàn),如果你對gradle 毫無了解就去看Gradle Plugin User Guide 可能很多地方都一頭霧水,但是并不妨礙你用gradle 打包android 應(yīng)用,只是,出現(xiàn)問題,你就可能很頭疼。不過,本篇博文就是讓不會gradle 也能用上 gradle 打包android 程序,因?yàn)?,我也不懂gradle,所以,我把我碰到的問題的解決方案都一一列出。
順便貼上官方為什么使用gradle 的理由
- Domain Specific Language (DSL) to describe and manipulate the build logic
- Build files are Groovy based and allow mixing of declarative elements through the DSL and using code to manipulate the DSL elements to provide custom logic.
- Built-in dependency management through Maven and/or Ivy.
- Very flexible. Allows using best practices but doesn’t force its own way of doing things.
- Plugins can expose their own DSL and their own API for build files to use.
- Good Tooling API allowing IDE integration
Gradle 基本概念
首先我們學(xué)習(xí)幾個gradle 的腳步語法,掌握了這幾個語法,你就能非常簡單的用gradle構(gòu)建打包android項(xiàng)目了。 首先,我們來看下一個最簡單android build.gradle。
build.gradle
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
buildscript { repositories { mavenCentral() } dependencies |