Android¶
- 目次
- Android
コンテンツ一覧¶
メモ¶
Androidプラットフォームについてのメモ¶
ぐぐって拾った情報なので新旧混合
- カーネルはLinuxだが、OSのAPIはglibcではなくbionic libcを採用している
- 携帯電話・組み込み用に軽量化したAPIでglicとは互換性はない
Android NDKで使えないシステムコール・ライブラリ関数一覧
- 携帯電話・組み込み用に軽量化したAPIでglicとは互換性はない
- libcはOpenBSD由来, libmはFreeBSD由来
- libstdc++はgccのとは違い中身は空っぽに近い
Android標準APIについてのメモ¶
ビュー¶
- スマフォ画面(縦)のレイアウトは、シンプルなものはLinearLayout(vertical)を使い、柔軟な配置を望むならConstraintLayoutを使う。
- LinearLayoutで部品間の隙間を入れるのは、layout_margin
データ構造¶
- android.util.ArrayDeque<E>
双方向キューの実装、 - android.util.Pare<F, S>
- android.util.Property<T, V>
- android.util.SparseArray<E>
intをキーにしたマップ。キーの検索は二分木 - android.tuil.TypeValue
動的に型付けするデータコンテナ - android.support.v4.util.CircularArray<E>
リングバッファの実装 - android.support.v4.util.Pools
オブジェクトプールの実装、非スレッドセーフ版/スレッドセーフ版あり
連携¶
- android.support.v4.content.LocalBroadcastManager
プロセス内でBroadcastIntentを投げる - android.app.IntentService
Intentリクエストを非同期で処理(単一のワーカースレッドで実行) - android.content.Intent
- android.os.Messenger
プロセス間通信をMessageオブジェクトの授受(同期)で行う。 - AIDL
プロセス間通信用インタフェース定義言語。.aidlファイルにインタフェースを記述、ProxyとStubクラスが自動生成、Android OSのbinderを使った通信で使用。
メモリ管理¶
- android.support.v4.util.LruCache<K, V>
LRUキャッシュの実装
ロギング¶
- android.util.TimingLogger
区間ごとの経過時間をログする
例外¶
- android.util.AndroidException
Androidフレームワークが投げる例外のスーパータイプ
ファイルI/O¶
- android.support.v4.util.AtomicFile
ファイル書き込み時、バックアップが作られ、書き込み完了後差し替える
JSON¶
- org.json
データベース¶
- android.database.Databaseutils
dumpCursor, concatenateWhere, queryNumEntries, sqlEscapeString, getSqlStatementType
画面設計についてのメモ¶
Fragmentの活用是非¶
賛否両論、現在のところ、Fragmentを理解して適切に使えば効果を発揮、使い方を誤れば悲惨、という印象