Thursday, March 26, 2015

How to Develop Android Applications アンドロイド・アプリ開発のハウツウ

    まず開発ツールを用意しましょう。Eclipseはお勧めの開発環境の一つです。無料ですので、少なくとも試してみたい人にはぜひ一度使ってみたいものです。設定方法は[2]を参照してください。

    以下の過ちを避けましょうと言われています[1]。
1. ドキュメントを読まないで開発に着手する
2. Android ツールを活用しない
3. Android コミュニティへ助けを求めない
4. Android アプリが Java で書かれていると知り、安心して気を抜いてしまう
5. モバイル開発など、片手間で十分だとたかをくくっている
6. 既存のサンプルコードを安易に流用する
7. OS との連携が取れていない
8. Android マニフェストファイルの構成を誤る
9. Android 上で iPhone アプリを開発してしまう
10. リリース後、アプリをメンテナンスしない
    以上の1を無視して、早速テストプログラムを作ってみましたが、案の定以下のエラーで挫折しました。
Failed to allocate memory: 8
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
    AVDのメモリサイズが大きすぎるというアドバイスは多い(例えば[5],[6],[7])が、512MiBにしても、64MiBにしても同じエラーになります。因みにOSはXPで、タスクマネージャーでは、利用可能物理メモリは1.59GBになっています。
    色々調べてみると、シミュレータは使えても、とても遅いらしいです。どうせ実際のデバイスのために開発するので、なんだかのアンドロイド・デバイスくらいは持っているはずです。その場合、Eclipseにそのデバイスを使わせることもできるし、デバッグだってできます。
    それで、すぐさま手元のデバイスをPCに繋げてみました。もともとADBで使ったことがあるので、難なくEclipseのAdroidプラグインに認識してもらえました。それで、書いたサンプルコードを実行してみると、見事でそのデバイスで動かすことができました。確かにトライしていたAVDよりも全然早いです。というか、ウインドウズのどのアプリも早くおごいた気がします。具体的なやり方は、[9]を参考にしていたので、それを見て頂ければすぐ分かります。
    一応画像処理に興味があるので、OpenCVのインストールの仕方、使い方などを中心に調べておきました。
    調べていくうちに、App Inventor(もともとGoogleからでしたが、今MITになった)を見付けました。何とプログラムを書かなくてもアプリを開発できるそうです!早速http://beta.appinventor.mit.edu/にアクセスして、Googleのアカウントでログインできました。しかし、Androidのデバイスに接続しようとすると、以下のエラーになりました。 

Appinventor was unable to find the adbrestart program. It found the directory C:\Documents and Settings\wlu\Local Settings\Application Data\Android\android-sdk\platform-tools, but there was no file C:\Documents and Settings\wlu\Local Settings\Application Data\Android\android-sdk\platform-tools\adbrestart.bat there.
App Inventor suspects your Setup software is out of date.
When you press OK, App Inventor will start the Blocks Editor but you will not be able to connect to a device until you fix the setup.

The Troubleshooting Guide at http://beta.appinventor.mit.edu/learn/troubleshooting.html may provide further help.
    どうもちゃんとインストールすべきものをしていないようです。ウインドーズを使っているので、Installing App Inventor Setup for Windowsにアクセスして、インストーラーをダウンロードしてインストールしたら、一応うまく行きました。

(2014年12月17日アップデート)
Androidアプリ開発入門紹介されているリンクを見ると、Android StudioはGoogleが用意しているようです。「The official Android IDE」だそうで、以下の特徴を誇っています。

  • Intelligent code editor
  • Code templates and GitHub integration
  • Multi-screen app development
  • Virtual devices for all shapes and sizes
  • Android builds evolved, with Gradle
 インストールすると、メイン画面は以下の感じです。IntelliJ IDEAベースだから、動きはかなり重たいです。使い方は、[27]のAndroid Studio最速入門~効率的にコーディングするための使い方は大変参考になります。
 サンプルコードと使い方は、ここにあります。

