Android Studio最新配置教程2016

 
http://blog.csdn.net/wen_demo

1、Android studio 基本簡單介紹

 

1.Android studioEclipse的差異:

 

1Studio中有ProjectModule的概念,Studio中一個窗體僅僅能有一個項目,即Project,表明一個workspace。但是一個Project可以包括多個Module。比方你項目引用的Android Library, Java Library等,這些都可以看作是一個Modulephp

 

二、文件夾中將java代碼和資源文件(圖片、佈局文件等)全部歸結爲src。在src文件夾下有一個main的分組。同一時候劃分出javares兩個文件夾。java文件夾則至關於Eclipse下的src文件夾。res文件夾結構則同樣.html

 

2.gradle構建工具簡單介紹

 

1Gradle是一種依賴管理工具。Gradle的核心是一個豐富的可擴展的基於Groovy的領域特定語言(DSL)Gradle經過提供說明性語言元素將說明性構建推到下一層,您可以組裝。這些元素也提供build-by-convention支持JavaGroovyOSGiWebScala項目。java

不少其它,這個說明性語言是可擴展的。android

加入本身的新語言元素或提升現有的。從而提供簡潔、易於維護和理解構建。json

 

 

2、Android Studio安裝配置

 

1.基本安裝

A、安裝Android Studio

安裝過程和通常安裝過程一致,下載地址:android-studio

--》http://developer.android.com/sdk/index.html(需Fan—Qiang)app

--》http://www.android-studio.org/index.php/download eclipse

眼下最新的版本號爲 V-1.3141.1980579jvm

 

B、安裝Gradle

 下載地址:maven

--》http://services.gradle.org/distributions

