アプリケーション開発

登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
Rocket clouds
アプリケーション開発 により Mind Map: アプリケーション開発

1. Java

1.1. カプセル化

1.2. 継承

1.3. ポリモフィズム

1.4. 型の安全性と定数

1.5. 例外

1.6. クラスのロードとオブジェクト生成

1.7. 生成に関するイディオム

1.8. パフォーマンスとリソースとのバランス

1.9. コレクション

1.10. イテレータ

1.11. スレッド

1.12. テクニック

1.12.1. ケアレスミスを減らす

1.12.2. 堅牢性を獲得する

1.12.3. 拡張性/柔軟性を獲得

1.12.4. 知っていると便利

1.12.5. 最適化

1.12.6. デザインパターン

2. Android

2.1. ライセンス形態

2.1.1. Apache Licence2.0

2.1.1.1. オープンソースソフトウェア向けのライセンス

2.1.1.2. Androidが採用しているライセンス

2.1.1.3. ソースコードの公開義務がない

2.1.1.4. 改変は可能

2.1.1.5. Apache Licenceが使われていることを文言にいれる必要がある

2.1.2. GNU GPL(GNU General Public License)

2.1.2.1. ソフトウェアライセンスの一種

2.1.2.2. コピーレフトのソフトウェアライセンスの代表的なもの

2.1.2.3. 許諾

2.1.2.3.1. プログラムの実行

2.1.2.3.2. プログラムの動作を調べて改変する

2.1.2.3.3. 複製物の再配布

2.1.2.3.4. 第三者に頒布

2.1.2.4. コピーレフト適用

2.1.2.4.1. 改変と拡張を許可

2.1.2.4.2. 著作物を無償

2.1.2.4.3. 2次著作物も無償

2.1.2.5. 代表例

2.1.2.5.1. Linux

2.1.2.5.2. Open JDK

2.1.3. GNU LGPL (GNU Lesser General Public License)

2.1.3.1. ソフトウェアライセンスの一種

2.1.3.2. コピーレフトのソフトウェアライセンス

2.1.3.3. 配布されたプログラムを再配布する場合、ソースを公開する義務

2.1.4. BSL License

2.1.4.1. オープンソースソフトウェア向けのライセンス規定

2.1.4.2. 代表的なソフトウェア

2.1.4.2.1. FreeBSD

2.1.4.2.2. PostgreSQL

2.1.4.3. ドキュメントに記載すれば公開義務なし

2.1.4.3.1. 「無保証」であることの明記

2.1.4.3.2. 著作権・ライセンス条文自身を表示

2.1.4.3.3. 著作権の表示

2.1.4.4. 商用化で利用しやすいライセンス

2.2. アーキテクチャ

2.2.1. アプリケーション

2.2.1.1. ホーム

2.2.1.2. 連絡先

2.2.1.3. 電話

2.2.1.4. ブラウザ

2.2.1.5. ・・・

2.2.2. アプリケーションフレームワーク

2.2.2.1. ActivityManager

2.2.2.1.1. Activityの管理

2.2.2.1.2. アプリのライフサイクルを管理し、状態変化の通知などを行う

2.2.2.2. WindowManager

2.2.2.2.1. ウィンドウの管理

2.2.2.3. ContentProviders

2.2.2.3.1. データ共有の管理

2.2.2.3.2. android.contentパッケージ

2.2.2.4. ViewSystem

2.2.2.4.1. UIの管理(ユーザーインタフェース)

2.2.2.4.2. テキストボックスやボタンを含むアプリの構築を可能にする

2.2.2.5. PackageManager

2.2.2.5.1. インストールの管理

2.2.2.6. TelephonyManager

2.2.2.6.1. 電話機能の管理

2.2.2.7. ResourceManager

2.2.2.7.1. リソースの管理(リソースファイル)

2.2.2.7.2. ローカライズされた文字列・グラフィックス・レイアウトファイルへのアクセス

2.2.2.7.3. アプリケーションから動的に参照する機能を提供

2.2.2.8. LocationManager

2.2.2.8.1. 位置情報の管理

2.2.2.9. NotificationManager

2.2.2.9.1. アラートの管理

2.2.2.10. アプリケーションコンポーネント

2.2.2.10.1. Activity

2.2.2.10.2. Service

2.2.2.10.3. BroadcastReceiver

2.2.2.10.4. ContentProvider

2.2.2.10.5. Intent

2.2.3. Androidランタイム

2.2.3.1. コアライブラリ(J2SE5.0)

2.2.3.1.1. JavaSEに準拠

2.2.3.1.2. Java言語に準拠したコアライブラリ機能