Android Studio IDE - Main Screen
IntelliJ IDEAをダウンロードして使ってもできる雰囲気ですが。

 さっそく、Android Studio 1.0.1を立ち上げて、サンプルコードのCamera2Basic2を開いては知らせてみました。しかし、すぐConfigurationの画面になり、どうしたらいいか分からなくなってしまいました。

 散々悩んだ末、以下のことで引かかったことを判明しました。

  • Javaのバージョンは1.7であるべき
  • Android SDK Build-toolsをインストールしていない

 後者はAndroid SDK Managerでダウンロードできます。
 過去、Eclipseベースの環境で開発したことがあり、AVD Managerでエミュレータを作ったことがあるので問題ないでした。そうでなければ、AVDでまずその作業をする必要があります。
 しかし、それでも、以下のエラーメッセージになりました。メモリ足りない?どんだけ使うかよ!
emulator: WARNING: Requested RAM size of 1536MB is too large for your environment, and is reduced to 1152MB.
emulator: device fd:644
HAX is not working and emulator runs in emulation mode
Cannot set up guest memory 'pc.ram': Invalid argument
emulator: The memory needed by this VM exceeds the driver limit.
Error accepting connection, aborting

参考リンク
[1].Android アプリ開発の初心者が犯す10の間違い
[2].Android開発環境の構築 Eclipse編
[3].Gingerbread を BeagleBoard と Armadillo にのせてみた:Gingerbread on BeagleBoard/BeagleBoard-xM、Armadillo-500FX、Armadillo-440のイメージファイルをダウンロードできる。
[4].Androidのアプリケーションを作って最終的にはAndroidマーケットで公開する
[5].Failed to allocate memory: 8
[6].タブレット用 AVD が起動しない
[7].WIndows XP で ICS のエミュレータが起動しない
[8].Androidアプリ開発環境を 42分で構築する(1時間切りに挑戦)
[9].[Android]Androidタブレット実機でデバッグしよう!
[10].Androidゲーム開発入門、私が2Dアクションゲームをつくるまでに蓄積されたTips。タイトル通りゲーム開発に関するノウハウです。 
[11].ギャラリーから画像を取得する.インテント(Intent)で呼び出したギャラリーから選択された画像を取得することができる.
[12].BaseAdapterクラスを拡張してリスト項目のレイアウトを自由にカスタマイズする。
[13].グレースケール > Le Premier Soleil.VBのコードですが、フルカラー画像を 256 階調のグレースケール画像に変換する方法を3種類試した例。
[14].ギャラリーから画像を選んでトリミングする
[14].Galleryを使ってSDカード内の画像をリスト表示する
[15].Android Tutorials for Mobile Image Processing。アンドロイドを使ったモバイルデバイスによる画像処理のチュートリアルである。OpenCVを使ったプログラミングである。Cygwinを使ってのかいはつである。
[16].Tutorial on Using OpenCV for Android Project。パブリックドメインの強力な画像処理開発環境であるOpenCVのAndroid版教科書である。
[17].OpenCVインストール&Cygwinで実行。これはWindowsのCygwinにOpenCVをインストールするための目もですが、何故かダウンロードしてきたOpenCV-2.4.2.exeを実行すると、libというフォルダがない。そのため、同リンクにある一連のインストールコマンドはまったく実行できない。
[18].cygwin on WindowsXP で OpenCV を使えるようにする。これは恐らくgccがインストールされていない環境を前提にしている。GCCがあれば、MinGWはいらない気がする。それでも、CMakeのインストールで挫折した。
[19].OpenCV 2.4.2 on Cygwin 1.7.15 environment, using g++-4.5.3:Windows ネイティブAPI (Win32 GUI や DirectX ビデオキャプチャ) を使うようにビルド
[20].OpenCv 2.3.1 for Android インストール
[21].OpenCv 2.3.1 for Android インストール その2・AndroidNDKインストール
[22].写真を油彩画のように変換する簡易フィルタの実装
[23].2次元カオス図形を芸術的に描画する
[24].世界を目指せ!Androidアプリ開発入門:12回にわたっての講座で結構分かりやすい!
[25].初心者でもできる!アンドロイドのアプリ開発:naverまとめのノウハウ集であり、結構雑学的に勉強になる
[26].MIT App Inventor:プログラミング知識いらずのAndroidアプリ作成ツール!
[27] Android Studio最速入門~効率的にコーディングするための使い方
[28]AndroidでOpenCVを使ってみよう
[29][Android] GPUImage for Android で超爆速画像フィルターを作成しよう!

No comments:

Post a Comment