眼下最新的版本號爲 gradle-2.5-all (建議使用gradle-2.4-all.zip

 

 

2.基本配置

一、配置Android Studio(簡單的安裝過程請參見)

安裝完畢以後進入Setting 完畢SDK的關聯配置(Setting中可以進行IDE的所有配置。詳細配置方法見https://www.jetbrains.com/idea/help/android.html

 

 

假設電腦硬件配置比較高建議對Android Studio進行相關的環境參數配置,這樣執行會比較的流暢。

 

 

2、配置Gradle

下載完畢以後選擇目標解壓位置(隨意無中文路徑)進行解壓。並且在path中改動環境變量 : X:\XX\gradle-2.4\bin,注意 : Android Studio必須使用gradle1.9以上版本號 才幹夠使用不然會提示報錯。

測試gradle , cmd(管理員)模式下輸入: gradle -version 就能夠:

 

 


3、Android Studio 使用相關

1.新建項目project

完畢環境配置以後啓動Android Studio

(假設已經構建過項目的老用戶需要在 File 選項下

close project 關閉當前的project 

 

 

進入主界面以後新建

 

相應的編輯框分別爲:project名(包名後綴)、公司名(包名前綴)、project文件夾

 

進行新建的項目內型進行選擇,PhonewearTV...以及對應的SDk版本號

 

 

 

2.導入Studio項目project

 

點擊 open an existing Android Studio project 進行Studio項目的導入,已經構建過的項目會本身主動關聯Android Studio的圖標。


3.導入Eclipse項目project

Eclipse中導出

        1.將你的ADT插件版本號升級到22.0以上。

        2.Eclipse中。選擇File-->Export

        3.在彈出的導出窗體中,打開Android的目錄,選擇「Generate Gradle Build Files」。

        4.選中你想要導入到Android Studio中的項目。Finish

 


PS:導出的項目將會和原來的項目在同一文件夾。覆蓋原來的同一時候。會新增一個叫build.gradle的文件,導入Android Studio時將首先讀取這個文件。

 

導入到Android Studio

        1.Android Studio 中,首先關掉你當前的打開的項目。

        2.在歡迎界面,點擊Import Project(注:也是可以直接在菜單選擇Open project

        3.選中你在Eclipse中導出的項目,展開文件夾,點擊build.gradle文件,而後OK

        4.在以後的彈出對話框中,會要求你選擇Gradle的配置,選中Use gradle wrapper.(注:也可以本身定義你本機裝的Gradle,這樣構建project會比較的高速)

        

        

PS:假設沒有Grade build文件。也是可以將普通的安卓項目導入到Android Studio中。它會用現有的Ant build.但爲了更好地使用以後的功能和充分使用構建變量,仍是強烈地建議先從ADT插件中生成Gradle文件再導入Android Studio

4.項目相關構建build.gradle配置

1.根文件夾的./build.gradle

2.app Moudle下的./app/build.gradle

 

 

5.

6.Android Studio引用aar

aar

何爲aar?你們都知道jar文件把。假設你有一個Android Library項目。可以很是easy的導出jar文件,而後在其它項目中很是方便的引用,aarjar相似,差異就是一個Android Library項目導出的jar文件不能包括資源文件。比方一些drawable文件、xml資源文件之類的,因此這就有很是大的限制,在gradle以前咱們要引用帶資源文件的Android Library必須要把整個library導入進來進行引用,但是有了gradle以後。Android Library項目可以直接導出成aar,而後其它項目像引用jar的方式直接方便的引用。

 

導出aar

首先Android Library項目的gradle腳本僅僅需要在開頭聲明

apply plugin: 'com.android.library'

以後就和導出apk文件同樣的方法,運行 ./gradlew assembleRelease。而後就可以在 build/outputs/aar 目錄裏生成aar文件

 

① 引用本地的aar

生成aar以後下一步就是怎樣引用本地的aar文件?本地的aar文件並無像引用jar文件這麼簡單,官方也沒有提供解決方式。好在國外的一些前輩總結出了方法。如下就以test.aar文件爲例來詳述下方法

 

1、把aar文件放在一個文件文件夾內。比方就放在libs文件夾內

 

2、在appbuild.gradle文件加入例如如下內容

 

repositories {

    flatDir {

        dirs 'libs' //this way we can find the .aar file in libs folder

    }

}

3、以後在其它項目中加入一句gradle依賴便方便的引用了該library

 

 

dependencies {

    compile(name:'test', ext:'aar')

}

 

② 引用遠程倉庫的aar

 

這裏以maven爲例,固然也可以使用其它類型的倉庫,好比 Ivy

僅僅需要在jar包引用方式後面加入一個@aar就可以了。

compile 'com.alibaba:fastjson:latest.integration@aar'

 

包依賴(jar

compile group: 'com.alibaba', module: 'fastjson', version: 'latest.integration'

可以簡寫成

compile 'com.alibaba:fastjson:latest.integration'

latest.integration可以替換成詳細的版本號號,這裏是獲取server上的最新版本號。

 

去掉反覆依賴

compile 'com.alibaba.fastjson.latest.integration' {

    exclude module: 'annotations', group: 'com.google.android'

}

 

7.加速Android Studio/Gradle構建

開啓gradle單獨的守護進程

在如下的文件夾如下建立gradle.properties文件:

· /home/<username>/.gradle/ (Linux)

· /Users/<username>/.gradle/ (Mac)

· C:\Users\<username>\.gradle (Windows)

並在文件裏添加:

org.gradle.daemon=true

同一時候改動項目下的gradle.properties文件也可以優化:

# Project-wide Gradle settings.# IDE (e.g. Android Studio) users:# Settings specified in this file will override any Gradle settings# configured through the IDE.# For more details on how to configure your build environment visit# http://www.gradle.org/docs/current/userguide/build_environment.html# The Gradle daemon aims to improve the startup and execution time of Gradle.# When set to true the Gradle daemon is to run the build.# TODO: disable daemon on CI, since builds should be clean and reliable on serversorg.gradle.daemon=true# Specifies the JVM arguments used for the daemon process.# The setting is particularly useful for tweaking memory settings.# Default value: -Xmx10248m -XX:MaxPermSize=256morg.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8# When configured, Gradle will run in incubating parallel mode.# This option should only be used with decoupled projects. More details, visit# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projectsorg.gradle.parallel=true# Enables new incubating mode that makes Gradle selective when configuring projects. # Only relevant projects are configured which results in faster builds for large multi-projects.# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:configuration_on_demandorg.gradle.configureondemand=true

同一時候上面的這些參數也可以配置到前面的用戶文件夾下的gradle.properties文件中,那樣就不是針對一個項目生效。而是針對所有項目生效。

上面的配置文件主要就是作, 增大gradle執行的java虛擬機的大小,讓gradle在編譯的時候使用獨立進程。讓gradle可以平行的執行。

改動android studio配置

android studio的配置中。開啓offline模式。以及改動配置。主要是在這個地方配置的僅僅會在ide構建的時候生效,命令行構建不會生效。

命令行構建

基於上面的配置。命令行構建時在命令後面加上這個參數就能夠 --daemon --parallel --offline

 

3、Android Studio 使用常見錯誤

 

//設置腳本的執行環境

 

 

   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'])

    }

 

AndroidStudio本身定義屬性xmlns沒法識別問題解決

in Gradle projects,always use http://schemas.android.com/apk/res-auto

 正如in Gradle projects,always usehttp://schemas.android.com/apk/res-auto for custom attributes所說的

eclipse

http://schemas.android.com/apk/res/com.xxx.xxx  

換成

http://schemas.android.com/apk/res-auto  


這樣Gradle就會本身主動查找自定屬性的

 

Android Studio svn的使用


單文件 簽入當文件,右鍵subversion Add

文件紅色:表示文件沒有加入到server

綠色:表示沒有更新新的改動到server

普通黑色:表示和server同步

 

單個文件簽入簽出操做:右鍵subversion

Add,加入到server

Commit:提交

Update:更新,獲取新版本號

Integrate:合併

注意:SVNVSS不一樣簽入前假設文件被其它人改動需要比較版本號怎樣其它改動有效需要合併簽入




未完..待續

相關文章
相關標籤/搜索