裏は@l_b__さんです。今年の後半にかけてAndroidのUSBホスト周りに少し詳しくなってきた、@kshojiです。Driverなどというものを作って公開しております。USBデバイスを自分で作って、Android側でドライバを書いたら、好きなデバイスを作ってAndroidで自由に動かせて、楽しいんじゃないかなー。いうことで、今回この記事を書いてみます。HIDなデバイスが今時の流行っぽいので、それに乗ってみることにします。USBデバイスの自作と、そのデバイスに対応するアプリ作成の参考になれば嬉しいです。3.1からUSBホスト機能に対応して、アプリで、JavaのAPIを使ってUSBデバイスのドライバが書けるようになりました。LinuxのデバイスドライバといえばC(libusb)で書く、もしくはカーネル側をいじるという印象があるので、これはすごく画期的なことだと思います。なんといっても、Javaはとっつきやすいですから。SDKにもUSBミサイルランチャを操作するサンプルが付いています。USBミサイルランチャは色々な環境でサンプルとして使われているようです。注:必ずしもUSBデバイスであればなんでも認識する、というわけではないようです。MIDIなデバイスは認識しませんでした。USBホストの公式ドキュメントはこちらからどうぞ。githubのリポジトリにこの記事用のコード一式を置いてみました。いちおう、見通しがよくなるようにしているつもりです。...と言っても、AbstractDeviceActivityクラスあたりから見ていくと、なんとなくわかるかな、程度ですが。WTFPLにしてあるので、煮るなり焼くなりお好きにどうぞ。実機TAS-codingコントローラを作るファミコン用実機TASコントローラとかも作っているkshojiです。Calendarへは初参戦となります。やらしくお願いします。詳しくはニコニコ大百科のTASの項目あたりがオススメです。大雑把に言えば「最速でゲームをクリアする」ために必要な再現用データを作る、という競技です。RAM書き換えなどのズルをしていないので「実機で再現できる」というのがポイントです。実機で再現できるので、つまり、実際に実機で再生させるプロジェクトというのもいくつか存在します。実機TASコントローラを作ろう以前、ファミコン実機でTASるコントローラを作ったこともあり、その連想でなにか出来ないか模索してみました。Speed-codingのコントローラを作ってみます。codingでもあり、typingでもありますが。「自動キー入力するUSBキーボード」を自作する感じになります。ちなみに今回のTASのルールとしては、プログラムのソースコードを入力し終わるまで、としています。完成したものがこちらにあるので、動画を観てみましょう。ご覧の通り、エディタの表示が追いつかないほどの変態高速入力となっております。3を使ってみた先日、既存の有料アプリを無料化→アプリ内課金を追加しよう、という流れで実装をしてみました。新しいバージョンのライブラリが出たタイミングだったようで、折角だからこのライブラリを使って実装してみたときのメモです。思っていたところ、IInAppBillingService.aidlを使ったサンプルがさっぱり見つからず、見つかるのはIMarketBillingService.aidlを使うものばかり...。Blogの記事を見つけました。最近バージョンアップしてたんですね。先の記事によると、向上した点はこんな感じのようです。設計を改善して、アプリが完結に書けてデバッグ・メンテナンスしやすくなった。以前だと数100行書かないといけなかったコードが、50行くらいでできるように。堅牢なアーキテクチャにより、決済のロストが少なくなった。呼び出しが高速になった。待望されていた、「一度だけ購入できるアイテム」の購入や、アイテム情報の問合せができるようになった。SDKのサンプルを試そうというわけで、SDKのサンプルを見ていくことにしました。Library」をインストールします。サンプルプロジェクトはSDKをインストールしたディレクトリ内の「extras/google/play_billing/in-app-billing-v03」にあります。Eclipseに取り込んでビルドします。