Android Studio 1.0 (以下AS)がリリースされた。と同時に eclipse ADT pluginのフェードアウトも発表されたため、今後の開発は ASに軸足を移していく必要がある。
一応 eclipseからのプロジェクトのインポート機能も用意されてはいるが、eclipseで安定して開発できているものを今から変更するのはあまり意味が無い気がするし、そもそも依存関係のあるプロジェクトの移行には弱いという印象がある。新しいプロジェクトだけ ASで開発していけば自分の作業環境としては問題がない。
今回は OCRライブラリの評価を進めるため、eclipseで作ったライブラリ(jar, so)を ASで再利用するための方法を調べた。
参考したのは http://tondol.hatenablog.jp/entry/20130521/1369111104 。ただ開発中バージョンに基づいた記事のため、現在では通じない記述があった。
#手順
jar, soの用意
まず eclipseで作った tess-two, eyes-twoの jarファイルと共有ライブラリをひとまとめにした。必須の作業ではないが、色々なプロジェクトで使い回したいため。
- 共有ライブラリ(*.so)は jniLibsに
- jarは libsに
それぞれまとめておくといい。
プロジェクトを作る
ASを立ち上げて新規プロジェクトを作る。Wizardの質問には適当に答えて空の MainActivityが作られればいい。
ライブラリ(*.jar)の追加
先ほどまとめておいたjarを libsの下へ Copy & Pasteする。 Drag & Dropするとコピーでなく移動してしまうので注意。
tess-two.jarに対して右クリック → Add as Libraryを行う。なんでかよく分からないが libsに入っている他のjarも同時に処理されるっぽい。
次に appの build.gradleを編集する。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
compile files('libs/tess-two.jar')
}
compileの3行目が必要ない。2つ上の行の記述だけで充分。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.2'
}
これで jarファイルはプロジェクトに組み込まれた。
共有ライブラリ (*.so)の追加
共有ライブラリは app/src/main/jniLibsディレクトリを作り、そこに各プラットフォームのディレクトリと共有ライブラリを置いていく。
こちらはファイルを置くだけで設定することはない。ライブラリの置き場所は変更可能 (参照 : http://vividcode.hatenablog.com/entry/android-app/gradle-jnilibs)
実験: OCR
先日作った OCRのテストプロジェクトを ASで作りなおしてみた。
Jolly good.