公式サイト

デモ

旧Android覚書

	
	■■■□□□■■■□□□「Android SDK 逆引きハンドバック」の学習
	■C-01	基礎
	◇001
	AndroidはLinuxベースである。
	Ver4.0からスマートフォンとタブレットのユーザーインターフェースが結合
	VMではなくDalvik仮想マシンである。
	フレームワークAPIのすべてを、アプリ開発に利用できる。
	クラスはdexフォーマットに変換される。
	WebkitはApple製のHMTLレンダリングエンジンを使用
	HTMLをアプリに表示できる。
	OpenGLを搭載
	データベースはSQLite。mdbと同様な単一ファイル型。メモリ上に一時的に生成することもできる。
	データベースで使用できるデータ型はINTEGER,REAL(浮動小数点),TEXT,BLOB(バイナリ),NULL
	使用できる画像フォーマット(Jpeg,gif,png,bmp,webp(ver4.0)
	使用できる動画フォーマット(mpeg系のいくつか、3gpp,flac,mp3,ogg,wav)
	◇002
	アプリケーションフレームワークはLibとAPIから構成される。
	主な、アプリケーションフレームワークは以下の通り
		・アクティビティマネージャ。	アプリのライフサイクルを管理
		・ウィンドウマネージャ。	画面状態を制御
		・コンテントプロバイダ。	アプリ間で共有するデータを管理。アプリ間でデータのやり取りが可。
		・ビューマネージャ。	アプリケーション基礎
		・パッケージマネージャ。	端末内のアプリを管理。
		・テレフォニーマネージャ。	電話機能へのアクセス
		・リソースマネージャ。	ローカライズされた、文字、画像、レイアウトファイルへアクセス。
		・ロケーションマネージャ。	GPS系の制御。
	主なライブラリ
		libc
		メディアライブラリ。	静止画、動画など
		SGL。2Dグラフィックス。
		3Dライブラリ。
		FreeTypeフォントのレンダリング
		SQLite。DB.
		SSL
		Linuxカーネル
	
	◇003
	アプリの拡張子は「apk」
	SDKとNDKがある。NDKはランタイムやライブラリを開発するC/C++用。
	ADTはEclipse用のプラグイン
	バージョンは「1.0,1.6,2.3」といった表記のほかにAPI LEVELによる表記方法もある。2012年現在はAPI LEVEL 15。
	
	◇004
	Androidは他のアプリの機能を利用できるのが特徴(許可されている場合)
	外部アプリケーションや、下部プラットフォームへのアクセスは制限されている。
	代表的なコンポーネントは、アクティビティ、サービス、コンテントプロバイダ、インテントの4つである。
	
	◇005	アクティビティについて
	アクティビティはユーザーインターフェースのこと。
	画面ごとに独立したアクティビティが存在する。VBでいうFormの概念に近い。
	Activityのサブクラスとすることで、モーダルダイアログして表示させることも可能である。
	ビューとは、テキストボックスやチェックボックスなどのコンポーネント。
	グループ化を利用して、ビュー同士で親子関係を持たせることができる。
	アクティビティには状態があり、以下に代表的な状態を示す。
		アクティブ状態。	アクティビティスタックで最上位の位置にあるアクティビティ。または、現在操作中の状態である。
		一時停止状態。		他のアクティビティに隠れた状態にあるが、完全動作中。
		停止状態			メンバの値は保持されている。ただしメモリ不足になれば強制的にメモリは開放される。
	バックグランド型アプリでは、onCreateで実行され、onDestroyで停止する。
	onStartとonStopは、アクティビティが見え隠れするたびに実行される。
	onPause,onResumeは、一時スリープ状態や、他のアクティビティが表示されるときに実行される。
		OnStartやOnStopよりも、ひんぱんに実行されるため、軽めの処理を記述する必要がある。
	onCerateは才女に実行されるイベント。このイベント後、onStartが実行される。
	onRestartは停止状態にあるアクティビティが、再度起動すると実行される。このイベント後、onStartが実行される。
	onSaveInstanceStateメソッドは強制終了されても、メモリ情報等を保護できる。ただし毎回呼び出されるとはかぎらないため、永続保存に用いるべきではない。
	
	◇006サービス
	バックグラウンド用コンポーネント。音楽プレイヤーなどがある。
	Context.StartSeviceタイプは単一タイプのスレッドに向く。
		onStartはContext.StartSeviceの場合に呼び出される。
	Context.vindServiceタイプはマルチスレッド向きと思われる。他のクライアントにも接続可能。
		他のバインドのためのコールバック機能を備える。
	マニフェストでサービスの属性をいろいろ設定できる。
		自動起動、他のアプリでの使用許可、サービス用のアイコン、サービスラベル、サービスを実装しているクラス名
	
	◇007インテント
	他のアプリを起動させたり、他のアプリの機能を利用したりする場合に使用する。
	明示的と暗黙的の2種類が存在する。
	明示的はコンポーネントのパッケージとして、アプリ名等を直接指定して使用する。
	暗黙的は、条件に一致するコンポーネントを適当に選んで生成する。
		例:メールアプリを指定すればgmailアプリ,emailアプリなどメール系アプリが対象となる。
	
	◇008コンテントプロバイダ
		アプリのデータを他のアプリに公開するためのコンポーネント
		ファイルシステムやSQLiteを公開する。
		他には、通話ログ、コンタクトリスト、ブラウザ、メディアストアなど共用データの利用
	
	◇009ブロードバンドキャストレシーバ
		タイムゾーンの変更や充電池の変化、写真撮影などを通知するコンポーネント
	
	
	◇010パーミッション
		ユーザーが許可しないとインストールできないしくみ
	
	◇011マニフェスト(	AndroidManifest.xml)について
		アプリケーションコンポーネントの宣言
		他のライブラリを参照
		パーミッションを指定
		ターゲットとなるAndroidのバージョンを指定
		<application>タグ内に、アクティビティ、プロバイダ、サービス、レシーバーを記述
		<intent-filter>タグ内ではアプリの起動条件を指定できる。
			Android起動直後にアプリ起動などが可能。
		<uses-sdk>タグ内ではSDKのバージョンが記述される。
	
	◇012メイン.xml
		レイアウトを定義
		string.xmlでは文字リソースを管理。多言語にも対応している。
	
	013フォルダ構成
	src			ソースコード
	res			リソース
	valuses		strings.xmlなど
	gen			リソースをコンパイルしたR.javaが存在する。
	assets		バイナリファイルを設置
	
	014配列でできること
	配列を定義、スタイルを定義、色の名称を定義
	ソースで使用する場合、「@ファイル名/nameの値」のようにして利用
	
	◇015ログ出力
	ログは、エラー、警告、情報、デバック、その他の6種類
	出力はLogCatウィンドウで行う。
	
	◇016電子署名
	電子署名をしないとgoogle playストアや端末が許可設定していないとインストールできない。
	電子署名には有効期限があるが、期限が切れてもアプリ動作には影響しない。
	電子署名には2種類あり、「デバッグ証明モード」と「リリース署名モード」がある。
	デバッグ署名の有効期限は365日。期限が過ぎるとコンパイルエラーになるが、「debug.keystore」を削除すれば大丈夫。
	
	◇017	トースト
	トーストとはメッセージボックスのようなもの。ちょっとしたアニメーション表示も可能。
	
	◇018	ノーフィケーション
	ノーフィケーションとは画面の一番左上にあるアイコンとラベルのこと。
	URLなどを設定できる。
	
	◇019	処理中を示すダイアログ
	処理中であることを示すアイコンのアニメーション付のダイアログ
	
	◇コールバックメソッドをJSと同様な方法で実装できる。
		例えば3秒後に実行など。
	
	◇020	メニューボタン
	ウィンドウの下部にメニューボタンを表示させることができる。
	端末にメニューボタンイベントを実装できる。
	アクティブティクラス内で、onCreateOptionsMenuをオーバーライドで実装する。
	
	
	023	アクションバー
	アクションバーにメニューボタンを追加できる。
	アクションバーは上段メニューのこと
	アクションバーに、検索用の検索ビューコンポーネント配置したり、その他の共用コンポーネントを配置できる。
	独自のビューや、カスタムレイアウトを適用できる。
	タブを追加することもできる。
	
	◇029	ロングクリックイベント
	長押しのこと
	
	◇030
	レイアウトXMLファイル(main.xml)でクリックイベントとメソッドを関連づけられる。
		android:onclick="メソッド名"
	
	◇031
	レイアウト上で定義したビューのほかに、動的に生成したビューを追加することができる。
	
	◇032
	ビュー上に描画できる。オリジナルデザインボタンが作成できる。onDrawを使う。
	
	ビューをアニメーションさせることができる。
	ビューに表示されたURLやメールアドレスをリンクに変換できる。電話番号も可能。
	テキストボックスに自動保管機能を付加できる。
	テキストボックスのキャレットを移動できる。部分選択や、全選択も可能。
	ボタンのデザインを丸くデザイン変更できる。
	ビューにはおなじみのチェックボックス、ラジオボタン、セレクトボックスが存在する。
	トグルボタンはON・OFFを切り替えるのにぴったりである。またON,OFFごとに表示画像を変更できる。
	スライド型スイッチボタンが存在する。
	レーティングバーは、星評価する場合にぴったし。星以外の画像に変更できる。
	シークバーは、スライド式のアナログ値入力用に便利である。背景やツマミの部分の画像を変更できる。
	アナログ時計ビューが存在する。アナログ時計を簡単に実装できる。デジタル時計もある。
	日付や時刻入力用のビューが存在する。
	カレンダービューの各日付にイベントを実装することも可能。
	グリッドビューを使い、画像を並べて表示できる。GridViewクラスを用いる。
	ギャラリー型の画像表示ができる。(スライド式の連続画像表示)
	ポップアップウィンドウを表示できる。
	タブも作成できる。タブごとにレイアウト用のxmlをセットできる。
	フリック画面を実装できる。フリック画面は、引き出すように開くサブ画面。何種類か存在する。
	オーバースクロールとは右端の空白をタップしてスクロールすること。onOverScrolledメソッドをしよう
	フルスクリーン(タスクバー非表示)にすることができる。
	タスクバーは色の変更などカスタマイズが可能。
	タイトルバーにプログレスバーを表示することができる。長い処理には便利。画面の節約にもなる。
	スプラッシュスクリーンをフェードアウト処理することができる。
		スプラッシュスクリーンとは、アプリ起動後の暗い画面。
		コールバックと併用して使う。
	マルチスクリーンはタブレットなど大きい画面用
	データを非同期で処理できる。
	
	◇068 リストビュー
	配列をリストビューで表示できる。
	リストビューはカスタマイズ可能。
	文字の大きさ、色をXMLで定義して行う。
	複数列にすることも可能。
	アイコンも表示できる。
	ゼブラカラーにすることもできる。
	リストを自動で、アニメーションさせながら下部までスクロールさせることができる。
	スムーススクロールのタブを表示できる。(右側のスクロール用つまみ。便利。)
	リストビューのスクロールイベントをキャッチできる。
	リストビューの長押しされた場所を取得できる。
	複数選択が可能。(チェックボックス付のリストになる)
	行列に区切りをいれ、デザイン性を高めることができる。
	
	
	■HTMLファイルを表示できる。 WebView
	JavaScriptを実行できる。
	SDカードに保存されたHTMLを表示することができる。
		外部ストレージ(SDカード上)のファイルは、ネット経由でアクセス可能
		ソースコード中に記述したHTMLを表示できる。
	指定したURLページを表示させることができる。
	JavaScriptを利用するには、有効設定が必要
	Jqueryが使用可能である。
	Webビューの設定が可能
	Webビューに拡大、縮小を行うズームボタンを表示できる。デフォルト設定も可能
	Webビューで表示しているサイトのURLを取得できる。
	ダウンロード開始イベントを取得できる。
	Webビュー上のクリックイベントを取得できる。
	JavaScriptでタッチイベントを検知し、Javaへ渡すことができる。
	Webビュー上で起きたエラー情報を取得できる。
	Webビューにユーザーエージェントを送ることができる。
		ユーザーエージェントは、サーバーに送る文字列のことで、HTTPヘッダーを利用している可能性がある。
		ユーザーエージェントは端末ごとに異なるサイトを作成する際に便利
		使用の際にはマニフェストでandroid.permission.INTERNETを有効にしておくこと。
	Webページをキャッシュできる。
	JavaScriptのアラートイベントをキャッチできる。
	Webビューを通して、Geolocationを使用できる。google mapの利用
	JavaのコードをJavaScript上で実行できる。
	JavaScriptの値をJavaへ渡すことができる。
	HTTP認証が必要なページを作成することができる。
	
	■094ウィジェット
	ウィジェットはホームに配置できるミニチュアアプリケーション
	ウィジェットのサイズには基準がある。縦横を16分割したサイズが1単位。
	ミリ秒単位で指定したタイミングでイベントを実行できる。ただし正確にあらず。正確にしたい場合はAlermManegerを利用。
	Androidのサイズ単位にはピクセルの他にも幾つか存在する。
	ウィジェットはAppWigetProviderクラスを継承して使う。
	Widget.xmlでサイズなどを指定する。
	ウィジェットをホームに登録する場合、ホーム画面を長押すと表示されるリストから選択
	ウィジェットのクリックイベントを取得できる。
	ウィジェットが削除されたことを検知できる。	
	ウィジェットからアクティビティを起動できる。
	ウィジェットからノーフィケーション、ダイアログ、リストを表示できる。
	ウィジェットでバックグランド処理をすることが可能
	
	
	■Geolocation	MapViewクラス
	google mapを利用するためには、Maps APIの取得が必要。取得には幾つかの手順を踏まねばならず。
	画面に地図を表示できる。APIレベル4以上
	XMLで定義する方法と、ソースコードで定義する方法がある。
	縮尺や緯度経度を調べることができる。
	緯度経度を指定して地図表示。
	衛星写真を表示できる。
	ストリートビューを表示できる。
	指定道路に色を付けることができる。
	画面がストーリーとビューを表示している状態になっているかどうか、調べることができる。
	地図上に別の画像を重ねることができる。オーバーレイ。
	最後に取得した位置情報を取得できる。
	位置情報が変わるたびに実行できる処理を作成できる。
	位置情報を任意で更新できる。
	特定範囲の位置情報を検出した場合に、インテントを起動できる。
	位置情報から住所や地名を調べることができる。
	住所と地名から位置情報を取得できる。
	2点間の距離を取得できる。直線距離
	
	
	■壁紙
	SDカード上の画像を壁紙にできる。
	端末に最適な壁紙の画像サイズを調べることができる。
	「壁紙を選択」を表示したときに、アプリケーションを表示できる。
	
	■ライブ壁紙
	ライブ壁紙は動く壁紙のことである。バッテリーの消費がやや多くなる。API LEVEL7以上対応
	ライブ壁紙に画像をもちろん表示可能
	タッチした場所に画像を表示できる。
	壁紙画像をスクロールに合わせて移動させることができる。
	
	■C-03	グラフィック
	画像ファイルをリソース用に変換してから画像表示できる。
	assetsフォルダ中の画像を表示することができる。
	フォルダ中の画像を表示できる。
	インターネット上の画像を表示できる。
	リサイズできる。
	bitmapの作成が可能?
	画像サイズを取得できる。
	指定位置の色を取得できる。
	画像ファイルを読み込む際、画像の一部だけを切り出して読み込むことができる。
	画像をドラッグできる。
	
	■キャンバス
	キャンバスに画像を張り付けられる。
	ライン、円、図形、文字列を描ける。
	キャンバスを回転できる。
	キャンバスを左右反転できる。
	
	
	■Open GL ゲーム用高速描画
	ライン、図形を描ける。
	テクスチャーを生成できる。
	テクスチャーにエフェクトをかけることができる。色合いの変更など。
	
	■通信
	電話発信を検知できる。
	発信先の電話番号を取得できる。
	特定の発信先を検知して取得できる。
	指定した電話番号へ電話をかけることができる。(インテントを通してダイアラアプリ起動)
	SIMカードの有無を調べることができる。
	SIMカードからキャリア名を取得できる。キャリア名とはNTTなどを指す。
	キャリアの国コードを取得できる。
	SIMカードのシリアル番号を取得できる。
	端末の電話番号を表示できる。
	SIMカードにアドレス張のデータを保存できる。
	端末の電話番号を調べることができる。
	SIMカードからアドレス張のデータを取得できる。
	端末の電話帳からデータを取得できる。
	端末の電話帳に登録してある写真を取得できる。
	端末の電話帳にデータを追加できる。Ver2.1以上。インテントを起動して行う。
	端末の識別番号(IMEI)を調べられる。
		IMEIは端末ごとの識別番号であり、認証などに使用できる。
	WiFi接続のON-OFFが可能。ただしエミュレータではできない。
	WiFiネットワーク設定の一覧を取得できる。
	ネットワーク設定の追加および削除ができる。
	アクセスポイントの一覧を取得できる。
	MACアドレスを取得できる。ただしエミュレータでは不可能。
	信号レベルを取得できる。
	電波強度を取得できる。
	ネットワーク名を取得できる。
	機内モードのON-OFFを切り替えられる。
	GPSの有無を切り替えられる。ダイアログの確認画面が表示される。
	位置情報を取得時にインテントを発行できる。
	一時的に位置情報を取得する。(リアルタイムで位置情報を取得しない)Ver2.3
	GPSステータスを取得できる。
	
	■Bluetooth ver2.1以上 APIレベル5以上
	Bluetoothは無線データの転送技術。10m以内。
	有無の切り替えが可能
	自由に使用可能な、2.45GHz帯の電波を使っている。赤外線と違い、遮蔽物があっても問題ない。
	Bluetoothデバイスを探し出すことができる。
	ペアリング済みのデバイスリストを探し出すことができる。
	端末自身を他のデバイスから検出可能にすることができる。
	サービスへ接続に行ったり、逆にサーバーとして待ち受けることができる。
	API LEVEL2.33からセキュリティレベルが向上。パスキーが必要になり、パスキーがないデバイスは接続できなくできる。
	Bluetoothヘッドセット(頭につけるイヤホンやマイク)の接続状態を確認できる。Ver3.0以上
	Bluetooth間でデータの送受信ができる。
	BlueHeadDevice接続して、通信を行える。血圧計脈拍計デバイスと連動できる。Ver4.0以上
	
	■WiFi Direct ver4.0以上
	WiFiDirectは無線技術を使い各種デバイスと接続する。ゲームやプリンターなど
	WiFiDirectで接続可能な端末の一覧を取得できる。
	WiFiDirectでP2P接続し、メッセージデータの送受信が可能。
	ネットワークデータの通信量を確認できる。
	データ通信量をグラフで確認できる。
	
	■入力センサー
	ソフトキーボードを自作することができ、キーボードイベントも作成可能。文字補完機能も利用できる。
	クリップボードを操作できる。テキストをクリップボードに保持するという使い方ができる。
	端末の傾き、加速度を取得できる。(純粋な加速度がほしい場合は重力加速度の影響を差し引くこと)
		X,Y,Z方向の値を取得する。
	端末周囲の照度(明るさ)を取得できる。
	磁気センサーから値を取得可能
	温度センサーから値を取得可能
	近接センサーから値を取得できる。センサーからの距離をcm単位で測定する。
	ジャイロスコープの値から、角速度の値を取得できる。
	重力センサーからX,Y,Zの値を取得できる。ver2.3以上。
	直線加速度センサーから値を取得できる。
	気圧センサーの値を取得可能
	ジェスチャーの内容を取得できる。ジェスチャーとは、端末画面に指で記号や文字を描くこと。
		連動してイベントを起こすなどが可能
	ジェスチャー定義データがあり、そこへジェスチャに関するデータを登録できる。
	ジェスチャーによる軌跡をBitmapで取得可能。
	認識したジェスチャーを判定し、類似度を表示することができる。これにより微調整が可能である。
	
	■メディア・スピーチ
	オーディオファイルを再生できる。
	リソース化してオーディオを再生できる。
	JETファイル(midi,dls)を再生できる。
	音量調整ができる。
	音声を記録することができる。
	ムービーファイルを再生できる。
	映像を記録することができる。恩背記録と併用できる。
	動画からサムネイルを取得できる。
	JPEGがExif情報を抜き出すことができる。
	DTMFトーン(電話ボアtんを押したときの音)鳴らすことができる。
	ビジュアライザーを表示できる。ビジュアライザーは音声にあわせて動く画像のこと
	メディアプレイヤー用のイコライザー(音質調整)を実装できる。
	ボイスデータ(合成音声機能)の存在をチェックできる。(日本語非対応)
	テキスト朗読が可能。
	テキストからサウンドファイルを作成できる。
	メディアファイルからメタ情報を取得できる。アルバム名や、アーティスト名など
	メディアファイルからサムネイル画像を取得できる。
	メディアプレイヤーをロック画面で操作可能。
	
	■カメラ
	標準カメラを起動し、写真を撮れる。
	プレビュー画像を表示できる。
	フラッシュONの設定ができる。
	オートフォーカスが可能
	画像に位置情報を付加できる。
	写真サイズを指定できる。
	JPEG画像のクオリティを指定できる。
	端末の内向きカメラを起動できる。
	コンティニュアスAF(連続オートフォーカス)が使用可能。ver4.0
	カメラで顔認識ができる。
	動画画像撮影中に、静止画像を撮影できる。
	
	
	■データ
	プリファレンスを利用したデータ保存ができる。
		プリファレンス保存はキーと値を組み合わせたデータ。iniファイルやdefファイルと似ている。
	プリファレンスのアクセスモードを設定できる。read onlyなど
	他のアプリケーションからプリファレンスへのアクセスを許可できる。
	他のアプリケーションのプリファレンスへアクセスできる。(許可がある場合)
	端末の内部ストレージにファイルを作成したり、読み込んだりできる。
	内部ストレージのファイルにアクセスできる。
	バイナリ形式のファイルにアクセスできる。
	JSONの読み込みができる。
	SDカードなどの外部ストレージにあるファイルへの入出力が可能。
	コンテントプロバイダにはいかのものがある。コンテントプロバイダとは別のアプリケーションと連動するデータ。
		通話ログ、電話帳、ブラウザのブックアーク、googleカレンダー
	インテントにイベントを追加できる。
	内部ストレージ領域に、データベースを作成できる。
	メモリ上に一時的なデータベースを作成できる。
	データベースにはトランザクション機能もある。
	vacumでデータベースの問い合わせのパフォーマンスを向上させることができる。速度と容量節約が期待できる。
	レコードを大量に削除したあと、インデックスの再構築を行うとパフォーマンスを向上できる。
	ListViewとの連携も可能?
	
	
	■サービス
	サービスとは、バックグランド系のアプリで、他のアプリを監視するものや、音楽プレイヤーなどがある。
	インテントを利用してサービスを起動できる。
	サービスを別プロセスで起動できる。
	バインドを利用してサービスを起動できる。(インテントを使わず)
	コールバック。	サービスからアクティビティに通知できる。
	端末の電源起動時に、サービスを起動できる。
	サービスを停止できる。
	ウィジェットからサービスを起動できる。
	サービスからアクティビティを起動できる。(ブロードキャストレシーバを起動)
	サービスからノーフィケーションを作成できる。
	
	■端末設定
	画面サイズを取得できる。
	端末画面の明るさを変更できる。
	アプリケーション画面の明るさを変更できる。
	画面の縦横切替機能の設定を調べたり変更できる。
	端末の固有識別番号(ANDROID_ID)を調べられる。
	端末のモデル番号を調べられる。
	ベースバンドバージョンを調べられる。
	日時の自動同期設定を調べたり、変更できる。
	現在の年月日と時刻を調べられる。
	時刻の表示形式(12h、24h)の切替と調査ができる。
	日時の表示形式の調査と変更ができる。
	アラームセットができる。
	サイレントモードの設定を調査したり変更できる。
	データ同期モードの設定を調査したり変更できる。
	地域言語設定を調べられる。
	バッテリの残量を調べられる。(何%)
	充電中かどうかや、現在の充電方法を調べられる。
	バッテリーの温度を調べる機能がある。
	バッテリーの状態を調べられる。
	ビッケをたたくことができる。ティモをなでることができる。
	バッテリの種類を調べられる。
	機能別にバッテリーの消費量を調べられる。
	外部電源の接続を検知できる。また外れたときも検知できる。
	
	
	■システム運用
	パッケージからパーミッションのイランを取得できる。
	パッケージから起動可能なインテントを調べられる。
	インストール済みのアプリケーション一覧を取得できる。
	パッケージからバージョン情報を取得できる。
	パッケージの署名をチェックできる。
	パッケージがインストール済みかチェックできる。
	インテントが呼び出し可能か調べることができる。
	パッケージがインストールされた日時を調べることができる。
	端末に登録済みのメールアドレスを調べられる。
	端末に登録済みのアカウントを削除できる。
	AuthTokenを調べられる。AuthTokenを使うとさまざまなgoogleサービスが利用できる。
	端末に設定しているパスワードをクリアできる。
	アプリケーションから端末パスワードを設定できる。
	アプリケーションから端末画面をロックできる。
	アプリケーションを初期化できる。
	スクリーンアウトができる。
	アプリケーションのデータをクラウドへバックアップしたり、リストアができる。
	アプリケーションからカメラを無効化できる。Ver4.0 デバイスポリシー。
	インテントに値を渡すことができる。
	各種設定画面を直接呼び出すことができる。
	端末の状態を取得できる。
	アプリケーションを外部ストレージに移動できる。
	インターネットに接続しているか確認できる。
	デバッグ時にのみ実行できる処理をコーティングできる。
	スレッド上で時間のかかる処理を実行できる。
	プロセス上で時間のかかる処理を実行できる。
	時間のかかるダウンロードの処理ができる。
	C2DMでサーバからアプリケーションのデータを転送できる。
		サーバーからAndroid端末へデータを送信する機能。
		googleへの申請が必要
	NFCを利用できる。NFCは無線通信規格。日本ではEdy,WAON,住基カードなど
	端末が必要なハードウェアを実装しているか確認できる。
	NFCが有効化どうか確認できる。
	Androidビームでテキストを送信できる。AndroidビームとはNFC対応デバイス間でデータを共有する機能のこと。
	SIPサーバーと接続できる。SIPサーバは、IP電話やインターネット会議に利用される。
	SIPコールで受信して通話できる。
	SIPコールを発信して、通話する。
	VPN接続できる。
	Voicemailを利用できる。
	ソーシャルネットワークに招待できる。
	有料アプリを保護できる。ライセンスチェックを行える。
	アプリ内で課金を実装できる。
	Admob広告を表示できる。表示されるたびに報酬が手に入る。
	google Analysiceでアプリ内の行動を解析できる。画面ごとの起動回数など利用状況を確認できる。
	
	
	
	
	
	
	

	

旧覚書2

	■プロジェクトの複製方法
	EclipseのPackage Explolerからコピー元のプロジェクトを選択
	あとは右クリックからのコピー&ペーストで新しいプロジェクト名を入力するのみ。
	
	
	■DBのトランザクション
	db.beginTransaction();
	try {
	    // SQLの処理
	    db.setTransactionSuccessful();
	} finally {
	    db.endTransaction() ;
	}
	beginTransactionでトランザクションを開始し、 エラーが発生しなければsetTransactionSuccessfulでコミットして、 endTransactionでトランザクションを終了します。
	エラーが発生した場合は、setTransactionSuccessfulが実行されないまま、 endTransactionでトランザクションが終了してしまいますので、 処理はロールバックされコミットされません。
	
	
	■HashMapのループ
				for(HashMap.Entry<String, String> e : ent.entrySet()) {
				    System.out.println(e.getKey() + " : " + e.getValue());
				}
	
	
	■ビルドできなくなったときの対処法
	◇コンパイラーが変わっていないか?
	ウィンドウ⇒設定⇒Java⇒コンパイラー
	コンパイラ準拠レベルを設定しなおして適用ボタン。
	
	◇ソフトウェア更新
	ヘルプ更新の確認。
	しばらく待つ。
	Android関連にチェックを入れて実行。
	
	
	■時刻を取得する
	int m=Calendar.MINUTE;//分を取得
	int s=Calendar.SECOND;//秒を取得
	
	■レイアウトの注意。
	「○○ビューの横に配置」と言う感じで、他のビューと関連付けた配置方法があるので注意。
	
	■テキストビューに文字を表示する。
	TextView tv1=(TextView)findViewById(R.id.textView1);
	tv1.setText("大きな猫");
	
	■実行やデバッグボタンを押してエラーがでるとき。
	activity_main_out.xmlを削除する。
	
	■基本用語
	アクティビティ
		C#,VBにおいてFormに該当するもの
	ビュー
		C#,VBにおいてコントロールオブジェクトに該当する。
		ラベル、テキストなど
	
	■プロジェクトの作成
	①
	ファイル→新規→その他→Android→Android アプリケーション・プロジェクト→次へ
	
	②
	Application Nameにプロジェクト名を入力
	Build SDKはデフォルト選択でも良い。(例:Android 4.1(API16)】
	Minimum Reauired SDKは API4:Android 1.6(Donut)を選択
	
	③
	あとは次に進むボタンを押すだけ
	
	④
	テスト実行は通常のJava実行アイコンをクリックする。
	選択肢が出た場合、Androidアプリケーションを選択する。
	
	
	
	
	■ビュー配置の基本的操作
	①	パッケージエクスプローラ→開発中のプロジェクト→res→layout→activity_main.xmlをクリック。
		※activety_main.xmlはアクティビティクラス名よって異なる。
	
	②	左側のPaletteウィンドウにあるボタンをドラッグして、アクティビティに配置する。
	
	③レイアウトしたボタンを右クリックする。
		
	④	その他のプロパティ→Inherited from view→onClick...
	
	⑤	①で手入力したクリックイベント名を入力してOKボタンを押す。引数名などは不要。
		例:onClickButtonA
	
	
	
	
	■ビューに値をセットする。
	テキストビューに文字列をセットする例。
	    	TextView text1=(TextView)findViewById(R.id.editText1);
	    	text1.setText("ニャンコ先生");
		※ビュークラス名や、ID名は、レイアウトXMLをXMLエディタで開くと見れる。
	
	
	
	
	■プロジェクトの作成でコンパイルエラーが出る場合。
		R.Javaでのエラー対策
		一度プロジェクトを作成し、Eclipseを再起動する。
	
	■gmap利用の下準備
		Google APIsが必要
		ウィンドウのAndroid SDKマネージャから追加できる。
	
	■リソース画像を表示する。
		①resフォルダ内の以下の3つのフォルダにサイズの異なる画像を配置する。(一箇所でも良い)
			drawable-hdpi	480×800
			drawable-ldpi	240×320
			drawable-mdpi	320×480
			※ファイル名は半角英数字であること。(jpg,png)
		
		②一回デバッグ実行する。
			genフォルダ内にあるR.javaが再生される。
		
		③コーティングする。
			例)
	
		    public void showImage(View view){
		    	ImageView imageView1=(ImageView)findViewById(R.id.imageView1);
		    	imageView1.setImageResource(R.drawable.batu);
		    }
	
	
		
	
	■URL上の画像を表示する。
		①AndroidManifest.xmlに以下のコードを追加する。(インターネット接続の許可
			<uses-permission android:name="android.permission.INTERNET"/>  
		
		②コーティング
			例)
		    public void showImageA(View view){
		    	String url="http://amaraimusi.sakura.ne.jp/demo/design01/images/contents/photo01.jpg";
		    	//String url="http://www.ikachi.org/graphic/military/sky/m001a.jpg";
		    	try{
		    		Drawable sample=Drawable.createFromStream(
		    				new URL(url).openStream(), null);
		    		ImageView imageView1=(ImageView)findViewById(R.id.imageView1);
		    		imageView1.setImageDrawable(sample);
		    		
		    	}catch(Exception e){
		    		Toast myToast=Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG);
		    		myToast.setGravity(Gravity.CENTER, 0, 0);
		    		myToast.show();
		    	}
		    }
	
	
	
	
	
	■MainActivityで宣言したメンバの生存期間
	Androidを閉じても、値は保持される。
	ただすタスクキラーアプリを使うと値はリセットされる。
	
	■ログ出力
	Androidのログ出力はLogCatを用いる。
	例)
	Log.d( "LogCat", "Log message" );
	
	第一引数はタグ名、第2引数はログメッセージ
	LogCatウィンドウに出力される。
	ログメッセージは日本語も出力できます。
	
	
	■ローカルストレージへの保存と保存ファイルの確認方法
		ローカルストレージ領域にテキストファイルや画像ファイルを保存できます。
		
		Android端末でのパスは、以下のようなディレクトリに保存されます。
		/data/data/(パッケージ名)/files/(ファイル名)
		
		◇エミュレータ環境について
		例えば、Windows XPの場合ですと、
		C:¥Documents and Settings¥PCユーザ名¥.android¥avd¥xxxx.avd
		xxxx.avdの「xxxx」は、作成したAVDの名前です。
		そして、この中の以下のファイルが、ローカルファイルらしいです。
		userdata-qemu.img
		
		◇エミュレータ環境のローカルストレージに保存したファイルを確認する。
		①確認方法はエミュレータを起動中にAndroid SDKのtoolsフォルダ内にあるddms.batを起動します。
		②alvik Debug Monitorが開くので上段メニューからDevice→File Explore
		③File Explorerから「data/data/アプリケーションパッケージ/files」を開く
		ファイルを選択して左上のエクスポートアイコンで、任意のフォルダにエクスポートできます。
		
		
		C:¥Program Files¥Android¥android-sdk¥tools
		
		◇サンプルコード
		String fileName="sample.txt";
		String fileString="私の猫は¥nティモです";
		try {
			FileOutputStream fos=openFileOutput(fileName,Context.MODE_WORLD_READABLE);
			fos.write(fileString.getBytes());
			TextView tv=(TextView)findViewById(R.id.textView1);
			tv.setText("書き込んだぜよ¥nファイル名:"+fileName);
			fos.close();
		} catch (FileNotFoundException e) {
			Toast.makeText(this,"Oh 失敗...", Toast.LENGTH_LONG).show();
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		} catch (IOException e) {
			Toast.makeText(this,"Oh 失敗2...", Toast.LENGTH_LONG).show();
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
	
	■インテントで標準カメラの起動と撮影した画像の取得
	下記のコードをMainActivityに記述。
	
	    //ボタンイベント。カメラアプリをインテントで立ち上げる。撮影後、データ保存をし、onActivityResultを呼び出す。
	    public void onClickBtnB(View view) {
	    	Toast.makeText(this, "テスト2", Toast.LENGTH_LONG).show();
	        String filename = System.currentTimeMillis() + ".jpg";
	
	        ContentValues values = new ContentValues();
	        values.put(MediaStore.Images.Media.TITLE, filename);
	        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
	        mImageUri = getContentResolver().insert(
	                MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
	
	        Intent intent = new Intent();
	        intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
	        intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageUri);
	        startActivityForResult(intent, 2);
	    }
	
	    //インテントからの返り処理
	    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	    	Toast.makeText(this, "テスト3", Toast.LENGTH_LONG).show();
	        if (requestCode == 2) {
	            // ImageViewに表示するなら
	            ImageView imageView = (ImageView) findViewById(R.id.imageView1);
	            imageView.setImageURI(mImageUri);
	        }
	    }
	
	
	■画像リソースの解像度の種類
	フォルダ名	意味
	drawable	OS1.5までの指定方法。OS1.6以上でも指定出来る
	drawable-ldpi	低解像度扱いの画像を格納	240×320
	drawable-mdpi	中解像度扱いの画像を格納	320×480
	drawable-hdpi	高解像度扱いの画像を格納	480×800
	drawable-nodpi	解像度を意識しない画像を格納*1
	drawable-port	縦画像を格納
	drawable-land	縦画像を格納
	drawable-ja	日本語ロケーション時の画像を格納
	※参考
	http://d.hatena.ne.jp/hyoromo/20101118/1290093769
	
	■画像リソースの追加方法
	drawable-○○フォルダに画像ファイルを置き、一度実行する。
	するとR.javaが更新される。
	これで使用OK.
	
	
	■多言語化に対応
	リソースの多言語対応は、res/以下のディレクトリ(たとえばres/values)に修飾子を付与するだけで、簡単に作成できます。
	日本語と英語(デフォルト)に対応する場合、下記2つのリソースを用意します。
	values/string.xml
	values-ja/string.xml
	
	利用例)
	Log.d("debug", getString(R.string.hello));
	
	参考サイト:http://techbooster.org/android/resource/583/