Posted at
AndroidDay 7

EclipseからAndroid Studioに移行する

More than 5 years have passed since last update.


はじめに

こんばんわ!すっかり12/7が終わりそうなのですが、なんとか間に合いそうです。

原稿が遅くなったのは、AVDを実行する時のIntelのハードウェアーアクセラレータがOS X10.9に対応していないというバグのために、何回もフリーズして原稿が飛んだためです。。。

OS X 10.9を使ってる人はここからダウンロードしておきましょう。10.9用のHotFixが提供されています。SDKに付属のdmgでインストールするとシステムごともっていかれます。

http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager


本題

Eclipseが最近ともかく不安定なので、Android Studioに移行しようとおもいました。

移行自体はSDKのツールつかえば出来るのですが、Android Studioで生成したプロジェクトとの違いを調べてみました。


準備

EclipseでAndroid2.3移行の新規プロジェクトを作成します。

プロジェクトはこんなかんじ。

プロジェクト


エクスポート

エクスポートしてみます。

エクスポート

移行したところ、最後に注意書きが書いてあります。


Export successful.

Exported project: /Users/xxx/Documents/workspace/SampleApp

Choose 'import project' in Android Studio

and select the following file:

/Users/xxx/Documents/workspace/SampleApp/build.gradle

Do NOT import the Eclipse project itself!


SampleApp直下のbuild.gradleを選択してインポートしろとのことです。


生成されたファイルの確認

gitで確認したところ以下のようなファイルが生成されていました。

$ git status

# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# build.gradle
# gradle/
# gradlew
# gradlew.bat

$ git add . -A
$ git status
# new file: build.gradle
# new file: gradle/wrapper/gradle-wrapper.jar
# new file: gradle/wrapper/gradle-wrapper.properties
# new file: gradlew
# new file: gradlew.bat

こんなファイルが追加されてるみたいです。Macなのに.batは……(´Д`;)


インポート

Android Studio 0.3.7からインポートしてみます。

エラー

エラーがおきたので、生成されたファイルを除くと、gradleが1.6指定です。そのため、1.8を利用するように変更してみます。

$ git diff

diff --git a/build.gradle b/build.gradle
index b7c6241..11d347c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,7 +3,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:0.5.+'
+ classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5c22dec..861eddc 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip


無事完了

起動

無事インポートして起動しました。

実行時に.imlファイルをgitに加えるか聞いてきたので"Yes"を押しました。

差分は以下の通りです。

$ git status

# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: SampleApp.iml
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: build.gradle
# modified: gradle/wrapper/gradle-wrapper.properties
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gradle/
# .idea/
# build/
# local.properties

さて、ここでAndroid Studioで新規にプロジェクト作成して比較してみます。

比較

同じ条件で作成しましたが、大分構成が違います。Android Stuido側は、Appというフォルダーを作成し、その中に必要なアプリをいれています。対してEclipseは直下にいます。これは複数のアプリやライブラリを同時に管理したりすることができます。新規に作成するなら、"New Module"のメニューから作成できます。

アプリつくった


結論

単にexportとしてimportするとAndroid Studioで"動かすこと"はできます。しかし今後Googleは明確にAndroid Studioをメインにすることを宣言しています。CropImageなど、Android Studio専用ライブラリをもしも使うのならば、ある程度時間をってAndroid Studioで作成したプロジェクト側に移行したほうがいいとおもわれます。(むしろ単にEclipseからExportするだけだとあまりメリットがないきがします)