android(IS01)でJavaScriptプログラミング2

※以前別の場所で書いた文章を備忘的に書き記しておきます。

【投稿年月日】2010-11-16 【ジャンル】JavaScript

 前回、サンプルとして公開したコードは以下の通り。
load("/sdcard/com.googlecode.rhinoforandroid/extras/rhino/android.js");
var droid = new Android();
var result = droid.getRunningPackages();
for(var i=0; i<result.length; i++) {
 print((i+1) + ". " + result[i] + " / ver." + droid.getPackageVersion(result[i]));
}
quit();
 android上で動いているアプリのリストを取得する、rhinoで記述したプログラムです。
 rhinoはサーバー型JavaScriptと言っても、もちろん異なる点はいくつかあるわけで、上記コードにもrhino独自のものが何個か用いられています。
load("/main.js"); … JavaScriptファイルを読み込む。
print("text"); … 出力。alert()に近い。
quit(); … 終了。
 また、rhinoの面白さとして、Javaを呼び出すことができるところが挙げられます。importPackage()やimportClass()などを使ってJavaのクラスなどを呼び出したり、
new java.lang.String("text").getBytes("UTF-8")
のように直接呼び出したりします。Javaとの連携についてはよく分かっていないので、自己学習を兼ねて後日まとめてみたいと考えています。


 また、androidネイティブのAPIを呼び出すこともできます。上記ソースの該当箇所は以下の通り。
load("/sdcard/com.googlecode.rhinoforandroid/extras/rhino/android.js");
var droid = new Android(); … android.jsをloadで読み込み、androidネイティブのAPIを呼び出す。
droid.getRunningPackages(); … 現在実行中のアプリを配列で返す。
droid.getPackageVersion(); … アプリのバージョンを返す。
 ただし、すべてのAPIを呼び出すことはできず、現状ではかなり限定的であると言えます。今後の拡充に期待。
 利用可能なandroidのAPI一覧は下記ページを参照。

ApiReference android-scripting
code.google.com/p/android-s...

 前回のソースは実用的ではないので、少し工夫をしてみます。
load("/sdcard/com.googlecode.rhinoforandroid/extras/rhino/android.js");
var droid = new Android();
var result = droid.getRunningPackages(), mail = new Array();
for(var i=0; i<result.length; i++) {
 mail.push((i+1) + ". " + result[i] + " / ver." + droid.getPackageVersion(result[i]));
}
droid.sendEmail("hoge@hoge.hoge", "running app list", mail.join("\n"));
quit();
 android上で動いているアプリのリストを取得し、それをメール送信するプログラムです。解説する必要がないぐらい分かりやすい変更ですね。

 今回は文章の入力はもちろん、プログラムのデバック(というほどでもないけれど)も全てIS01で行いました。パソコンに比べたら確かに不便なこともありますが、思ったよりも快適にできるものです。何より気負うことなくできるのが嬉しいです。
 次回は、IS01で快適にプログラムができる環境について考察する予定です。

EDIUNET | PHP/MySQL | 独り言 | 提供サービス | JavaScript