初歩的なミス

Google Android WebAPIプログラミング入門

を参考に、アプリのマッシュアップの勉強していましたが
JSON解析のところで初歩的なミスをしました
JUnit Test を行っていて、
エラーがでてくるため、一度ソースを見直してみたのですが
理由がわからず、いろいろと探してみました
もう少しログを見れば、HttpStatus.SC_OK
のところで
エラーがでていて、この原因が まだAndroidManifest.xml で
android.permission.INTERNET
を記述していないのが原因だと気づけたのですが….
すでに、修正したためエラーがでなくなりましたが
今後は同じミスがでたときのために、
エラーログもメモしておこうと思います

rpm のダウングレード

RPM パッケージで、依存性の欠如により
古いパッケージが必要になることがあります
これは、ソースからのインストールを行うときによくあることです
そんなときには、
–oldpackageオプションを使用します
使い方については
rpmコマンドでパッケージをダウングレードするには
が参考になります
とはいったものの、まずは古いRPMパッケージを入手しないといけません
(yum コマンドの場合なら、ネットから簡単に取得できますが)
この場合、まずは必要なパッケージがなにかを調べるため
rpm -qa | grep パッケージ名
として、現在入っているパッケージを調べ
次に、必要なパッケージを googleで検索し
ダウンロードします

Base 関連のインストール

開発ツール群のインストール(CUI)
では、
yum groupinstall “Development Tools”
を使うことで
開発ツールをインストールすることができました
同様に、
yum groupinstall “Base”
を実行することで、ベース関連をインストールすることができました
これで、過去にCentOS AMI に入れておきたいもの
で必要としたものが少し進展しました
試しにシステムツールを
yum groupinstall “System Tools”
でインストールしたら、いくつかのパッケージがインストールされました
今回インストールされたのは
OpenIPMI i386 2.0.16-11.el5_7.2 updates 158 k
bluez-hcidump i386 1.32-1 base 94 k
hwbrowser noarch 0.30-3.el5 base 93 k
net-snmp-libs i386 1:5.3.2.2-14.el5_7.1 updates 1.3 M
nmap i386 2:4.11-1.1 base 672 k
ntp i386 4.2.2p1-15.el5.centos base 1.3 M
openldap-clients i386 2.3.43-12.el5_7.9 updates 218 k
samba-client i386 3.0.33-3.29.el5_7.4 updates 5.7 M
screen i386 4.0.3-4.el5 base 559 k
vnc i386 4.1.2-14.el5_6.6 base 160 k
xdelta i386 1.1.3-20 base 111 k
zisofs-tools i386 1.0.6-3.2.2 base 16 k
zsh i386 4.2.6-5.el5 base 1.7 M
Updating:
dmidecode i386 1:2.11-1.el5 base 78 k
Installing for dependencies:
OpenIPMI-libs i386 2.0.16-11.el5_7.2 updates 570 k
gnome-python2-canvas i386 2.16.0-1.fc6 base 23 k
libsmbclient i386 3.0.33-3.29.el5_7.4 updates 908 k
pyparted i386 1.8.1-4.el5 base 24 k
samba-common i386 3.0.33-3.29.el5_7.4 updates 6.7 M
Updating for dependencies:
openldap i386 2.3.43-12.el5_7.9 updates 297 k
となりました

開発ツール群のインストール(CUI)

AmazonEC2 でAMIから起動する方法で現在
サーバーを構築中ですが、VMware で自宅サーバー構築したときとは
異なり、初期状態でベースや開発ツールなどを
いれることができませんでした
このため、後からいれることになります
今回の参考サイトは
CentOS 5.3 インストール その2です
yum groupinstall “Development Tools”
をroot で実行することでインストールすることができました

JSON について

Google Android WebAPIプログラミング入門
でJSONの取扱いがあったので、扱う前にメモしてみました

JSON は Java Script Object Notation の略で
軽量のデータ交換フォーマットを意味するようです
JSONの構造は Object と Array の2種類
Object は1つ以上のメンバで構成されていて
メンバは名前と値のペアになっている
名前と値は “:” で区切ってある
(Android の XMLファイルによく使う android:id みたいなかんじ)
複数のメンバを {} で囲んで Object を表現している
(関数のスコープみたいなかんじで)
Array は [] で区切って表現
Array の中には Object や値が含まれていて “,” で区切って表現する
というようになるようです
実際のデータをみるには
http://express.heartrails.com/api/json?method=getStations&name=%E5%B2%A1%E5%B1%B1
へアクセスし、ファイルをダウンロードして中身をみるとよりわかりやすいです

