偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

使用Gradle構(gòu)建Android項目

移動開發(fā) Android
Gradle看上去在這兩方面都做得很好:通過插件為絕大多數(shù)的常用情況提供了全面支持,管理依賴關(guān)系方面與Maven做得同樣好;同時也提供了良好的靈活性,在需要修改構(gòu)建腳本時可以自由地定制。我相信Gradle是構(gòu)建Android應(yīng)用的趨勢。Gradle還提供了很多其他很贊的特性,例如構(gòu)建“佐料(flavors)”等,本文沒有涉及。我相信Google采用Gradle是在Android發(fā)展上的一個重要進(jìn)步?,F(xiàn)在,我會將其他的項目都轉(zhuǎn)為使用Gradle。

在前一陣子的Google IO大會上我注意到Android Studio開發(fā)環(huán)境引起了大家的關(guān)注。我發(fā)現(xiàn)Eclipse經(jīng)常會變慢而且健壯性不強(qiáng),所以一個新的替代Android IDE是***的消息。在仔細(xì)關(guān)注這次的發(fā)布時,我發(fā)現(xiàn)另一個亮點是基于Gradle的Android項目新的構(gòu)建系統(tǒng)。因此我決定更仔細(xì)地了解Gradle。

下面列舉了一些使用Gradle構(gòu)建Android項目的好處:

- 在IDE環(huán)境和命令行下使用同一個構(gòu)建系統(tǒng)

- 改進(jìn)的依賴關(guān)系管理

- 更容易地集成到自動化構(gòu)建系統(tǒng)

一個額外的好處來自Android函數(shù)庫包格式“aar”格式。以前,Android函數(shù)庫通常需要被導(dǎo)入到IDE以此將App需要的資源加入編譯。但是現(xiàn)在的Android函數(shù)庫可以被直接包含,與“jar”文件被Java項目包含的方式類似。這項功能雖然出現(xiàn)已久,但確實非常受歡迎。

下面是我一個項目的gradle構(gòu)建腳本:

  1. buildscript {      
  2. //定義一些項目需要的JAR函數(shù)庫      
  3. LIBS_DIR = "../../../libs"       
  4. //需要從maven中央庫得到gradle的android插件      
  5. repositories {         
  6.        mavenCentral()      
  7. }        
  8. dependencies {  
  9.         classpath 'com.android.tools.build:gradle:0.4.2' 
  10.     } 
  11.  }    
  12. //聲明項目是一個android構(gòu)建  
  13. apply plugin: 'android'  dependencies { 
  14.      //同時用本地maven庫查找依賴 
  15.      repositories { 
  16.          mavenLocal() 
  17.      } 
  18.        //下面是一些app需要的jar文件 
  19.      compile files("${LIBS_DIR}/hiscore/hiscore.jar"
  20.      compile files("${LIBS_DIR}/GoogleAnalytics/libGoogleAnalytics.jar")  
  21.       //這是一個我存放在本地maven倉庫(使用“aar”格式)的android函數(shù)庫 
  22.      compile ('com.mopub.mobileads:mopub-android-sdk:unknown') }   //android構(gòu)建的項目定義 android { 
  23.      compileSdkVersion 15     buildToolsVersion "17.0.0" 
  24.       //下面的代碼路徑不是推薦的新項目結(jié)構(gòu) 
  25.      //我仍然使用的Eclipse風(fēng)格結(jié)構(gòu) 
  26.      sourceSets { 
  27.          main { 
  28.              manifest.srcFile 'AndroidManifest.xml' 
  29.                java.srcDirs = ['src']  
  30.               resources.srcDirs = ['src']  
  31.             aidl.srcDirs = ['src']   
  32.              renderscript.srcDirs = ['src']   
  33.              res.srcDirs = ['res'
  34.              assets.srcDirs = ['assets'
  35.          } 
  36.            instrumentTest.setRoot('tests'
  37.      } 
  38.        //聲明創(chuàng)建一個帶簽名的發(fā)布版本細(xì)節(jié) 
  39.      signingConfigs { 
  40.          release { 
  41.              storeFile file("../keys 
  42. /android.keystore") 
  43.              storePassword "######" 
  44.             keyAlias "######" 
  45.             keyPassword "######" 
  46.                     } 
  47.      } 
  48.        //聲明此發(fā)布構(gòu)建在簽名之前需要運(yùn)行proguard 
  49.      buildTypes { 
  50.          release { 
  51.              runProguard true 
  52.             proguardFile getDefaultProguardFile('proguard-android.txt'
  53.              proguardFile 'proguard.cfg' 
  54.             signingConfig signingConfigs.release         } 
  55.          } 
  56.      }  

從命令行構(gòu)建app可以運(yùn)行下面的命令:

  1. gradle assembleDebug    #debug構(gòu)建 
  2. gradle assembleRelease  #release構(gòu)建  

我以前用過Maven做了幾個項目,發(fā)現(xiàn)用Maven來管理項目配置非常有用,尤其是在依賴管理方面。但是我發(fā)現(xiàn)Maven在某些情況下缺少靈活性,你不得不為某些特殊的情況進(jìn)行自定義。理論上你可以編寫自己的Maven插件,但實踐起來大多數(shù)用戶不會這么做通常他們會依賴現(xiàn)有的插件。所以我經(jīng)常使用Ant而不是Maven,因為它在處理項目特殊操作,比如拷貝或修改代碼文件時更加靈活。

Gradle看上去在這兩方面都做得很好:通過插件為絕大多數(shù)的常用情況提供了全面支持,管理依賴關(guān)系方面與Maven做得同樣好;同時也提供了良好的靈活性,在需要修改構(gòu)建腳本時可以自由地定制。

我相信Gradle是構(gòu)建Android應(yīng)用的趨勢。Gradle還提供了很多其他很贊的特性,例如構(gòu)建“佐料(flavors)”等,本文沒有涉及。我相信Google采用Gradle是在Android發(fā)展上的一個重要進(jìn)步?,F(xiàn)在,我會將其他的項目都轉(zhuǎn)為使用Gradle。

責(zé)任編輯:閆佳明 來源: importnew
相關(guān)推薦

2022-12-30 08:17:28

Gradle多模塊項目

2017-04-11 09:07:55

AndroidGradle構(gòu)建變體

2015-03-20 10:01:50

Android StuGradle

2017-04-13 14:55:07

AndroidGradle多模塊構(gòu)建

2015-01-26 09:57:47

GradleMaven Centr

2022-01-07 15:11:27

項目Go 框架

2016-12-28 10:37:46

AndroidGradleApache Ant

2017-11-27 13:09:00

AndroidGradle代碼

2020-04-23 08:55:01

LinuxGradle工具

2024-05-15 08:20:08

GradleMaven工具

2021-05-19 14:46:41

Space XRust語言

2017-03-02 14:35:33

Androidgradle常用配置

2021-07-26 05:21:37

JenkinsAndroid自動化

2021-05-17 09:27:07

項目實戰(zhàn)優(yōu)化項目構(gòu)建時間

2017-04-10 14:46:29

AndroidGradleBuild.gradl

2025-03-26 01:00:00

2017-04-10 13:43:34

AndroidGradleAS

2013-09-26 10:50:38

甲骨文AvatarJavaScript

2011-06-03 13:38:49

Android 開發(fā)環(huán)境

2015-01-15 10:33:22

Android Stu導(dǎo)入開源庫
點贊
收藏

51CTO技術(shù)棧公眾號