小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 orion360doc 2013-07-17

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

分享到: 8


本文由 ImportNew - 唐尤華 翻譯自 spweblog.。如需轉(zhuǎn)載本文,請(qǐng)先參見文章末尾處的轉(zhuǎn)載要求。

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

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

- 在IDE環(huán)境和命令行下使用同一個(gè)構(gòu)建系統(tǒng)
- 改進(jìn)的依賴關(guān)系管理
- 更容易地集成到自動(dòng)化構(gòu)建系統(tǒng)

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

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

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

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

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

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

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

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

 

-- 掃描加關(guān)注,微信號(hào): importnew --

原文鏈接: spweblog. 翻譯: ImportNew.com - 唐尤華
譯文鏈接: http://www./5216.html
[ 轉(zhuǎn)載請(qǐng)保留原文出處、譯者、譯文鏈接和上面的微信二維碼圖片。]

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多