從學校出來一隻使用Ant編譯 ant寫指令碼有些麻煩,不是很簡單,感覺依賴還行。速度還不錯。很久以前大牛想我推薦gradle ,這個比ant好用多了,現在確實是,那時候gradle還沒在在android裡正式支援,
前幾天更新ant 指令碼 突然覺得我應該try一下,有些路不能直著走,曲線救國嘛,用多了自己體會到,因為需求本來想重新修改 jar 源碼下載完了,打算測試下,發現依賴不滿足 然後maven上沒有這個jar。罷休了,更新下源碼,網路不給力,老逾時。
在項目上右鍵匯出 如 選擇 產生 Gradle build files
接下來選擇要產生的項目 然後完成
然後開啟build.gradle 預設產生的是com.android.tools.build:gradle:0.4 修改為 com.android.tools.build:gradle:0.4.2 現在最新的庫,可以在maven庫上查一下
、
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.4.2'//依賴 必須的 目前是0.4.2 詳情到google看文檔 }}apply plugin: 'android'dependencies { compile fileTree(dir: 'libs', include: '*.jar')//編譯libs下的jar 都懂}android { compileSdkVersion 8 buildToolsVersion "17.0.0"buildTypes {//設定debug release等資訊release {runProguard trueproguardFile getDefaultProguardFile('proguard-android.txt')
signingConfig signingConfigs.myConfig //設定簽名配置}}signingConfigs {//簽名資訊 可以自訂很多debug {storeFile file("debug.keystore")}myConfig {storeFile file("debug.keystore")storePassword "android"keyAlias "androiddebugkey"keyPassword "android"}} sourceSets { main {//編譯配置,看源碼吧,文檔挺少的 manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } instrumentTest.setRoot('tests') }////productFlavors 這個就是渠道包,ant其實也能做,這個更強大 一個flavor1 就是一個包,包名不同,版本號碼之類的productFlavors {flavor1 {packageName "com.example.flavor1"versionCode 20}flavor2 {packageName "com.example.flavor2"minSdkVersion 14}}}
編譯使用 gradle build 會編譯debug 和簽名包 速度還行,build apk目錄下是各個包,我沒放keystore 所以沒有簽名
使用gradle 很多時候你需要對流程做控制,需要用鉤子,很多時候需要匯入ant指令碼 很簡單 ant.importBuild 'build.xml' 直接匯入指令碼然後再gradle註冊task 就可以直接調用了,剛開始研究,很強大 gradle 官網上有一本圖書 可以免費下載,英文版的,寫的挺簡單,想研究的可以看一下http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Types google的文檔,不是很全,很多沒有,還是google
搜尋吧 會groovy的應該很簡單,熟悉之後感覺很好用的,有些東西直接從ant import過來了,沒再重寫,有些東西重新起來還是比較複雜的