最新の記事アプリケーションアクティビティ、インテント、サービスについてデバイスAndroidでのデバイス制御について。地磁気センサ、加速度センサなどマルチメディアグラフィックス、音楽や動画再生などマルチメディア処理についてユーザインターフェースAndroidのユーザインターフェイスについて、またユーザインターフェイスを提供するコンポーネントの話題について。リソースAndroidでのアイコン、画像、文字列、ローカライゼーションなどHacksマッシュアップ開発環境Androidの開発環境など。コメントはまだありません今回は、Androidへ入力するキーの情報の作成の仕方を説明します。キー情報の作成は、Androidソースコード環境のBuildが必要です。TechBoosterでは、AndoridソースコードBuildに関する記事を取り扱ってます。Androidのソースコードを入手するAndroidのソースコードをビルドするBuild環境が整っていない方は、本エントリを読む前に上記のエントリに目を通し環境を整えるといいでしょう。キー情報の設定には2つの項目があります。以下続きにて、詳細な設定方法に触れていきます。■keylayoutファイルの設定変更keylayoutファイルとは、AndroidOSがデバイス(ハードウェア)から受信したSCANCODEから、どの文字を出力するかを結び付けるマッピング情報を持ったファイルです。SCANCODEはハードウェアにより異なり、静的なものです。JavaSourceCode内で、以下のMethodを使用することでSCANCODEを確認することができます。KeyEvent#getScanCode()Emulator環境では、qwerty.klファイルが読み込まれているため、以下がロードされます。ANDROID=ソースコードのHEAD$ANDROID/sdk/emulator/keymaps/qwerty.kl様々なキーボードが接続されている環境では、キーボード毎に読み込まれるkeylayoutファイルは異なります。ファイルを使用する様になっています。WAKE_DROPPED省略............<デバイス名>にスペースが入っている場合は、アンダーバーを代わりに入れるんだ。<デバイス名>.klファイルの検索時に”スペース”の部分は”_”として検索される様になってるんだよ。気をつけようね!書式は左からスペースを挟み以下を記述する。AndroidOSが定義しているKEYCODEは以下ファイルを確認します。新規KEYCODEを追加したい場合は、本ファイルに記載し別途Framework内に処理を追加することで対応できます。Flagに記入しているWAKE|WAKE_DROPPEDの意味WAKE/WAKE_DROPPEDはどちらもサスペンド状態からの復帰を示します。WAKEサスペンド状態からの復帰後、アプリケーションへキーイベントが送信されるWAKE_DROPPEDサスペンド状態からの復帰後、アプリケーションへキーイベントが送信されない○発行されるKEYCODEの編集では、keylayoutファイルを編集し、動作を変更させてみましょう。以下ファイルを適当なエディタで開き、/sdk/emulator/keymaps/qwerty.klSCANCODE158のBACK指定をHOMEに変更してみます。WAKE_DROPPED変更が終わった後に、Makeを行いEmulatorを起動します。Emulatorの右側のBACKボタンを押下してみましょう。HOMEボタンの挙動を行う様になっていることと思います。□番外編:Emulatorの起動方法Androidのソースコードをビルドするの内容の通り、コマンドラインからの起動でもよいですが、以下の様な起動方法もあります。※SDKの環境を壊すため、必ずバックアップを行う様にしてください。Make完了後、以下のディレクトリには、IMGファイルが3種生成されます。ramdisk.imgsystem.imguserdata.img3種のIMGファイルの内、system.imgを以下ディレクトリにコピーします。※コピーを行う前にSDK内のsystem.imgファイルはバックアップをとること。ManagerからEmulatorを作成することで、自己BuildバイナリのEmulatorを起動できます。■keycharsファイルの設定変更keycharsファイルは、keylayoutファイルにて設定されているKEYCODEにおいて、Shift入力時、ALT入力時などに何を入力するかを決めるファイルです。keycharsファイルに関しても、ロードのされ方はkeylayoutファイルと同様であり、AndroidOSは<デバイス名>.kcm.binファイルを探した後に、見つからない場合にはqwerty.kcm.binをロードします。ファイルの状態で行わなければいけません。Emulator環境で使用されている、keycharsファイルは以下になります。'#'keycodeの項目は、上記keylayoutファイルで説明したKEYCODEと一致します。「caps」はSHIFT押下時、「fn」はALT押下時、「caps_fn」はSHIFT+ALT押下時に出力される文字になります。○SHIFT/ALT押下時の文字出力の編集では、keycharesファイルを編集しSHIFT/ALT押下時の挙動を変更してみます。$ANDROID/sdk/emulator/keymaps/qwerty.kcm2キーを押下する場合、SHIFT押下時は”ダブルクォーテーション”、ALT押下時は”@”、SHIFT+ALT押下時は”*”を入力する様に変更します。'@'の行を以下の様に編集します。'*'編集後、Makeを実行し、Emulatorを起動します。右側に表示されている、キーボードにおいて、以下の様に入力出来ることと思います。*長々とお疲れ様でした。2.0(β)に対応した解説書です。TechBooster.TechBoosterについて。