(広辞苑より)2009年10月26日月曜日Androidアプリケーションを開発するための準備Tweet来月、海外に出張することもあってdocomoのHT-03Aを購入してしまった。本当は海外で使うというのは口実でAndroidアプリケーションを開発したいだけだったりする。ここでは個人的なメモも兼ねて、Windows上でAndroidアプリケーションを開発するための準備について記しておく。Classicをダウンロード(現時点の最新版は3.5.1)して、それを適当なディレクトリに展開する。C:\に展開した場合、C:\eclipse\というディレクトリができる。因みに日本語版でも問題ないと思うが、自分は英語版のEclipseを使っている。"eclair")して、やはり適当な場所に展開する。C:\android\に展開した場合、C:\android\android-sdk-windows\というディレクトリが作成される。C:\android\android-sdk-windows\toolsを環境変数PATHに追加しておく。Managerが起動するので、そのままプラットフォームをアップデートする。http://..."のチェックボックスをオンにすること。Packagesでインストールされたプラットフォームを確認できる。Packagesで必要なバージョンをインストールできる。Androidのアップデートが終わったら、Eclipseを起動させる。最初に作業ディレクトリ(workspace)を訊かれるが適当なディレクトリを指定する。Plugin、Locationにhttps://dl-ssl.google.com/android/eclipse/を指定する。Toolsという項目が表示されるので、チェックボックスをチェックしてNextボタンを押し、最後にFinishボタンを押して、Eclipseを再起動する。[Window]-[Preferences]でダイアログを開き、ツリーメニューのAndroidを選択する。LocationにC:\android\android-sdk-windowsを指定して、Applyボタンを押す。manager]で作成するか、コマンドラインで以下のコマンドを実行する(ここではデバイス名をmy_avdとしているが、どのような名前でも良い)。自分はコマンドラインで作成した。因みにtargetオプションで使用するプラットフォームのバージョンを設定できる。my_avdあとは、コードを書くだけだ。Worldアプリケーションあたりを作成するのが良いと思う。Androidの実機でデバッグするには、まず、開発しているプロジェクトのManifestファイルのApplicationタグにandroid:debuggable="true"を記述する(または、ダイアログのApplicationタグの項目でDebuggableをtrueにする)。実機(自分の場合はHT-03A)のメニューで、[設定]-[アプリケーション]-[開発]-[USBデバッグ]をチェックする。開発中にスリープモードにしたくない場合は、[スリープモードにしない]をチェックしておく。実機と開発するPCをUSBで接続する。Updateはせずに特定の場所からインストールする。場所はC:\android\android-sdk-windows\usb_driverを指定する。最後にWindowsを再起動する。Configurations]を選択して、ダイアログを開く。ModeをManualにする。Chooserダイアログが開くので、実機を選択して実行する。実機上でアプリケーションが起動したら成功だ。Toolsからアプリケーションに署名をする必要がある。Marketを利用したい場合は、デベロッパープロフィールを作成して、クレジットカードで$25を支払えば配布できるようになる。(eclair)が正式リリースされたので、それに合わせて内容を修正した。Gearsで位置情報を取得してストリートビューで表示させる」で、無線LANから取得した現在位置をGoogleマップとストリートビューで表示するウェブアプリを作ったが、今回、それをブログなどにもそのまま貼り付けられるようにしてみた。JavaScriptを使ったアプリなのでそれほど変更するところもなかったのだが、無用な部分を削除し、きちんと画面にエラーメッセージを表示するようにした。動作させるためにはGearsをインストールしている必要がある。APIでそれをGoogleマップとストリートビューで表示させるだけだ。因みに、今年の7月からGoogleマップの画面で左上にある四角いボタンを押すと現在位置を表示できるようになっている。今回のアプリでは、現在位置を示すマーカーに自作の扇形アイコンを使った。ストリートビューの向きと連動している。ペグマン(人型アイコン)でもよかったのだろうけど、個人的には向いている方向が分かりづらいと思う。以下にソースファイルを示す。ページを読み込んだ際にGearsにより位置情報を取得している。href=\"http://gears.google.com/\">Gears</a>が必要です。"Flashがサポートされていません。"ストリートビューの範囲外です。画像で与えられた迷路に対し2点間の最短経路を求めるTweet迷路の描かれた画像に対して、ピクセルの座標で指定したスタート地点とゴール地点の最短経路を求めるプログラムをPython+PILで書いてみた。使用する画像は、デジカメで撮ったものでも、ウェブから拾ってきたものでも、ペイントソフトで自作したものでも構わない。この画像は携帯カメラで撮った自作の簡単な迷路だ(画像上)。それに対して指定した2点間の最短経路を赤線で示してみた(画像下)。ピクセル単位で計測しているので赤線が若干ガタガタしていて完全な最短経路ではないがほぼ最短と考えていいだろう。400)の場合、コマンドラインで以下のように実行する。400これで最短経路を求めることができ、画像ビューアが立ち上がって経路の描かれた画像が表示される(画像下)。画像ビューアではなく画像ファイル(ここではmaze01out.jpgとする)に出力したい場合は、以下のようにする。maze01out.jpgこのプログラムは2つのパートで成り立っていて、一つは画像認識を使った画像データの領域分けであり、もう一つはその領域内の2点間の経路探索である。CCL)アルゴリズムとA*探索アルゴリズムを利用して処理している。詳細についてはそれぞれのリンク先と最後に示したソースコードを参照して欲しい。次の例は、Wikipediaの迷路の項目で例示されている迷路画像(画像上)を解いてみたものだ(画像中、下)。スタートとゴールまでの経路は複数あるが、いずれも最短経路を示している。それぞれ以下のように実行して作成した。268使い方の詳細は、-hオプションを付けて実行すれば良い。-aオプションで、探索する画像の大きさを指定している。大きな画像だと時間が掛かるのでデフォルトで60,000ピクセルにしている。複雑な迷路や写りの悪い写真だと画像がつぶれてしまい、正しい結果にならないかもしれないので、そのようなときは指定するピクセルを大きくする必要がある。元の画像ファイルが指定サイズ以下の場合は実サイズのままで処理される。-tオプションでは、CCLアルゴリズムで使用する色の閾値を指定している。デジカメなどで撮影した画像は、例えば白い部分でも黄色っぽい白や赤っぽい白など完全に同じ色情報でない場合が多く、大体白に近ければ同じ色と見なすわけだが、その許容範囲がこの閾値となる。因みに閾値を0にすると完全に同じ色情報を持っていないと違う色だと見なされる。30]以下、ソースコード。Engineメッセージボード*当ブログに関する意見や要望などにお使いください。Googleアカウントでログインすることで書き込みができます。Twitterへの送信を同時に行うこともできます。ストリートビューで散歩*Googleマップのストリートビューを利用して散歩をするWebアプリです。ストリートビューとマップを分割してマーカーを視界タイプに変更することで使いやすくしてあります。APIを利用したグラフ・チャート作成ウェブアプリです。クリック一つで簡単にグラフを作成できます。ブログ記事への貼り付けなどにどうぞ。OpenIDテスト*OpenIDによるログインのテストを行います。mixiであればクリック一つで、他のOpenIDアカウントであればそのURLを入力することでテストできます。一言コメント表示機能付きです。HTML文字変換*テキストで使われているHTML特殊文字をウェブで表示できるようにするための文字変換ウェブアプリです。プログラムのソースコードなどをブログ記事に貼り付けるときなどに便利です。短縮URLチェッカー*フィッシングサイト判別機能付き短縮URLチェッカーです。テキストボックスに変換したいURLを入力すればbit.lyの短縮URLが表示され、bit.lyの短縮URLを入力すればもとのURLが表示されます。展開されたURLがリンク付きで表示されますが、もしフィッシングサイトの疑いがある場合は警告が表示されます。Trendsの急上昇ワードをランキング順に表示します。Googleでのキーワード・画像検索やWikipediaによる用語の説明もあります。※GoogleがAPIの提供を終了したため、現在停止中です。自己紹介noxゲームを楽しむだけの余裕と感性は失いたくないnoxです。