成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

在前一陣子的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ù)庫通常需要被導入到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風格結(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應用的趨勢。Gradle還提供了很多其他很贊的特性,例如構(gòu)建“佐料(flavors)”等,本文沒有涉及。我相信Google采用Gradle是在Android發(fā)展上的一個重要進步。現(xiàn)在,我會將其他的項目都轉(zhuǎn)為使用Gradle。

責任編輯:閆佳明 來源: 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工具

2021-05-19 14:46:41

Space XRust語言

2024-05-15 08:20:08

GradleMaven工具

2021-05-17 09:27:07

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

2017-04-10 14:46:29

AndroidGradleBuild.gradl

2017-03-02 14:35:33

Androidgradle常用配置

2021-07-26 05:21:37

JenkinsAndroid自動化

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)境

2017-03-14 19:18:56

AndroidGradle實踐
點贊
收藏

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

主站蜘蛛池模板: 亚洲综合热| 九色 在线 | 电影91久久久 | 在线免费毛片 | 欧美综合国产精品久久丁香 | 爱爱免费视频 | 国产精品久久 | 在线视频一区二区三区 | 91视频.com| 91精品久久久久久久久久 | 国产欧美一区二区三区在线看蜜臀 | 国产一区二区三区在线 | 视频一区二区三区中文字幕 | 韩国电影久久 | 久久99国产精一区二区三区 | 久久er99热精品一区二区 | 精品久久久久久久久久久院品网 | 亚洲国产aⅴ成人精品无吗 综合国产在线 | 国产午夜视频 | 日韩在线观看 | 在线观看免费av网站 | 精品欧美乱码久久久久久 | 91精品国产乱码麻豆白嫩 | 亚洲成人精品在线观看 | 欧美一区免费 | 日韩高清三区 | 视频在线一区二区 | 亚洲网站在线播放 | 亚洲高清在线观看 | 欧美专区日韩专区 | 久久国产精品一区二区三区 | 久久av一区二区三区 | 亚洲第一av网站 | 精品美女视频在免费观看 | 一区视频在线免费观看 | 欧美精品免费观看二区 | 日韩精品四区 | 亚洲高清在线观看 | 在线男人天堂 | 成人国产免费观看 | 欧美久久久久久 |