第55回PHP勉強会@関東で発表してきた
無事、第55回PHP勉強会@関東が終了しました。幹事のid:gusagiさん、会場を提供していただいた株式会社コンテンツワンさん、ありがとうございました:-)
今回は『PHP for Android 〜 SL4A+PFA』ということで、PHP+Androidな話をさせてもらいました。
プレゼン資料
いつも通り、handsout.jpにUPしてあります。slideshareにUPし直しました。フォントが。。。コードとか一切でてこないので、これだけ見ても分らんなぁ。。。
また、デモで使ったコードは、doyouphp.jpにUPしてあります。Android.phpはPFAをインストールすれば、自動的にインストールされます。
SL4A+PFAのインストールについて
プレゼンの時は完全に端折りましたが、RequirementsにあるInstall SL4A (Android Scripting Environment)とInstall PhpForAndroid.apkの2つを実行することになります。要は、
- SL4AとPFAのapkをダウンロードしてそれぞれインストール
- PFAを実行し、"Install"ボタンを押して、PHPバイナリやサンプルコードをインストール
という内容になります。参考までに、PHPバイナリなどのインストール中の画面は次の通りです。
APIについて
最初に実行したhello_world.phpは次の通り。
<?php require_once("Android.php"); /** * Androidオブジェクトを生成 */ $droid = new Android(); /** * 入力ダイアログを表示し、入力を待つ */ $name = $droid->dialogGetInput("Hi!", "What is your name?"); /** * 入力結果をトーストで表示 */ $droid->makeToast('Hello, ' . $name['result']);
これを実行すると、
というような入力ダイアログが表示され、入力後OKボタンを押すと、
という感じのトーストが表示されます(下の方に出ている"Hello, ほげ"という部分)。
AndroidクラスはあくまでSL4AとJSON RPCするためのクライアントに過ぎませんので、使えるAPIはSL4Aの方で定義されています。APIリファレンスは次のURLを参照してください。
PEARライブラリのインストール
ここも説明を端折りましたが、PFAを実行してインストールされるPHPバイナリは本体側、サンプルコードはSDカード側に保存されます。
/ ├─data │ └─data │ └─com.irontec.phpforandroid │ └─files │ └─php │ └─bin ... PHPバイナリ └─sdcard ├─com.irontec.phpforandroid │ └─extras │ └─php ... Android.php, php.ini └─sl4a └─scripts ... サンプルコード └─PFAf ├─Library └─UserScripts
で、php.iniを確認すると、
include_path = ".:/sdcard/com.irontec.phpforandroid/extras/php"
となっているので、今回は、CentOSにインストールしてあるPHP5.2.17のPEAR_INSTALL_DIR配下をそのまま/sdcard/com.irontec.phpforandroid/extras/phpにコピーして使いました。当然、別途ディレクトリを作成し、include_pathを指定しても大丈夫なはずです。
実際に、所有しているX06HT(HTC Desire)の当該ディレクトリの中身は次のような感じになっています。