インテントを使いアプリ呼び出し

暗黙的インテントの場合、
アクション定数を引数にインテントを生成
Intentの
setData()
で、URIを設定
startActivity()で次のアクティビティを起動する
指定したアクション定数やURIに合致する
インテントフィルターを持つアプリが
これでよびだされる
暗黙的インテントで
電話やWebブラウザー標準のアプリも呼び出せる
電話なら
アクションは
android.intent.action.DIAL
URIは
tel:電話番号
Webブラウザーなら
アクションは
android.intent.action.VIEW
URIは
http://ホスト名/パス
明示的インテントでも
暗黙的インテントでも
アクティビティを起動するのに
startActivity()
のほかに
startActivityForResult()
が使える
startActivityForResult()
を使うと
次のアクティビティが終了するときに
最初のアプリに値を戻せる

暗黙インテントについて

暗黙的インテント
これは主に他のアプリ呼び出しに使う
これを使うにも
Androidmanifest.xmlの編集が必要になる
Androidmanifest.xmlに
インテントフィルターという
暗黙的インテントで呼び出すための条件を記述する
やり方は、対象の
activityタグの中に
intent-filterタグを設定
そして、この
intent-filterタグの中に判断材料となるタグを設定する

Ajaxまとめ

Ajaxは
サーバーとの通信をjava scriptで行う技術
Ajax通信ではドメインをまたがって要求することができない
サーバーから取得したデータをそのまま
ページに反映するには
load()
を使う
$.getJSON()
とJSONP
を使うことで
ドメインをまたがって通信できる
ajaxStart
ajaxStop
ajaxError
などのAjaxイベントを利用することで
Ajax通信中にアプリ独自の、動作を挟める

Android4.0でのメニューボタン

過去に買った参考書籍ではまること 
それは、バージョン違いにより再現できないこと
今回もこれに引っかかりました
Android4.0からだと
Android2.3までとはUIが変わるため
ハードウェアキーの
メニューボタンがありません
このため、Android2.3対応の書籍で
アプリ作成してみると
メニューボタンがなく、はまることがあるので
注意が必要です

Android4.0は何が違う?「GALAXY NEXUS SC-04D」の外観とUIを徹底レビュー!


にもこれについての解説が載っていました

SQLiteのデータ型

SQLiteのデータ型
INTEGER
符号付き整数
REAL
浮動小数点数
TEXT
テキスト
BLOB
バイナリデータ
Androidでは以下のクラスを使い
SQLite DBを利用する
SQLiteOpenHelperクラス
DB作成、
スキーマのバージョン管理をするための
抽象クラス
このクラスを継承して
DB生成、アップグレード処理を実装する
SQLiteDatabaseクラス
insert()
update()
などDBに対するレコード操作用メソッドを提供するクラス

SQLiteの概要

SQL DBの利用
まずはSQLiteデータベースについて
SQLite データベースは
一般的なRDBMS
リレーショナルデータベースマネジメントシステム
に比べ
いくつかの特徴的な仕様を持つ
一般的なRDBMSといえば
MYSQLあたりが有名
SQLiteは
データの保存に単一ファイルのみを使用する
軽量のRDBMSで
MYSQLやPostgreSQLよりも
Microsoft Accessに近い
アプリに含む形で利用されることが多く
iPhoneでも SQLiteは使われている
SQLiteは
Webアプリ開発に使うPHPとか
Adobe AIRでも使える
SQLiteのデータ型はシンプルで
ファイル型のDBなので
携帯端末でも高速動作可能
ただ、SQLiteの場合
データ型といっても、他のRDBMSとは違い
データ登録時に厳密なデータ型のチェックをしない
このため、
データ型と違うタイプのデータも登録できてしまう
登録されているデータを評価するときには
データ型が使われる

AsyncTaskによる非同期実行

AsyncTaskによる非同期実行
AsyncTaskを使うと
バックグラウンドで処理を行い
その結果をメインアクティビティのUIに反映させることができる
AsyncTaskは
Params
Progress
Result
の3つのパラメータを持つ
ちなみに、パラメータの意味は
Params
タスクが開始されるときに送られるパラメータ
doInBackground()の引数
Progress
バックグラウンド処理の進捗状況を示すための
onProgressUpdate()の引数
Result
バックグラウンド処理が終わったときに実行される
onPostExecute()の引数
また、AsyncTaskをexecuteすると
4つのメソッドが実行される
実行されるメソッドは4つ
onPreExecute()
実行前の準備処理
例えばインジケータセットアップ
doInBackground(Params…)
バックグラウンドで実行したい処理
onProgressUpdate(Progress …)
バックグラウンド処理の進捗状況を
UIスレッドで表示するなら記述
onPostExecute(Result)
バックグラウンド処理が終わり
UIスレッドで反映させる処理
AsyncTaskを使うにはルールがあるので注意
このルールは
AsyncTaskのインスタンスはUIスレッドで生成
AsyncTaskの execute()は
UIスレッドから呼び出す
onPreExecute()
onPostExecute()
doInBackground()
onProgressUpdate()
は手動で呼び出せない
AsyncTaskは1回だけ実行できる2回目だと、例外になってしまう

ssh RSA keyの編集

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
というエラーが発生
これは、バックアップから作成したGMOクラウドへ接続したときのエラー
Please contact your system administrator.
Add correct host key in /home/wiki/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/wiki/.ssh/known_hosts:5

エラーがでているので
vim .ssh/known_hosts
でファイルを開き 5行めを削除
これで無事接続可能になりました

string.xmlでの入力方法の違い

Androidアプリのビュー部品。横に並べるため
LinearLayout

android:orientation

horizontal
に設定
ちなみに
horizontalは横並び
verticalは縦並び
この中に、ToggleButtonを設置
これはjQueryのトグルボタンと同じ効果
android:textOff
へはオフ状態のボタン表示メッセージ
android:textOn

オン状態のボタン表示メッセージ
あと、経過時間もつけたいので
タイマー表示に使える
Chronometer
を設置しました
今回、main.xmlでマップをつけてみましたが
API_keyは
string.xmlに記述し
変数のような扱いにしました
この方がメンテが楽になります
string.xmlで
注意すべきは
ダブルクォート ”の取り扱いです
直接、xmlで記述すると
” となりますが
リソースの方で編集すると
” ではなく &quoteになります
普通に文字列で表すには問題ないのですが
なにか引数扱いにするなら
注意が必要です

sftpコマンド

http://yoshiiz.blog129.fc2.com/blog-entry-44.html
を参考に
sftpコマンドを、使ってみました
接続クライアントは
ubuntu 12.04 64bit です
GMOクラウドでCentOSをつかうときに
当初、scpコマンドを使う予定でしたが
最小構成のためscpがインストールされておらず
yumコマンドも使えないので
sftpコマンドで転送しました
残念なことに
sftpで接続したときに
日本語ディレクトリは入力できないため
最初に
cd ダウンロード
で移動しておくか、
カレントディレクトリに転送するファイルを
移動させておく必要があります
なお、現在セキュリティーのため
ポートを変更しているため
接続には
sftp -oPort=ポート番号 ユーザ名@IPアドレス
で接続となります
ファイルアップロードには
put ファイル名
となります