Eclipseで作成したAndroid向けのプロジェクトをAndroid Studioにインポートする方法について記載します。
また差分についても言及します。
Table of Contents
1 インポート方法
Eclipse側でGradleのファイルをエクスポートしてから、Android Studio側で開くやり方もあったようですが、現在はAndroid Studio側から直接Eclipseのプロジェクトをインポートできるようになっています。
2 インポートの実行
Android Studioを立ち上げます。"Import project (Eclipse ADT, Gradle, etc.)"を選択します。
Eclipseのプロジェクトを選択します。
項目を全てチェックした状態でFinishを押します。
インポートが成功し、imports-summary.txtが開かれます。
imports-summary.txtにはインポートの状況が記載されており、例えば、assetsディレクトリはapp/src/main/assetsに変更されたことが分かります。
3 Android Studioで作成した場合との差分
大きな差分はないです。インポートしたまま使っても問題ありません。
以降のdiffの結果はdiff [AndroidStudio] [Eclipse]で出力してます。
3.1 .gitignoreがない
Android Studioで作成した場合は.gitignoreが自動で追加されますが、インポートした場合は追加されません。適時、手動で追加する必要があります。
3.2 ProGuardファイル
Android Studioで作成した場合はプロジェクトに含まれるproguard-rules.proを使用するのに対し、インポートした場合はデフォルトのproguard-android.txtを使用します。
ProGuardの設定を変更したい場合は、proguard-rules.proを追加し、app/build.gradleでproguard-rules.proを読み込むようにします。
Eclipseからインポートした場合はproguard-rules.txtを読み込むようになっています。proguard-rules.proという名前にしたい場合はapp/build.gradleを修正する必要があります。
buildTypes { release { minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } }
3.3 自動生成されたJavaファイル
インデントの差があるだけです。
3.4 自動生成されたresディレクトリ配下のxmlファイル
Eclipseで作成したものとAndroid Studioで作成したもので違いはありますが、Eclipseで作成したものをAndroid Studioでそのまま使えます。
3.5 mipmap-xxxとdrawable-xxx
Eclipseではdrawable-xxxであった各解像度向けの画像ファイルが、Android Studioではmipmap-xxxになっています。
これはAndroidManifest.xmlで決定しています。mipmap-xxxにしたい場合は、AndroidManifest.xmlで@drawableを@mipmap変更してディレクトリ名を変えれば良いでしょう。
AndroidManifest.xml <application android:allowBackup="true" - android:icon="@mipmap/ic_launcher" + android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity
3.6 アプリのバージョンとAndroid SDKのバージョン
アプリのバージョン情報とAndroid SDKのバージョンはapp/build.gradleに記載されるようになっています。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.example.myapplication" > + package="com.example.myapplication" + android:versionCode="1" + android:versionName="1.0" > + + <uses-sdk + android:minSdkVersion="23" + android:targetSdkVersion="23" />
Android Studioで作成したプロジェクトのapp/build.gradleは以下の通りです。
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.example.myapplication" minSdkVersion 23 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
3.7 .idea/misc.xmlでMavenのインポート設定がない
Android Studioで作成した場合は.idea/misc.xmlにMavenのインポート設定が記述されますが、インポートした場合は記述されません。Mavenを使っていない場合は特に問題ないでしょう。
diff -uprN AndroidStudio/.idea/misc.xml Eclipse/.idea/misc.xml --- AndroidStudio/.idea/misc.xml 2015-09-29 10:19:26.000000000 +0900 +++ Eclipse/.idea/misc.xml 2015-09-29 10:17:59.000000000 +0900 @@ -1,12 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="MavenImportPreferences"> - <option name="generalSettings"> - <MavenGeneralSettings> - <option name="mavenHome" value="Bundled (Maven 3)" /> - </MavenGeneralSettings> - </option> - </component> <component name="ProjectLevelVcsManager" settingsEditedManually="false"> <OptionsSetting value="true" id="Add" /> <OptionsSetting value="true" id="Remove" />
3.8 Support Library
Android StudioはデフォルトでSupport Libraryを組み込まないようです。Eclipseで作成した場合は組み込まれます。
差分とは無関係な話ですが、Support Libraryを組み込んでおくと、旧バージョンのAndroidでActionBarが使えたりするので、プロジェクトでどうするかを決めてください。
dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.android.support:support-v4:23.0.1' }