2.2.3.2. Dalivik仮想マシン

2.2.3.2.1. Dalivikバイトコードを動かす

2.2.3.2.2. 複数の仮想マシンインスタンスが効率よく動作

2.2.3.2.3. メモリ環境に最適化されたレジスタベース

2.2.3.2.4. 高速な実行

2.2.3.2.5. JavaからC/C++のネイティブを呼び出すAPI(JNI)対応

2.2.3.2.6. dexファイル

2.2.3.2.7. Apache Harmony(サブレット)

2.2.3.2.8. なるべくメモリ使用しないようにスリム化

2.2.4. ライブラリ

2.2.4.1. SurfaceManager

2.2.4.1.1. 複数のアプリの2D/3Dグラフィックスの結合

2.2.4.2. MediaFramework

2.2.4.2.1. オーディオやビデオの操作をサポート

2.2.4.2.2. Medeia Libraries

2.2.4.3. SQLite

2.2.4.3.1. リレーショナルデータベースエンジン

2.2.4.4. OpenGL ES

2.2.4.4.1. 3Dライブラリ

2.2.4.5. FreeType

2.2.4.5.1. ビットマップやベクタフォントのレンタリングライブラリ

2.2.4.6. Webkit

2.2.4.6.1. LibWebCore

2.2.4.7. SGL

2.2.4.7.1. 2Dグラフィックスエンジン

2.2.4.8. SSL(Secure Socket Layer)

2.2.4.8.1. 通信の暗号化

2.2.4.9. libc

2.2.4.9.1. C標準のシステムライブラリ

2.2.4.9.2. SystemCライブラリ

2.2.5. Linuxカーネル2.6

2.2.5.1. 電源管理

2.2.5.2. オーディオドライバ

2.2.5.3. WiFiドライバ

2.2.5.4. キーパットドライバ

2.2.5.5. バインダドライバ

2.2.5.6. フラッシュメモリドライバ

2.2.5.7. カメラドライバ

2.2.5.8. ディスプレイドライバ

2.3. ストレージ

2.3.1. Contextクラス

2.3.1.1. openFileOutput()

2.3.1.1.1. 書き込み可能なファイルのストリームを取得

2.3.1.1.2. deleteFile()で削除可能

2.3.1.1.3. getFileDir()

2.3.1.1.4. getDir()

2.3.1.1.5. 指定モード

2.3.1.2. createPackageContext()

2.3.1.2.1. 対象アプリのコンテキストを取得

2.3.1.2.2. openFileInput()

2.3.1.3. getExternalFilesDir()

2.3.1.3.1. アプリ固有のファイルを格納するディレクトリを取得する

2.3.1.4. getSystemService(SENSOR_SERVICE)

2.3.1.4.1. イベントリスナの登録や削除

2.3.1.5. getPackageManager()

2.3.1.5.1. アプリの情報を取得

2.3.1.5.2. インスタンスの取得が必須

2.3.2. ファイル出入力

2.3.2.1. 内部ストレージ

2.3.2.1.1. アプリがアンインストールされるときに削除

2.3.2.1.2. フォルダ名を確認

2.3.2.2. 外部ストレージ

2.3.2.2.1. 状態

2.3.2.2.2. getExternalFilesDir() APIレベル8以降

2.3.2.2.3. getExternalStoragePublicDirectory() APIレベル8以降

2.3.3. プリファレンス

2.3.3.1. 取得するメソッド

2.3.3.1.1. getPreferences()

2.3.3.1.2. getSharedPreferences()

2.3.3.1.3. getDefaultSharedPreferences()

2.3.3.2. SharedPreferencesクラス

2.3.3.2.1. edit()

2.3.3.2.2. commit()

2.3.3.2.3. remove()

2.3.3.2.4. clear()

2.3.3.2.5. Editorインタフェース

2.3.3.2.6. SharedPreferencesインタフェース

2.3.3.3. 保存する手順

2.3.3.3.1. 1.プリファレンスオブジェクトを取得する

2.3.3.3.2. 2.プレファレンスオブジェクトのedit()を使用して、データを編集するためのEditorオブジェクトを取得する

2.3.3.3.3. 3.EditorオブジェクトのputXxx()でキーと値を指定してデータを編集する

2.3.3.3.4. 4.Editorオブジェクトのcommit()で編集したデータをプリファレンスファイルに保存する

2.3.4. SQLite

2.3.4.1. SQLiteDatabase(必須)

2.3.4.1.1. 管理クラス

2.3.4.2. 格納可能な型

2.3.4.2.1. INT型

2.3.4.2.2. NULL型

2.3.4.2.3. BLOB型

