Android/hakkaku_android

Last-modified: 2010-10-15 (金) 15:26:00

アニメーションは、タイマーとスレッドを使って定期的に描画する方法がある

 1.JavaのTimerクラス+スレッドを使用する方法と、
 2.android.os.Handlerクラスのタイマを使用する方法がある

 JavaのTimerクラスとスレッドを使用する例
 http://www.hakkaku.net/articles/20090206-341

 android.os.Handlerのタイマクラスを使用して繰り返しタイマを呼び出す例 
 http://www.hakkaku.net/articles/20090212-348
 主観だが、後者のほうがロジックが見やすい

< >とは何か?

 private ArrayList<Monster> monsters;
 < >内がクラス名で、< >内のクラスのArrayListを作成していることを表す。
 他にも、LinkedListや、HashMapで使われる記述法
 http://www.javadrive.jp/start/

再描画は、(クラス名).invalidate(); で再描画を促すべきで、

 直接、onDrawを呼び出すべきではない

画面サイズが変更されたときに呼び出されるメソッドは onSizeChanged

 ⇒Androidの本体を横にしたときに呼ばれる

各種イベント

 onCreate() .. 初めて作成されるとき
 onStart() .. ユーザーから見えるようになる直前
 onRestart() .. 停止した後、それをもう一度開始する直前
 onResume() .. ユーザーからの入力が行われるようになったとき
 onPause() .. 別のアクティビティを開始しようとしているとき
 onStop() .. ユーザーから見えなくなったとき
 onDestroy() .. 破棄される前

 http://developer.android.com/intl/ja/guide/topics/fundamentals.html
 の中段の図も参照

メニューボタンが押されたときに呼び出されるメソッドはonOptionsItemSelected

AlertDialogは、SDK1.5になって使い方が変わった

 http://www.hakkaku.net/articles/20090629-471
 こちらの、AlertDialogは動作確認済み。
 古いソースで動かないものはこちらでチェック

Android の Spinner は、コンボボックスにあたるコンポーネント

 (何かを回転させるものを想像してしまうが)

実機の画面キャプチャについて

 iPhone では、ホームボタンを押しながら本体上部の電源ボタンを押すだけで
 キャプチャが撮れたが、Android では、今のところ、
 実機だけで画面キャプチャを撮ることはできない。

 ⇒今は、パソコンと Android を接続して、PCからキャプチャを撮るしかない
  http://www.hakkaku.net/articles/20090723-535 ←やり方

docomo HT-03AとUSBケーブルをつないでも、

 Dalvik Debug Monitorが実機を認識しない問題について

 USB大容量記憶装置として認識されてしまい、
 正しいUSBドライバがインストールされないことがあるとのこと
 http://www.hakkaku.net/articles/20090723-535

 HTC Asiaというドライバで認識させる方法もあるが、
 HT-03Aに付属するUSBケーブルでないと認識されないことがあるという情報もあり

実機をデバッグモードにする方法

 1.[home]ボタンを押してホーム画面に戻る
 2.[menu]ボタンを押して、ついで、[設定]をタップする
 3.[アプリケーション > 開発]をタップ
 4.[USBデバッグ]をチェック状態にする
 http://www.hakkaku.net/articles/20090723-535

(iPhoneでいうところの)デバッグモードでの転送とリリースモードでの転送法

 http://www.hakkaku.net/articles/20090723-535
 の最下段に説明あり

setContentViewに指定するもの

 setContentViewには、Layoutを指定することが多いが、
 ゲームなどでは、直接ViewをsetContentViewに指定することがある。
 http://www.hakkaku.net/articles/20090727-489

ButtonもViewクラスとして受けることが可能

 ButtonもViewを継承しているため、

 public void onClick(View v) {
 if (v == btn) {
    txt.setText("Hello, World!");
   }
 }

 のような記述が可能

Bitmapクラスを用いると、SDカードに画像を保存することが可能

 http://www.hakkaku.net/articles/20090831-564

シミュレータで画面回転を試すには、[CTRL]-[F12]を押す

 

画面を横にしても画面が変わらないようにする方法

 
 AndroidManifest.xmlを編集して属性を変更すればよい
 manifest/application/activity の属性、android:screenOrientation を
 "portrait"   … 縦画面で固定
 "landscape"  … 横画面で固定
 "unspecified" … デバイス任せ

SDカードの確認処理は

 Environment.getExternalStorageState(); によってチェック可能

Log.v( "タグ", "メッセージ" );

 でLogCatのタグとメッセージの欄に表示できるが、
 どちらも、任意の文字列だが、日本語には対応していない。

Android Market http://www.android.com/market/

 iPhoneのApp Storeに相当するもの

Android Market に登録するのに躊躇する点

 それは、開発者登録。2009年8月現在、初回登録料が 25ドル必要。

 しかし、iPhone の AppStore では、年会費が 99ドルで、
 Windows Marketplace でも、年間 99ドルが必要。
 (しかも、Windows Marketplace では、アプリケーション1本ごとに、
 99ドルを支払う必要あり)
 これを見ると、Android Market は、他社よりも良心的。

開発者登録の方法

 http://www.adakoda.com/android/000100.html
 要約すると、以下の通り

 (1)開発者登録サイト「 http://market.android.com/publish/ 」へアクセス
 (2)Googleアカウントでログイン
 (3)開発者名やメールアドレス、Webサイトなどを登録
 (4)Google Checkoutで25$を支払う

Android developers - 公開の準備

  http://developer.android.com/intl/ja/guide/publishing/preparing.html
 要約すると、以下の通り

 ・テストをしっかりする
 ・エンドユーザーライセンスを検討する
 ・ログ出力など、デバッグ機能を無効にする

ランチャー用アイコンは48x48の透過PNG

アプリケーションへの署名

 費用がかかるしっかりとした証明機関に登録しておく必要はなく、
 自己署名(勝手に作ったデジタル署名)でも問題ない。

 Eclipseからデジタル署名を行う方法
 http://www.hakkaku.net/articles/20090907-580

※バージョンアップを行う際には、AndroidManifest.xml で

 バージョン番号で違う番号を設定しておかないと、
 Android にインストールできないようになってるので、注意。

既に、デバッグ版がインストールされている場合は、

 Android Marketから新たにインストールすることはできないので、
 アプリケーションをアンインストールしてからインストールする

ボタンのラベルや各種メッセージなどを国際化する場合には、

 リソースXMLを編集した上で、R.string.xxx のようなリソースIDを
 指定することで実現。

 例)
 ・values\strings.xml に <string name="label_ok">OK</string>
 ・values-ja\strings.xml に <string name="label_ok">おっけー</string>

アラートダイアログは、OKだけでなく、YES/NOやYES/NO/CANCEL、

 リスト形式やラジオボタン、チェックボックスやプログレスバーダイアログ、
 カスタムダイアログなども作成可能
 http://www.hakkaku.net/articles/20090924-581