Android アプリ開発の勉強中で、メモです
参考書籍はGoogle Android WebAPIプログラミング入門

HeartExpress API のアプリ

忘れないういちにメモしておきました
最初に、プロジェクトを作成します
書籍と同じ名前のアプリは、すでにソースを見るためにインポートしているため
不可能
なので、プロジェクト名を APIStationSearch
Activity は MainActivity としました
次に、テストプロジェクトを作成します
作成した APIStationSearch をクリックしてから
File > new > Project で
Android Test Poject を選び、次へをクリック
Project Name には APIStationSearchTestTest とし
Test target を
This project にします
もし、APIStationSearch をクリックして選択していないのなら
An existing Android project を選択して、Browse をクリックし
プロジェクトから探すのですが、さすがに面倒なので、先に選択しておきました

駅情報検索できる HeatRails Express のAPI


Google Android WebAPIプログラミング入門
を参考にマッシュアップアプリ作成の勉強中です
今回は、駅情報検索アプリとなる  HeatRails Express のAPIについてです
ドキュメントサイトは
http://express.heartrails.com/
となります
HeatRails Express
では
路線、駅名などの地理情報データをXMLとJSON形式で無料提供しています
商用、非商用でも使用可能となっています
駅情報取得APIの他に
エリア情報取得API
都道府県情報取得API
路線情報取得API
最寄り駅情報取得API
などがあります
このAPIを使うとき、公開アプリの場合、じゃらんのときのように
クレジット表示が必要になります
今回の書籍での取扱いは
JSON形式でした
http://express.heartrails.com/api/json?method=getStations
という
形式になります
書籍には
岡山駅を表示するというのが最初に載っています
http://express.heartrails.com/api/json?method=getStations&name=%E5%B2%A1%E5%B1%B1
をブラウザで入力(今回はFireFox)して
ファイルをダウンロードし、テキストエディタ(gedit)
で開くと内容が見れます(JSON形式のデータです)
以前、講習で JUnit Test を受けたことがありますが
JSONの解析はまだ未経験なので、学習しながらまとめていこうと思います

Android の音楽プレイヤー

日経 Linux (リナックス) 2011年 11月号 [雑誌]
を参考に Linux 関連の勉強をしています

今回、興味を持ったのは Android 音楽プレイヤーである
Creative ZEN Touch 2 Android エンターテイメントプレーヤー 8GB ブラック ZN-T28G-BK
です

GPS搭載のタイプもあるようですが、現在 Amazon では取り扱っていないようで
価格.com で調べた結果、GPS搭載のほうはメーカーのサイトで
購入する以外には見当たりませんでした
ただ、GPS搭載でない方なら、1万円以下で購入できますので
アプリの実験に使えそうです
ちなみに、今回の日経 Linux の特集では、GPS搭載のほうで
実験しているOSは winodws でした

意外と遅い実機でのログ出力


を参考に、実機でアプリの動作をみています
使用している機体は

実機での検証をするにはUSBでつないで、アプリを実行するのですが
この参考書に掲載されている実機での通信関連のアプリの実行結果は、
ログへ出力されるというものでした
最初はわからず、画面がなにも変わらないと悩みましたが
実際にはログへ出力されていました
ログは Eclipse でも確認できます
Eclipse の画面で window > show view > other > android > Logcat
で見ることができます
ただ、このアプリのログはすぐにはでてきませんでした
いままで、エミュレータとくらべて、かなり速いので
ログ出力もかなり速いのかと思ったのですが
意外と時間がかかりました
とはいっても数分もかからない程度ですが
端末からもログの確認をすることも可能です
パスが通してあるなら、
adb logcat
でログをみることができます
途中で終了するには ctrl + c で終了します
(ubuntu の場合)

Android 実機で検証


を参考に、HTMLとJavaScript を使ったプログラムを実機で行って見ました
今回、実機に使用したのは

実機検証にあたり、実機を登録するのに参考にしたのが
過去に実験した
Ziio 7 を開発環境に利用

日経Linux 2011-05

です
ちなみに、adb コマンドを使うには
最新のAndroid SDKと adb その2
に記述するようにパスを通しておく必要があります
バイブレータ機能などは、エミュレータでは検証できないため
実機検証する必要があります