Android
ロック画面にAppWidgetを表示する方法を調べたがそんな方法は存在しないようだ。 かわりにロック画面の上にActivityを表示することができることがわかったのでその方法について書く。ロック画面の上にActivityを表示するには以下のようにフラグを付けるだけ…
仮想マシンアクセラレーションによるエミュレータの高速化でエミュレータの仮想マシンアクセラレーションによる高速化を紹介したがGoogle Maps API用のx86 system imageは配布されていないので、Google Maps APIを使用したい場合、自分でx86 system imageを…
最近のCPUは仮想マシンを走らせるため拡張が組み込まれており、それを利用してAndroidエミュレータを高速化することができる。 詳しくは http://developer.android.com/tools/devices/emulator.html#accel-vm を参照。 先に言っておくが、これを実行してもiP…
UIライブラリのサンプルアプリを詰め込んだ「Android UI Patterns」が便利。 気になる点としてはパーミッションとして以下のものを必要とすることが上げられる。 完全なインターネット アクセス 連絡先データの読み取り USB ストレージのコンテンツの変更/削…
Android 3.0 から Loader API が導入された。 Support Package を利用するとAndroid 1.5以上でもこのAPIを使えるようになる。Loader API が AsyncTask と立ち位置が重なるように思えたので AsyncTask との比較してみた。 AsyncTaskとの比較しての結論 結論か…
Android SDK には Proguard が組み込まれており、コードを圧縮・最適化・難読化できる。 特にライセンス認証を行っていたり、コア技術が入っていたりする場合、難読化は必須。Androidプロジェクトに Proguard を適用する際にわかったことを記述する。 Androi…
SharedPreferences にバイナリデータを入れる際は Base64.encodeToString(byte, int) を使って文字列化する必要がある。 new String(byte) を使って文字列化した場合、データを取り出すときになって下記のようなエラーが発行される。 org.xmlpull.v1.XmlPull…
Eclipseが launch の途中で停止してしまった場合、 adb の問題を疑ってみるといい。 コマンドラインから以下を実行し adb を再起動すると解決する。 # adb kill-server # adb start-server
Sony Tablet S は通常のデバッグ用の手続きだけでは Mac では adb に認識されない。 次のようにベンダーIDを adb_usb.ini に書き込むと認識してくれるようになる。 echo "0x54c" >> $HOME/.android/adb_usb.iniTablet本体には「USBデバッグが接続されました…
結論から言うと Android でアプリケーションを終了させる方法は用意されていない。 とはいえいくつか回避策がある。 Activity#moveTaskToBack(true) でホームスクリーンに戻ることができる。ただし、この場合 Task は破棄されないので、再びこのアプリケーシ…
認証やデータの取得等、アプリケーション起動時に必ず実行したい初期化をどこに入れるのが良いのか調査した。 見つかったパターンは以下の通り。 それぞれ利点・欠点があるのでどれが良いとは一概には言えない。 ApplicationManifest.xml で Main Activity …
ファイルサーバーに蓄えたファイルを Androidタブレットから閲覧したいので、SMB対応ファイルマネージャーを試して見た。結論から言うとSMB対応という意味では納得できる解は見つからなかった。 どのアプリもSMBサーバーのファイルを他のアプリで利用するに…
Android でバックグラウンド処理を走らせるのによく使う Handler と AsyncTask だが使い分けをどうしたらよいのか悩ましいところである。 ググってみると同じような悩みを持つ人がいるようで、Stack Overflow に次のような質問が投げられていた。 android - …
AndroidのUIデザインについてはこれまで Android Design Pattern が参考になったが、Google公式の Android Design が負けず劣らず参考になりそう。 まだ軽く目を通しただけだが、空き時間を使って目を通して見ることにしよう。
Android の Logcatビューアを使っていると Application や Text で絞り込みできそうに思えるが、logcatコマンドの引数にはそのような絞り込み機能はないようだ。 さらにいうと PID は出力できるが Application の値を出力されるオプションはなさそうだ。 log…
Androidのログ送信アプリとして Log Collector を紹介したが、aLogcat のほうがUIで細かい設定ができ開発者にとっては便利。ただしログを画面に読み込んじゃうので重いのと機能が多い分Log Collectorほど簡潔ではないので開発者以外には向かないかも。
PCにつないだAndroid端末のログはLogcatでみることができるのだが、テストを行ってくれている同僚やユーザーからログを送ってもらうにはどうしたらいいのかわからなかったので調べてみた。結論から言うと Log Collector を使うとログを出力することができる…
Android の SQLiteDatabaseHelper を拡張し、 Rails の migration のような仕組みを構築しようと考えた。 あるフォルダ内のあるインターフェイスを実装したクラスをインスタンス化する形にしたかったので、ClassLoader#getResource(String) を使ってフォルダ…
AndroidのViewクラスには onFocusChanged(...) や onWindowVisibilityChanged(int) などのメソッドがあり、これらをオーバーライドすることで表示状態に応じて状態を切り替えることができる。 ただし、過信は禁物。ListViewの中で使うとこれらのイベントは表…