EclipseからAndroid Studioに移行する

##はじめに
 
こんばんわ！すっかり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](http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager)


##本題
Eclipseが最近ともかく不安定なので、Android Studioに移行しようとおもいました。
移行自体はSDKのツールつかえば出来るのですが、Android Studioで生成したプロジェクトとの違いを調べてみました。

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

プロジェクトはこんなかんじ。
![プロジェクト](http://f.cl.ly/items/0U2L0j1g1y1S0v1y3m2t/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-07%2022.26.55.png)

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

![エクスポート](http://f.cl.ly/items/2X1B1b2x0t0E0Y3L1d29/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-07%2022.45.00.png)

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

>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からインポートしてみます。

![エラー](http://f.cl.ly/items/0j013n2C2V1u2G1t203D/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-07%2023.13.03.png)


エラーがおきたので、生成されたファイルを除くと、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
```

##無事完了

![起動](http://f.cl.ly/items/280F3K091Y17212e3f3u/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-07%2023.33.42.png)

無事インポートして起動しました。
実行時に.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で新規にプロジェクト作成して比較してみます。

![比較](http://f.cl.ly/items/2a2E160x3k1m2C3u2N01/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-07%2023.37.11.png)

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

![アプリつくった](http://f.cl.ly/items/1U132r1p0D0q1S1N3w0X/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88%202013-12-07%2023.41.11.png)

##結論

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