2.3.4.2.4. TEXT型

2.3.4.2.5. REAL型

2.3.4.3. テーブル

2.3.4.3.1. _idという名前の列が存在することが前提で作られているクラス

2.3.4.3.2. 列制約

2.3.4.4. データ取得の手順

2.3.4.4.1. 1.rawQuery()・query()などにより複数のレコードを取得する

2.3.4.4.2. 2.rawQuery()が返すCursorオブジェクトのmoveToFirst()を呼び出し、カーソルを先頭に設定する

2.3.4.4.3. 3.getCount()で検索結果のレコード数を取得する

2.3.4.4.4. 4.getXxx()で各列の値を取得し、moveToNext()で次のレコードに移動する。これを全レコードに対して行う。

2.3.4.4.5. 5.close()でカーソルを閉じる

2.4. マルチメディア

2.4.1. オーディオ

2.4.1.1. 格納場所

2.4.1.1.1. res/raw

2.4.1.2. android.media

2.4.1.2.1. MedeiaPalyerクラス

2.4.1.2.2. SoundPoolクラス

2.4.1.2.3. ファイルを再生するには例外処理が必要となる

2.4.1.2.4. サポートファイル

2.4.2. ビデオ

2.4.2.1. VideoViewクラス

2.4.2.1.1. ビデオを再生するクラス

2.4.2.1.2. 拡大・縮小

2.4.2.1.3. 色の変更

2.4.2.1.4. XMLでのレイアウト配置も可能

2.4.2.2. MediaControllerクラス

2.4.2.2.1. 再生

2.4.2.2.2. 停止

2.4.2.2.3. 早送り

2.4.2.2.4. 巻き戻し

2.4.2.2.5. ビデオファイルの場所設定

2.4.2.3. サポートファイル

2.4.2.3.1. H.263

2.4.2.3.2. H.264 AVC

2.4.2.3.3. MPGE-4 SP

2.4.2.3.4. VP8(2.3.3以降)

2.4.3. 録音 / 録画

2.4.3.1. MediaRecorderクラス

2.4.3.1.1. 状態遷移に従って複数のメソッドを呼び出す必要あり

2.4.3.1.2. 順序が間違っていると録音不可。

2.4.3.1.3. 録音手順の例

2.4.3.1.4. パーミッション指定

2.4.4. 音量設定・取得

2.4.4.1. android.media.AudioManagerクラス

2.4.4.1.1. STREAM_ALARM

2.4.4.1.2. STREAM_DTMF

2.4.4.1.3. STREAM_MUSIC

2.4.4.1.4. STREAM_NOTIFICATION

2.4.4.1.5. STREAM_SYSTEM

2.4.4.1.6. STREAM_VOICE_CALL

2.4.4.1.7. STREAM_RING

2.5. テスト

2.5.1. JUnit

2.5.1.1. android.testパッケージ

2.5.1.2. 単体テストを自動化するフレームワーク

2.5.1.3. JUnit3をベースにして提供

2.5.1.4. ActivityInstrumentationTestCase2

2.5.1.4.1. Activityのユーザインタフェースイベントの単体テスト

2.5.1.4.2. キーイベント、Clickイベントなどを送信可能

2.5.1.4.3. getActivity()

2.5.1.5. ProviderTestCase2

2.5.1.5.1. ContentProviderの単体テスト

2.5.1.6. AndroidTestCase

2.5.1.6.1. アプリの単体テスト

2.5.1.7. ServiceTestCase

2.5.1.7.1. サービスのテスト

2.5.1.8. ProviderTestCase2

2.5.1.8.1. ProviderTestCaseのテストに使用

2.5.1.9. ApplicationTestCase

2.5.1.9.1. アプリのテストに使用

2.5.1.10. SingleLaunchActivityTestCase

2.5.1.10.1. テストケースの各メソッドで同一のActivityインスタンスを利用したい時に使用

2.5.2. Instrumentation

2.5.2.1. メソッドや "横取り" の制御のセット

2.5.2.2. コンポーネントを独立させて制御

2.5.2.3. アプリをロード処理制御

2.5.2.4. テストパッケージとテストされるアプリケーションの両方を同じプロセスで実行することも可能

2.5.2.5. コンポーネントのフィールドを変更したり検査したりすることが可能

2.6. 通信

2.6.1. ネットワークプロトコル

2.6.1.1. HTTP ・ TCP/IP

2.6.1.1.1. org.apache.http.impl.client

2.6.1.1.2. android.net.http

2.6.1.1.3. java.net

2.6.1.1.4. android.net

2.6.1.1.5. java.io

2.6.1.1.6. インターネット接続許可

