日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用Gradle構(gòu)建Android項目

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

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

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

- 改進的依賴關(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ā)布版本細節(jié) 
  39.      signingConfigs { 
  40.          release { 
  41.              storeFile file("../keys 
  42. /android.keystore") 
  43.              storePassword "######" 
  44.             keyAlias "######" 
  45.             keyPassword "######" 
  46.                     } 
  47.      } 
  48.        //聲明此發(fā)布構(gòu)建在簽名之前需要運行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可以運行下面的命令:

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

我以前用過Maven做了幾個項目,發(fā)現(xiàn)用Maven來管理項目配置非常有用,尤其是在依賴管理方面。但是我發(fā)現(xiàn)Maven在某些情況下缺少靈活性,你不得不為某些特殊的情況進行自定義。理論上你可以編寫自己的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ā)展上的一個重要進步?,F(xiàn)在,我會將其他的項目都轉(zhuǎn)為使用Gradle。


分享名稱:使用Gradle構(gòu)建Android項目
文章URL:http://www.dlmjj.cn/article/djeodso.html