Android Studio 早前正式脫離 beta,Google 也宣佈放棄支援 eclipse,加上越來越多 library 支援 gradle,是時候將舊的 android project 轉為 gradle based。

除了運行速度快,Android Studio 對 Gradle 的支援較好。Gradle 現在是開發 android 的 de facto,對我來說它是 ant + maven 的混合體,設定相對簡單,不用處理編緝麻煩的 xml

Eclipse project

要將 Eclipse project 轉為 Android Studio's project,很簡單,只要 right click project,然後 export 選 Generate Gradle builde files,再到 Android Studio import build.gradle 便完成。

IntelliJ Project

若是 IntelliJ Project 的話便麻煩一點,要自行加入 build.gradle

  1. 加入空白檔案,將其命名為 build.gradle
  2. build.gradle 加入以下內容

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:0.5.+'
        }
    }
    apply plugin: 'android'
    
    
    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
    }
    
    
    android {
        compileSdkVersion 18
        buildToolsVersion "18.0.1"
    
    
    
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    
    
        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')
    
    
        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
    
    }

    其中的 sourceSets 裏的的 srcDirs 設為對應的資料夾位置。

  3. 查看自己 project 用了那些 library ,找出對應的 gradle install 方法,加進 build.gradle 裏。當然,你也可以不做這步,但做了的話,將來要更新 library 便方便得多了。

  4. 如你有自行 install gradle, 可以用 cmd 到 project directory 執行 gradle assembleDebug ,讓 gradle 下載對應的 library。如沒有的話,可用 andriod studio 內置的功能 (View -> Tools Window -> gradle) 去執行 assembleDebug
  5. gradle 執行完成後便萬事 okay。

結語

每次更改後 build.gradle 都要讓 Android Studio sync 一 次才能更新設定。若要新增 library 便一定要有網絡連線,因為 gradle 自動替你下載相關的 library 和其 dependency,下載完成後可以將 gradle set 做 offline mode ,對網絡有限制的開發者很有用。

雖然 gradle 功能強大,但暫時自己用到的就只是 library management 和改 package name 而已。下次再談談 gradle 有什麼有用的功能。

參考連結