2.6.2. Bluetooth

2.6.2.1. android.bluetooth

2.6.2.1.1. APIレベル5以降

2.6.2.1.2. BluetoothAdapter

2.6.2.1.3. BluetoothDevice

2.6.2.1.4. BluetoothClass

2.6.2.1.5. BluetoothSocket

2.6.2.1.6. BluetoothServerSocket

2.6.2.2. 通信許可

2.6.2.2.1. <uses-permission>

2.6.2.3. MACアドレス

2.6.2.3.1. ネットワーク上で各ノードを識別

2.6.2.3.2. ネットワークデバイスに一意に割り当てられる物理アドレス

2.6.3. Wi-fi

2.6.3.1. テザリング機能

2.6.3.1.1. Android2.2以降で使用可能

2.6.3.2. android.net.wifi

2.6.3.2.1. WifiConfiguration

2.6.3.2.2. WifiInfo

2.6.3.2.3. WifiManager

2.6.3.2.4. ScanResult

2.7. ネイティブ

2.7.1. JNI(Java Native Interface)

2.7.1.1. アプリケーションフレームワークでも多用されている

2.7.1.2. C++がサポート

2.7.1.2.1. 多重継承

2.7.1.2.2. template

2.7.1.2.3. C++におけるJavaのプリミティブ型の定義

2.7.1.3. 例外やRTTIが使用不可

2.7.1.4. ログ出力の手順

2.7.1.4.1. 1.<android/log.h>をインクルードする

2.7.1.4.2. 2.liblog.spをリンクする

2.7.1.4.3. 3._android_log_print関数を使用する

2.7.1.5. ヘッダファイル生成

2.7.1.6. 関数

2.7.1.6.1. 文字列はUNICODEで操作

2.7.1.6.2. UTF-8文字列を新規作成

2.7.1.6.3. GetStringUTFChars関数

2.7.1.6.4. GetStringUTFLength関数

2.7.1.6.5. ReleaseStringUTFChars関数

2.7.1.7. ネイティブメソッド

2.7.1.7.1. 命名規則

2.7.1.7.2. 必須となる引数

2.7.1.7.3. コマンドによるヘッダファイル生成

2.7.1.8. Javaとネイティブコードとのやり取り

2.7.1.8.1. 配列の扱い方が違う

2.7.1.8.2. 変換関数が用意されている

2.7.1.8.3. 扱える配列はプリミティブ型の配列のみ

2.7.1.8.4. GC対象外

2.7.1.9. 機能

2.7.1.9.1. Javaからネイティブコードのメソッドを呼び出す(逆も可能)

2.7.1.9.2. Java仮想マシンの生成や接続が可能

2.7.1.9.3. 引数チェックは必須

2.7.2. ASE(Adnroid Scripting Environment)

2.7.2.1. 端末上でスクリプト言語の直接編集

2.7.2.1.1. ネイティブコードとして動作

2.7.2.1.2. Java仮想マシンで動作

2.7.2.1.3. JRuby

2.7.2.1.4. JavaScript

2.7.2.1.5. Tcl

2.7.2.1.6. シェルスクリプト

2.7.2.2. Android APIの大部分にアクセス可能

2.7.2.3. 機能

2.7.2.3.1. 大幅に簡略化されたAPIが利用可能

2.7.2.3.2. Androidエミュレータで動かせる

2.7.2.3.3. akpファイルとしてパッケージ化できる

2.7.3. NDK(Native Development Toolkit)

2.7.3.1. ネイティブのみではアプリ開発は不可

2.7.3.2. C/C++で開発サポート

2.7.3.2.1. Linux32/64ビット

2.7.3.2.2. MacOS X

2.7.3.2.3. Windows

2.7.3.3. メリット

2.7.3.3.1. 既存資産の再利用

2.7.3.3.2. 処理の高速化

2.7.3.4. デミリット

2.7.3.4.1. プラットフォーム依存

2.7.3.4.2. アプリの複雑化

2.7.3.4.3. 明示的にメモリリソースを開放しない限り、いつまでもシステムに残る

2.7.3.5. Cygwin

2.7.3.5.1. 別途インストール

2.7.3.6. Application.mk

2.7.3.6.1. Javaのアプリケーションのmakefileに必要な情報を記述するファイル

2.7.3.6.2. 配置場所

2.7.3.7. 開発手順

2.7.3.7.1. 1.NDKをインストール

2.7.3.7.2. 2.Javaとネイティブライブラリの間のインタフェースを決定

2.7.3.7.3. 3.NDKプロジェクトを作成

2.7.3.7.4. 4.ネイティブコードを作成し、<プロジェクト名>/jniディレクトリに配置

