昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた
前回は最新のAndroidアプリ開発環境(Android Studio 3.3.2)を Windows 10 にインストールしサンプルプログラム(Hello World)をビルド&実行を行った。
「技術の進歩(う~ん変化か?)はちょっと目を離せば置いてけぼり」って感じ。使い方まで変わってしまうので大変だ!
今回は、昔のAndroidアプリ開発環境で作ったAndroidアプリプログラム(3つ)を最新の開発環境(Android Studio 3.3.2)でビルド出来るようにしてみた
昔使っていた頃の Androidアプリ開発環境を調べたところ
- Android Deleloper Tools V21.1.0-569685
- Android SDK Tools 21.1
- Android SDK Platform-tools 16.0.2
でした。
最新開発環境でビルド出来るように試みたアプリプログラムは次のような機能を作り込んでいる(インプリメントしている)ものです。
- データベース入出力(sqliteを使用したSQLアクセス)
- TCP/IP通信での送受信(socketによるServer/Client送受信通信)
- Andoroid端末がUSBホストとしてusb-シリアル変換で接続されたマイコン(当時はルネサス製RX63N)とシリアル送受信
- XY座標のビジュアル表示(usb-シリアル通信で受信したXY座標値をリアルタイムに表示)
- 多重viewによる階層表示(XY座標Viewと画像Viewの重ね表示)
- 等々
3つのandroidアプリ間でシリアル通信したり、TCP/IPのソケット通信をしたりと今思えば結構込み入ったシステムのプログラムを作ったように感じる。システムの概略はこんな感じ。
ところでなぜ、今回古い開発環境で作成したアプリプログラムを最新環境でビルド出来るようにしようと思ったかというと、今後新しくAndroidアプリを作成する機会に恵まれた場合に活用できるコードが含まれているかもと思い、最新の開発環境でも使えるようにしておけばとその時必要な機能を取り出して使えるようにしておこうと思ったから。(当時は結構苦労して作ったものなのでもったいないという気持ちも有り。プレッシャーとストレスでかなり精神的に参ってしまった記憶が蘇る。そのせいでかなり太ってしまったような・・・今は何とか減量に成功かぁ?)
また、当方がこんなことができるものを作って来ましたということを多くの方に知って頂き、貴方のシステムや製品で使っていただけるものはないかと思ったためです。
特にUSB-シリアル通信でマイコンと通信できるということは、マイコン側にいろんなセンサを繋げて Android端末とmicroUSBで接続しセンサで取得したデータをその場でAndroid端末に表示したりインターネット上のサーバに送信することも可能となり、今日でも意外と欲している方もいるのかなぁと思ったからです。
手順は
- 最新の Android Studio 3.2.2 の古い開発環境で作成されたアプリプログラムのプロジェクトをインポートしてくれる機能で読み込む。
- 次のエラーメッセージが表示され、ビルド出来ない。
エラーメッセージ
ERROR: Could not find com.android.tools.build:gradle:3.3.2.
Searched in the following locations:
– https://jcenter.bintray.com/com/android/tools/build/gradle/3.3.2/gradle-3.3.2.pom
– https://jcenter.bintray.com/com/android/tools/build/gradle/3.3.2/gradle-3.3.2.jar - いろいろ試みた結果、次のProject Structure内の Android Plugin Version を次のように変更するとよいようだ。
Android Plugin Version : 3.3.2 -> 2.3.0
※どうやらAndroid Studioが参照するWebサイト(https://jcenter.bintray.com/com/android/tools/build/gradle)に バージョン 3.3.2のファイルが存在しないためにエラーになっているようだ。
「OK」ボタンを押すと、3.3.2にアップグレードした方がいいよ、というような英語メッセージが表示されるが「Don’t remind me again for this project」を選択した。
なお、このメッセージに従ってアップデートした場合、違うエラーが発生し、ビルド失敗となりました。(このケースは別途調査が必要だ。)
以上で、何とかビルドの成功。
実機で実行した際の画像はこちら。(操作端末※画面はぼかしてます。)
AndroidタブレットのMicroUSBに接続したusbシリアル変換の先にArduinoやGR-KURUMI、ESP32、RaspberryPi等のマイコンを接続出来るのでアイデア次第ではAndroidスマートフォンやタブレットのUSBアクセサリ(MicroUSB接続機器)を作れそうな気がする。
その他、これまでwindowsパソコン等に繋げて使っていたシステム機器を小型化あるいはシンプル化して、andoroid端末(スマートホンやタブレット)にもUSBで繋げてそのシステム機器を使えるようにするような用途にも使えないかなぁと思うところです。基本USBに繋がった機器から見たらシリアル通信なので機器側のプログラムの変更は少ないと思えます。