將 Android Project 轉為 Gradle based
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
:
-
加入空白檔案,將其命名為
build.gradle
-
在
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
設為對應的資料夾位置。 -
查看自己 project 用了那些 library ,找出對應的 gradle install 方法,加進
build.gradle
裏。當然,你也可以不做這步,但做了的話,將來要更新 library 便方便得多了。 -
如你有自行 install gradle, 可以用 cmd 到 project directory 執行
gradle assembleDebug
,讓 gradle 下載對應的 library。如沒有的話,可用 andriod studio 內置的功能 (View -> Tools Window -> gradle) 去執行assembleDebug
-
gradle 執行完成後便萬事 okay。
結語
每次更改後 build.gradle
都要讓 Android Studio sync 一 次才能更新設定。若要新增 library 便一定要有網絡連線,因為 gradle 自動替你下載相關的 library 和其 dependency,下載完成後可以將 gradle set 做 offline mode ,對網絡有限制的開發者很有用。
雖然 gradle 功能強大,但暫時自己用到的就只是 library management 和改 package name 而已。下次再談談 gradle 有什麼有用的功能。