2.7.3.7.5. 5.ベースディレクトリやビルド対象のライブラリやソースコードを指定する

2.7.3.7.6. 6.NDKのインストールディレクトリにあるndk-buildを実行してビルドを行う

2.7.3.7.7. 7.生成されたライブラリ(soファイル)をAndroidSDKで開発したAndroidアプリから利用する

2.8. GPS ・センサ

2.8.1. GPS

2.8.1.1. android.location

2.8.1.1.1. LocationManager

2.8.1.1.2. LoctionListenerインタフェース

2.8.1.1.3. メソッド

2.8.1.2. android.webkit

2.8.1.2.1. Webサイトのブラウズ機能

2.8.1.3. アクセス許可

2.8.1.3.1. <uses-permission>

2.8.1.4. ACCESS_MOCK_LOCATION

2.8.1.4.1. エミュレータを使用して擬似位置情報を使うときに設定

2.8.2. センサ

2.8.2.1. Sensorクラス

2.8.2.1.1. 種類

2.8.2.2. android.hardware.SensorManager

2.8.2.2.1. Androidデバイスが搭載しているセンサを利用

2.8.2.2.2. getSystemService()

2.8.2.2.3. センサにアクセスするためのクラス

2.8.2.3. android.hardware.SensorListenerインタフェース

2.8.2.3.1. onAccuracyChanged()

2.8.2.3.2. onSensorChanged()

2.8.3. etc

2.8.3.1. SearchManagerクラス

2.8.3.1.1. 検索サービスの利用

2.8.3.2. TelephonyManagerクラス

2.8.3.2.1. Androidデバイスが搭載している情報を取得

2.8.3.2.2. 電話番号やSIMのシリアル番号と国コードなどの情報を取得

2.8.3.3. Cameraクラス

2.8.3.3.1. アプリでカメラを使用

2.8.3.4. FaceDetectorクラス

2.8.3.4.1. 画像上で人の顔を簡易認識する

2.9. アプリケーション管理

2.9.1. バージョニング

2.9.1.1. <manifest>

2.9.1.1.1. 適切に設定することが推奨

2.9.1.1.2. <uses-sdk>

2.9.1.2. PackageManagerクラス

2.9.1.2.1. getPackageInfo()

2.9.1.3. Android Market

2.9.1.3.1. プライベートキーを2033年10月22日以降に設定

2.9.1.3.2. 両方設定

2.9.1.3.3. 両方指定

2.9.2. プライベートキー

2.9.2.1. アプリには署名が必要

2.9.2.2. 署名がなければ、端末やエミュレータでインストール不可

2.9.2.3. keytoolで生成

2.9.2.3.1. キーストア

2.9.2.3.2. 実行例

2.9.2.4. jarsingner

2.9.2.4.1. apkファイルに署名

2.9.2.5. 条件

2.9.2.5.1. 開発者自身が所有

2.9.2.5.2. 識別される個人・法人・組織の実体を表すこと

2.9.2.5.3. 有効期限がアプリの予定試用期間より長いこと

2.9.3. Maps APIキー

2.9.3.1. 地図アプリを作成に必要

2.9.3.2. 署名つきの証明書

2.9.3.2.1. フィンガープリント

2.9.3.3. <uses-library>

2.9.3.3.1. <com.google.android.maps.Mapview>

2.9.3.4. MapViewクラスのコンストラクタで設定

2.9.3.4.1. MapView myMap = new MapView(this,"取得したAPIキー");

2.10. アプリの配布

2.10.1. 署名

2.10.1.1. プライベートキー/keytool

2.10.1.1.1. キーストア

2.10.1.2. Eclipse

2.10.1.2.1. ADT Export Wizard

2.10.1.2.2. デバックモードで署名可能

2.10.1.3. 自己署名の証明書も利用可

2.10.2. アップデート

2.10.2.1. プライベートキーの有効期限が切れるとシームレスにアップデート不可

2.10.2.2. プライベートの有効期限として25年以上が推奨されている

2.10.2.3. プライベートキーは同じものでないと違うアプリと認識される

2.10.2.4. 手順

2.10.2.4.1. 1.ソースコードを変更

2.10.2.4.2. 2.android:versionName属性を変更

2.10.2.4.3. 3.android:versionCode属性の値をインクリメント

2.10.2.4.4. 4.アプリに署名して、署名つきのapkファイルを作成

2.10.2.4.5. 5.AndroidMarketで作成したapkファイルを指定

2.11. 開発機能

2.11.1. Eclipse

2.11.1.1. 開発環境構築手順

2.11.1.1.1. 1.JDKをインストールしたPCにEclipseをインストール

