Android--Android studio 的編譯系統 Gradle(二)

來源:互聯網
上載者:User

標籤:

要執行命令列,首先,在環境變數裡面進行配置。

1、手動安裝Gradle,bin-->gradle.bat,這個目錄配置到環境變數path裡面,這樣才能在變數裡面進行運行。

2、Android studio 裡面有Gradle。這裡也有Gradle

每個工程下面都有一個Gradlew.bat這個批處理。有如下命令:

gradle tasks   列出所有命令。如果build.gradle是比較複雜的、我們可以對比一下

gradle build  編譯所有的任務

gradle assembleRelease  只編譯Release

gradle clean 命令清楚了APP下的這個包。

 

Android 在Terminal  裡面也提供了個shell環境。也可以在這裡進行編譯

理論上,只有 apply plugin 和android{}就可以進行編譯了,如果工程比較複雜,可以用dependencies{}引進依賴包,進行編譯

儘管已經在一個檔案夾裡面了,但是這裡,我們的APP並沒有引入library裡面的包

寫一些配置,知道在哪些模組下

在Eclipse 裡面也可以進行,我們可以指定某一個類型的檔案存在某一個目錄下面,可以用gradle指令碼來編譯

android {      //這是一個Android模組    compileSdkVersion 19    buildToolsVersion "20.0.0"    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‘)        debug.setRoot(‘build-types/debug‘)        release.setRoot(‘build-types/release‘)    }

 

依賴項目設定

1、引入架包

右鍵屬性,Open Module Settings  F4 ,點擊+號,第二項。引入gson.jar和gcm.jar 之後,指令碼裡面的檔案多了兩行

dependencies {    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])    compile ‘com.android.support:appcompat-v7:22.2.1‘    compile files(‘libs/gcm.jar‘)    compile files(‘libs/gson-2.3.1.jar‘)
  當然,在我們修改了gson的版本之後,還是要來改這裡的名稱的,麻痹,不會自動改。用下面的一行代碼解決。以後只要有新的架包扔到libs裡面去,我們就直接引用了,不需要再寫代碼了
  compile fileTree(include:‘*.jar‘,dir:‘libs‘)
}

 

2、引入本地項目,引入的剛才建立的moudle (library,)

右鍵屬性,Open Module Settings  F4 ,點擊+號,第三項。

dependencies {    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])    compile ‘com.android.support:appcompat-v7:22.2.1‘    compile project(‘:library:mylibrary‘)}

 

表示引用的是個模組。

引用 v4包,v7包。

右鍵屬性,Open Module Settings  F4 ,點擊+號,第一項。

  compile ‘com.android.support:appcompat-v7:22.2.1‘

 

    defaultConfig {        applicationId "com.example.administrator.turnplatemenu"        minSdkVersion 16        targetSdkVersion 22        versionCode 1        versionName "1.0"    }

 

這個,如果不寫,manifast裡面會覆蓋它

 

3、引入遠程庫

右鍵屬性,Open Module Settings  F4 ,點擊+號,第一項。搜尋gson庫,匯入之後,在APP下面的lib裡面是沒有的。只是會通過指令碼去遠程下載這個庫。

編譯時間候修改包資訊

真正強大的地方在於編譯時間還能修改定義,包名,versionCode  versionName,

簽名檔案的設定
    signingConfigs{//下面兩個名字可以自訂        releasekey{            storeFile file(‘MYKEY‘)             storePassword ‘123456‘            keyAlias ‘androidrelease‘   修改為--->andoridkey            keyPassword(‘123456‘)        }        debugkey{            storeFile file(‘MYKEY.debug‘)            storePassword ‘android‘            keyAlias ‘androidbugkey‘            keyPassword android        }    }

 

 有了這個結點,如何使用?

    defaultConfig {        applicationId "com.example.administrator.turnplatemenu"        minSdkVersion 16        targetSdkVersion 22        versionCode 1        versionName "1.0"        signingConfig signingConfigs.releasekey    }

 

 在defaultConfig裡面加上最後一個結點,指定的簽名文檔。但是defaultConfig 必須定義在signingConfigs的下方。 這是指令碼語言,和類不一樣。

 Failed to read key from keystore 

這裡說我們的密碼有問題,這裡修改為Androidkey

編譯類型:buildType

 用於編譯出來的包是用於做什麼的。一般系統預設就兩種,一種release 一種debug,但是下面自己定義了兩個。

buildTypes{        forrelease{            debuggable false        }        fordebug{            applicationIdSuffix ‘.debug‘        }        fordailybuild{              //然後還有一個擴充,可持續繼承,            applicationIdSuffix ‘.db‘        }        formonkeytest{            //用monkey跑用的            applicationIdSuffix ‘.monkey‘        }

 

 

 

    productFlavors {

     phone{
      applicationID ‘com.win16.nyapplicaiton‘
      signingConfig signingConfigs.releasekey
     }
    
     pad{
      applicationId ‘con.win16.myapplication.hd‘
      signingConfig singingConfigs.debugkey
     }

       default_channel{} wandoujia{} _360{} yingyongbao{} xiaomi{} baidu{} huawei{} jifeng{} }

 

 

所謂ProductFlavors其實就是可定義的產品特性,配合 manifest merger 使用的時候就可以達成在一次編譯過程中產生多個具有自己特性配置的版本。

上面這個配置的作用就是,為每個渠道包產生不同的 UMENG_CHANNEL_VALUE 的值。

 

Android--Android studio 的編譯系統 Gradle(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.