我的android studio之路day 02

來源:互聯網
上載者:User

標籤:

中間因為忙了2天,沒有把自己的學習總結及時寫上來,今天具體總結一下在我學習企業階層專案的build.gradle中的一些基礎配置屬性,

使用Android Studio建立一個工程後,預設會產生兩個build.gralde檔案,一個位於工程根目錄,一個位於app目錄下。還有另外一個檔案 --settings.gradle。

根目錄下的指令檔是針對module的全域配置,它的作用閾所包含的所有 module 是通過settings.gradle來配置。

app檔案夾就是一個module,如果在當前工程中添加了一個新的module -- lib,就需要在settings.gralde檔案中包含這個新的module。

匯入新的本地jar包,可以直接先pastejar包到lib目錄下,然後通過項目右鍵open module Setting的Dependencies中選擇添加檔案,

這樣就完成了jar檔案添加

開啟App目錄下有個build.gradle檔案應該項目結構檔案,上述的動作只是為了在在檔案下添加

dependencies {

compile files(‘libs/android-support-v13.jar‘)

compile files(‘libs/odata4j-0.7.0-clientbundle.jar‘)

}

包依賴關係

aar位於本地目錄

首先在 android 的參數閉包中添加調用方法 repositories

repositories {    flatDir {        dirs ‘libs‘    }}
去掉重複依賴
compile ‘com.alibaba.fastjson.latest.integration‘ {    exclude module: ‘annotations‘, group: ‘com.google.android‘}

 在下面還有一些設定sdk的資訊,包括sdk的版本等級,sdk的工具等級等,都在這裡面就可以進行修改

參考學習連結:http://my.oschina.net/u/1471093/blog/341990  以下為對此連結原文的摘抄

 //設定指令碼的運行環境    buildscript {         //支援java 依賴庫管理(maven/ivy),用於項目的依賴。     repositories {            mavenCentral()        }        //依賴包的定義。支援maven/ivy,遠程,本地庫,也支援單檔案        dependencies {            classpath ‘com.android.tools.build:gradle:0.4‘        }    }    //聲明構建的項目類型,這裡當然是android了    apply plugin: ‘android‘    //設定編譯android項目的參數    android {        compileSdkVersion 17        buildToolsVersion "17"            defaultConfig {            minSdkVersion 8            targetSdkVersion 17        }        //Android預設配置        sourceSets {            main {                manifest.srcFile ‘AndroidManifest.xml‘                java.srcDirs = [‘src‘]                resources.srcDirs = [‘src‘]                aidl.srcDirs = [‘src‘]                renderscript.srcDirs = [‘src‘]                res.srcDirs = [‘res‘]                assets.srcDirs = [‘assets‘]            }            //測試所在的路徑,這裡假設是tests檔案夾,沒有可以不寫這一行            instrumentTest.setRoot(‘tests‘)        }                //這個是解決lint報錯的代碼        lintOptions {            abortOnError false        }        /**         * 簽章設定         */        signingConfigs {            myConfigs {                storeFile file("簽名檔案地址")                keyAlias "..."                keyPassword "..."                storePassword "..."            }        }        /**         * 混淆設定         */        buildTypes {            release {                signingConfig signingConfigs.myConfigs                runProguard true                proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘            }        }        /**         * 渠道打包(不同包名)         */        productFlavors {            qqqq {                applicationId = ‘包名‘            }            hhhhh {                applicationId=‘包名‘            }        }    }    /**     * .so檔案的匯入     */    task copyNativeLibs(type: Copy) {        from fileTree(dir: ‘libs‘, include: ‘armeabi/*.so‘) into ‘build/lib‘    }    tasks.withType(Compile) {        options.encoding = "UTF-8"    }        tasks.withType(Compile) {        compileTask -> compileTask.dependsOn copyNativeLibs    }    clean.dependsOn ‘cleanCopyNativeLibs‘    tasks.withType(com.android.build.gradle.tasks.PackageApplication) { pkgTask ->        pkgTask.jniFolders = [new File(buildDir, ‘lib‘)]    }    //依賴庫    dependencies {    compile fileTree(dir: ‘libs‘, include: [‘*.jar‘])    }

 

本地依賴

gradle 作為構建工具,能夠很方便的使用本地jar包,以下為使用的代碼塊。

dependencies {        //單檔案依賴    compile files(‘libs/android-support-v4.jar‘)    //某個檔案夾下面全部依賴    compile fileTree(dir: ‘libs‘, include: ‘*.jar‘)}android {    }

 

遠程依賴

gradle 同時支援maven,ivy,由於ivy我沒用過,所以用maven 作為例子,以下為代碼塊:

repositories {        //從中央庫裡面擷取依賴    mavenCentral()    //或者使用指定的本地maven 庫    maven{        url "file://F:/githubrepo/releases"    }    //或者使用指定的遠程maven庫    maven{        url "遠程庫地址"    }}dependencies {        //應用格式: packageName:artifactId:version    compile ‘com.google.android:support-v4:r13‘}android {}

 

android library 依賴

對於項目依賴 android library的話,就不是依賴一個jar,那麼簡單了,在這裡需要使用gradle mulit project 機制。在過去,android library並沒有一個很好的包管理方式,簡單來說,在gradle出現以前,官方並沒有一種用於管理android library 依賴包的方式,一般我們都是直接下載別人的android library project 源碼進行整合,而對於第三方的android-maven-plugin 用的是apklib 格式。

而現在,官方終於推出一種android library的打包格式,副檔名為*.aar。前面提到,目前android gradle外掛程式並不支援本地直接使用*.aar檔案,不過,支援包管理庫的引用方式,下面,我為大家說一下,怎麼對android library 發布使用。

打包android library

對android library 進行打包直接在library項目下面使用gradle build 即可,然後,你就會在 build/libs 目錄下看到兩個*.aar檔案,一個debug包用的,一個是release 下用的,看個人需求使用,這裡我們用的是release 版本的 .aar 檔案。

引用指令碼跟前面講的依賴庫相似

dependencies {    compile(name: ‘pulltorefresh‘, ext: ‘aar‘)}

 

最後,分享個maven庫地址:http://mvnrepository.com/和gradle版本地址:http://tools.android.com/tech-docs/new-build-system

另外,gradle檔案配置部分更新:http://my.oschina.net/u/1471093/blog/354442

 

在此添加,最新grad了配置地址為:http://my.oschina.net/u/1471093/blog/539075

我的android studio之路day 02

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.