2.11.1.1.2. 2.Eclipseを起動して、ADTをインストール

2.11.1.1.3. 3.Eclipseを再起動後、AndroidSDKをDLして解凍したフォルダを設定

2.11.1.1.4. 4.AndroidSDK and AVD ManagerによりSDKのライブラリをインストール

2.11.1.1.5. 5.エミュレータを使って実行できるように、AVDを追加

2.11.1.2. ddms(Dalvid Debug Monitor Server)

2.11.1.2.1. デバック支援ツール

2.11.1.2.2. デバックポートを8700で行う

2.11.1.2.3. プロセスの強制停止

2.11.1.2.4. 特定のプロセスに対するデバック

2.11.1.2.5. トレースデータの取得

2.11.1.2.6. ピープ・スレッド情報の参照

2.11.1.2.7. エミュレータ・デバイスのスナップショットの取得

2.11.1.3. ADTプラグイン

2.11.1.3.1. genフォルダ

2.11.1.3.2. resフォルダ

2.11.1.3.3. srcフォルダ

2.11.1.3.4. assetsフォルダ

2.11.2. aidl

2.11.2.1. AIDLに従って記述されたファイルから、Androidプロセス間通信に必要なソースコードを自動生成するツール

2.11.2.2. AIDLで定義したインタフェースをJavaインタフェースに変換する

2.11.2.3. AIDL

2.11.2.3.1. Android上でIPCを実現するためのもの

2.11.2.3.2. 生成したソースコード

2.11.2.3.3. AIDLで定義したインタフェースをServiceに実装

2.11.2.3.4. インタフェースを定義

2.11.3. layoutopt

2.11.3.1. コマンドツールで使用する

2.11.3.1.1. layoutopt <レイアウトファイルのディレクトリ名>

2.11.3.2. アプリのレイアウトとレイアウト階層を最適化する

2.11.3.3. レイアウトリソースのXMLファイルを指定

2.11.3.3.1. アプリパフォーマンスに影響を及ぼすような悪い箇所を調べる

2.11.3.3.2. layoutopt res/layoutで実行

2.11.4. zipalign

2.11.4.1. apkファイルの最適化が目的

2.11.4.2. apkファイル内のデータを4バイト境界に整列させる

2.11.4.3. RAMの総使用量を削減する

2.11.4.4. 署名ありのapkファイルを実行する

2.11.4.4.1. 署名なしだとバイト境界が崩れる

2.11.4.4.2. Eclipseだと自動的に実行

2.11.4.5. 4指定が必須

2.11.5. draw9patch

2.11.5.1. PIN形式の画像をNinePatchに変換する

2.11.5.1.1. 伸長範囲を指定できる画像ファイル形式

2.11.5.1.2. 1ピクセル領域

2.11.5.1.3. 見た目を損なうことなく表示

2.11.6. dx

2.11.6.1. Javaバイトコード(classファイル)をDalvikバイトコード(dexファイル)に変換する

2.11.6.1.1. jar・zipファイル内のclassファイル

2.11.6.2. dxコマンド

2.11.6.2.1. --dumpオプション

2.11.7. aapt

2.11.7.1. R.javaファイルでのソースID割り当てや管理

2.11.7.2. apkファイルの生成や更新を管理

2.11.7.2.1. サポートファイル

2.11.7.3. zip互換のアーカイブ

2.11.7.3.1. 作成

2.11.7.3.2. 更新

2.11.7.3.3. 参照

2.11.8. sqlite3

2.11.8.1. SQLiteデータベースを管理するためのコマンドラインツール

2.11.8.2. サポート

2.11.8.2.1. .databases

2.11.8.2.2. .dump

2.11.8.2.3. .read

2.11.8.2.4. .restore

2.11.8.2.5. .schema <テーブル名>

2.11.8.2.6. .show

2.11.8.2.7. .tables

2.11.8.2.8. .explain

2.11.8.2.9. .hesders

2.11.8.2.10. .help

2.11.8.2.11. .width n

2.12. デバック機能

2.12.1. エミュレータ

2.12.1.1. テストやデバックを行う

2.12.1.2. 電話機能

2.12.1.2.1. gsmコマンド

2.12.1.3. デバイスパワー

2.12.1.3.1. powerコマンド

2.12.1.4. その他

2.12.1.4.1. sms send 090******** <メッセージ>

2.12.1.4.2. window scale <倍率>

2.12.1.5. コンソール機能

2.12.1.5.1. telnet

2.12.1.5.2. Windowsで2つのコマンドラインを起動

2.12.1.5.3. コンソールにログイン??

