http://code.google.com/p/android-scripting/downloads/list ここからsl4a_r6.apkをダウンロードしてインストールします。
adb install D:\temp\sl4a_r6.apk 1240 KB/s (887749 bytes in 0.699s) pkg: /data/local/tmp/sl4a_r6.apk Success
SL4AがASEという名前だった頃はTclもSL4A(ASE)の公式サイトで配布されていたようですが、
現在メンテナが更新しないとかいう理由で、公式サイト
(http://code.google.com/p/android-scripting/)から配布されなくなってしまいました。
この古いやつはTcl8.6b1でビルドされているtclkitshで、http://www.patthoyts.tk/tclkit/android-arm/から
ソースコードと共にゲットすることができます。sl4a環境でのAndroid APIの呼び出しに使うパッケージのandroid, jsonは
Tcl Moduleでooで書かれています。しかし、詳しくは調べてないのですが、これが新しい環境で動かないようです。
androidのAPIを使わないのなら、これでもOKかも。また、auto_pathはkit内に設定されているので、自分で書いたパッケージ
やtcllibを入れたりするには、auto_pathに自分でパスを追加したり、直接コードをsourceするしかないようです。
また、サポート落ちに(絶望して?)、SL4Aに対応して欲しくて頑張って作ってくれた(のに放置ぎみに見える)ものもあります。
http://ww1.pragana.net/のOctober 2, 2010 -- Tcl for AndroidとSeptember 27, 2010 -- Tcl 8.5.9 for Android
の記事にその経緯やコンパイル方法、ブツのダウンロード先などが書かれています。ここでダウンロードできるのは、インストール用の
TclForAndroid.apkと、tclsh、ライブラリ、サンプルスクリプトです。ここのtclは8.5.9で、android、jsonパッケージはちゃんと
動きます。また、tclshはkit化されておらず、ライブラリは/sdcard/com.googlecode.tclforandroid/extrasに配置されます。
さらにauto_pathもここへパスが通っており、package require android が通ります。
色々調べている中で見つけたhttp://www.geocities.jp/tomcatalbino/how2tcl.html で、Tclのインストール方法が書かれています。
この方法は先のtclkitsh8.6b1をインストールし、ライブラリは後者の8.5.9のを展開し、しかしauto_pathが通っていないため、
androidパッケージを直接sourceすることで動かしているようです。この方法ではsl4aの画面上Tcl8.5.9と表示されますが、実際に
動いてるのは8.6b1です。
sl4aでは各言語の実行環境をcode.google.com/p/android-scripting/からダウンロードさせる仕様になっているため、
http://ww1.pragana.net/からダウンロードしたTclForAndroid.apkを実行したとしても、上記から古い8.6b1のものがダウンロード
されるようです。最初期のベータを使うのはなんか嫌だし、package require androidが通らないと気持ち悪いので、8.6b1の環境を
インストールした後、http://ww1.pragana.net/のブツで置き換えようと思います。
バイナリが配置される/data以下はルート化していないと触ることができませんので、この方法ではルート化必須です。
とりあえず必要なものを先に揃えておきます。
http://ww1.pragana.net/Android/から次のブツをダウンロードしておきます。
そして、TclForAndroid.apkをインストールします。
adb install D:\temp\TclForAndroid.apk 1138 KB/s (32631 bytes in 0.028s) pkg: /data/local/tmp/TclForAndroid.apk Success
これでインストールされたTcl for Androidはインストーラなので、これを実行しinstallボタンを押してさらに実行環境インストールします。なにやらダウンロードして展開します。
先にダウンロードしておいたこの三つを置き換えます。
adb push D:\temp\tclsh_r1.zip /sdcard/ 1284 KB/s (555206 bytes in 0.422s) adb push D:\temp\tclsh_extras_r1.zip /sdcard/ 1204 KB/s (1070980 bytes in 0.868s) adb push D:\temp\tclsh_scripts_r1.zip /sdcard/ 122 KB/s (2514 bytes in 0.020s) adb shell
で、ここからはadb shellで接続して作業します。
shell@android:/ $ cd /sdcard shell@android:/ $ su shell@android:/mnt/shell/emulated/0 # unzip tclsh_r1.zip -d /data/data/com.googlecode.tclforandroid/files/ shell@android:/mnt/shell/emulated/0 # unzip tclsh_scripts_r1.zip -d /sdcard/sl4a/scripts/ shell@android:/mnt/shell/emulated/0 # unzip tclsh_extras_r1.zip -d /sdcard/com.googlecode.tclforandroid/extras
以上でインストール完了です。
文字ちっさw