5年前のAndroidProject(Eclipse3.5)をAndroidStudioに移行する

はじめに

はじめまして、medibaのauスマートパス開発部 松本です。

私たちのグループでは、その名前の通り、auスマートパス向けのサービスを中心に開発を行っており、一部自社サービスの開発なども行っています。 これらのサービス群で使われている技術などについては、おいおい紹介していければと思っています。

現在ではWebとアプリを連動させた企画や訴求が非常に多く、新しいサービスの企画時にも、Webとアプリを最初から用意することが当たり前のようになっています。

弊社では現在、アプリ開発を行っていますが、実は昔、こんな名前でアプリをリリースしたりもしていました。

image

様々な事情により、1年ほどで中止されてしまった幻のプロジェクトです。

Eclipse3.5からAndroidStudioへ移行

社内でのアプリ開発の需要の高まりもあり、数年ぶりに昔のソースを引っ張りだして、最新の環境で動くようにしてみました。

EclipseのADTにて作成したプロジェクトを、AndroidStudioへ移植を行います。 AndroidStudioのメニューよりファイル→New→ImportProjectを選択、オプションとしてGradle-styleを選択しました。

これだけで、~/AndroidStudioProjects 配下のフォルダに、AndroidStudio用のプロジェクトが出来上がり、Gradle 関連のファイルも自動生成してくれます。 app/build.gradleを編集し、sdkのバージョンを当時のものへ近づけました。

defaultConfig {
    applicationId "jp.mediba.********"
    minSdkVersion 4
    targetSdkVersion 4
}

かなり古いですね。ライブラリなどはインポートされませんでしたので、以下のようにlibsフォルダを作成、配置しました。

image

左ペインのツリー表示部分を「プロジェクト」に合わせ(こうしないと新規→ディレクトリがでてきません)、app配下にlibsフォルダを作成すれば、後は直接ドラッグ&ドロップでjarファイルを配置できます。

配置後、プロジェクトペイン上のjarファイルを右クリックし「Add as Library」を選択することで、AndroidStudio側で自動でbuild.gradleファイルに

dependencies {
    compile files('libs/******.jar')
    compile files('libs/******.jar')
}

のように記述してくれます。

これで、ビルドが通るようになりました。 AVD Managerから、テスト用デバイスを作成、ターゲットOSを設定し、そのままでは解像度の問題があるためscaleを2dp on device = 1pc onscreenに変更します。

そして起動。無事エミュレータ上でアプリが起動しました。 5年も前のプロジェクトの移行がこんなに簡単に終わるとは思いませんでした。

top

Logクラスの活用

いちいちデバッガを起動するまでもない、簡単な動作チェックなどを実施するときは、もっぱらLogクラスで済ませてしまいます。

import android.util.Log;
Log.d(“ラベル名:”, it.getStringExtra(“変数名”));

デバッグ用として後から書くのではなく、コーディングの流れの中で書いてしまうと手間が省けます。 記述も簡単ですし、AndroidStudioのlogcatで/dや/vのようにフィルタしておけば、以下のようにまとめて視認するのも楽です。

image

分岐確認用の文字列まで仕込むようになると、本末転倒になってしまいますが、非常にお手軽なのでおすすめです。