2.12.2. androidツール

2.12.2.1. コマンドライン上

2.12.2.1.1. Androidプロジェクト

2.12.2.1.2. AVDの管理

2.12.3. mksdcard

2.12.3.1. エミュレータにロード可能なディスクイメージファイルを作成するツール

2.12.3.2. SDカードが挿入されている状況をシュミレーション

2.12.3.3. FAT32をサポート

2.12.3.4. GBは指定できない

2.12.3.5. 実行方法

2.12.3.5.1. mksdcard 64M test.img

2.12.3.5.2. emulator -avd TEST -sdcard test.img

2.12.4. hierarchy viewer

2.12.4.1. デバイス・エミュレータで動いているActivityのViewの階層図を表示するツール

2.12.4.2. レイアウトを微調整

2.12.4.2.1. ピクセルグリッド機能を使ってViewを拡大表示

2.12.4.2.2. Viewのレイアウトを視覚的に表示

2.12.4.3. 構成

2.12.4.3.1. レイアウトビュー

2.12.4.3.2. ピクセルパーフェクトビュー

2.12.4.4. 起動方法

2.12.4.4.1. AndroidSDKフォルダ

2.12.5. traceview

2.12.5.1. 機能

2.12.5.1.1. トレースログを収集して解析するためのツール

2.12.5.1.2. グラフィカルなビューア

2.12.5.1.3. プログラム動作結果を確認可能

2.12.5.2. 2つのパネル

2.12.5.2.1. タイムラインパネル

2.12.5.2.2. プロファイルパネル

2.12.5.3. 動作ログの保存

2.12.5.3.1. Debugクラス

2.12.5.3.2. /sdcard/<指定した名前>.trace

2.12.5.3.3. あらかじめSDカードのイメージファイルを作成しておく

2.12.5.3.4. パーミッション設定が必須

2.12.6. ddms

2.12.6.1. 機能

2.12.6.1.1. ポートのフォワード

2.12.6.1.2. デバイスのスクリーンキャプチャ

2.12.6.1.3. デパイスごとのスレッドとピープ情報の収集

2.12.6.1.4. ガーベッジコレクションを発せさせられる

2.12.6.2. 統合開発環境とアプリの仲介役

2.12.6.2.1. Dalivikマシンにおけるメモリの割り当て状況の追跡

2.12.6.2.2. 実行画面イメージの保存

2.12.6.2.3. アプリに関するさまざまな情報の取得や通知

2.12.6.2.4. 電話やSMSなどの通信関連のシュミレーション

2.12.6.2.5. システムやSDカード内のファイルの取り出しや格納

2.12.6.2.6. ...

2.12.6.3. ファイル形式

2.12.6.3.1. SSN(SIM Serial Number)

2.12.6.3.2. GPX(GPS Exchange Format)

2.12.6.3.3. POX(Plain Oid XML over HTTP)

2.12.6.3.4. ANR(Application Not Responding)

2.12.7. adb

2.12.7.1. エミュレータや端末の状態管理

2.12.7.2. コマンドラインツール

2.12.7.2.1. adb shell

2.12.7.2.2. adb devices

2.12.7.2.3. adb logcat

2.12.7.2.4. adb kill-server

2.12.7.2.5. adb start-server

2.12.7.2.6. adb install<アプリ名>

2.12.7.2.7. adb uninstall <パッケージ名>

2.12.7.2.8. adb push <ファイル名.拡張子> data/

2.12.7.2.9. adb pull etc/<ファイル名.拡張子> ./

2.12.7.2.10. エミュレータ接続

2.12.7.3. 構成

2.12.7.3.1. クライアント

2.12.7.3.2. サーバ

2.12.7.3.3. デーモン

2.13. パッケージ

2.13.1. andoird

2.13.1.1. アプリケーション・パーミッション定義、リソースクラスなど

2.13.2. android.animation

2.13.2.1. アニメーション

2.13.3. android.app

2.13.3.1. Androidアプリケーションモデルの上に立つハイレベルのクラス

2.13.4. android.app.admin

2.13.4.1. システムレベルのデバイス管理

2.13.5. android.app.backup

2.13.5.1. アプリケーションにバックアップやリストア機能を提供

2.13.6. android.appwidget

2.13.6.1. APPウィジェット

2.13.7. android.bluetooth

2.13.7.1. Bluetooth機能管理(デバイスのスキャン、接続、デバイス間のデータ転送など)

2.13.8. android.content

2.13.8.1. デバイス上のデータアクセスやデバイスへのデータ・パブリッシング

2.13.8.2. android.content.pm

2.13.9. android.content.res

2.13.9.1. アプリケーション・リソース(raw assetファイルや、色、メディアなど)のアクセス

2.13.10. android.database

2.13.10.1. データベース関連

2.13.11. android.database.sqlite

2.13.11.1. SQLite データベース管理クラス

2.13.12. android.drm

2.13.12.1. DRM コンテンツの管理など

2.13.13. android.gesture

2.13.13.1. ジェスチャーの作成、ロード、保存など

2.13.14. android.graphics

2.13.14.1. スクリーンにcanvasやカーラーフィルタ、点、四角形などを描画するための低レベルのツールクラス

2.13.14.2. android.graphics.drawable

2.13.14.3. android.graphics.drawable.shapes

2.13.15. android.hardware

2.13.15.1. カメラやその他センサーをサポートするクラス

2.13.16. android.hardware.usb

2.13.16.1. USB

2.13.17. android.location

2.13.17.1. ユーザ・ロケーション関連

2.13.18. android.inputmethodservice

2.13.19. android.media

2.13.19.1. オーディオやビデオなどの管理

2.13.19.2. android.media.audiofx

2.13.20. android.mtp

2.13.20.1. PTP(画像転送プロトコル)またはMTP(メディア転送プロトコル)でカメラやその他デバイスとのインターアクション

2.13.21. android.net

2.13.21.1. ネットワーク接続

2.13.21.2. android.net.http

2.13.22. android.net.rtp

2.13.22.1. リアルタイム転送

2.13.23. android.net.sip

2.13.23.1. SIP(セッション確立プロトコル)機能(例:VOIP)へのアクセス機能

2.13.24. android.net.wifi

2.13.24.1. Wi-Fi機能管理

2.13.25. android.nfc

2.13.25.1. 短距離無線通信

2.13.25.2. android.nfc.tech

2.13.26. android.opengl

2.13.26.1. OpenGLユーティリティ

2.13.27. android.os

2.13.27.1. OS基本サービス、メッセージパッシング、インタープロセス・コミュニケーションなど

2.13.27.2. android.os.storage

2.13.27.3. android.os.AsyncTask<Params, Progress, Result>

2.13.27.3.1. 非同期処理を実現する

2.13.27.3.2. 比較的重たい処理を、UI threadに負荷を与えずに行いたい場合に利用

2.13.27.3.3. 別スレッドでのバックグラウンド処理と、処理前と処理後のUI threadへのコールバックの2つを提供

2.13.28. android.preference

2.13.28.1. アプリケーション・プリファレンス管理

2.13.29. android.renderscript

2.13.29.1. 数学計算や3Dグラフィックスの描画などの低レベルのAPI

2.13.30. android.sax

2.13.31. android.service.wallpaper

2.13.32. android.speech

2.13.32.1. android.speech.tts

2.13.33. android.telephony

2.13.33.1. ネットワークのタイプや接続状態、電話番号の操作などのAPI

2.13.34. android.telephony.cdma

2.13.34.1. CDMA関連のtext/data/PDU SMS メッセージなど

2.13.35. android.telephony.gsm

2.13.35.1. GSM仕様のtext/data/PDU SMS メッセージなど

2.13.36. android.test

2.13.36.1. Androidテストケースフレームワーク

2.13.36.2. android.test.mock

2.13.36.3. android.test.suitebuilder

2.13.37. android.text

2.13.37.1. スクリーンに表示されるテキスト関連

2.13.37.2. android.text.format

2.13.38. android.text.method

2.13.38.1. keypad入力のモニタなど編集

2.13.39. android.text.styleandroid.text.style

2.13.39.1. ビューオブジェクトのテキストスタイル設定など

2.13.40. android.text.util

2.13.40.1. リンクやRFC 822-タイプのメッセージ(SMTP)で利用されるテキスト文字列の変更&操作ユーティリティ

2.13.41. android.util

2.13.41.1. date/timeの操作、base64の暗号化・複合化、XMLユーティリティなどのユーティリティクラス

2.13.42. android.view

2.13.42.1. ユーザインタフェースやユーザとのインターアクション関連

2.13.42.2. android.view.animation

2.13.42.3. android.view.accessibility

2.13.43. android.view.inputmethod

2.13.43.1. ビューと入力(ソフトキーボードなど)間のインターアクション関連

2.13.44. android.webkit

2.13.44.1. Webブラウザー、Web表示関連

2.13.45. android.widget

2.13.45.1. UIコンポーネント関連

2.13.46. dalvik.bytecode

2.13.46.1. Dalvikバイトコード関連

2.13.47. dalvik.system

2.13.47.1. Dalvik VMシステム情報関連

3. プロジェクトマネージャ