2009年9月24日木曜日

Android で Lua, Python, JRuby, Perl, BeanShell !!

ase というアプリをご存知でしょうか? Android端末上で、最近流行のスクリプト言語を使い倒すことができます。Google Labs ネタですが、http://code.google.com/p/android-scripting/ から、ase_r13.apk が、野良アプリとしてダウンロードできます。

野良アプリですので、Setting → Applications → Unknown sources にチェックを入れておかないと、インストールできませんが、一応、Google Labs にも挙がっているネタなので、あんまり神経質にならずに、軽い気持ちでインストールしてみました。

ase を起動して、menuボタン(S11HTではWindowsマーク)を押すと、"Add Interpreter" というメニューが出てきます。なにげにこれをタップすると、なんと、BeanShell からはじまって、Lua、JRuby、Perl、Python という最近流行のスクリプト言語が並んでいるではないですか。

とりあえず、私のような旧タイプの人間にも手に負えそうな Perl をタップしてみます。すると、なにやらごちゃごちゃと表示されて、どうやら Perl がインストールされたようです。

先ほどのメニューから、"Add Script" をタップして、テキストエディタを立ち上げて、適当なスクリプトを書きます。ファイル名も適当に書き換えて、menuボタンを押して、"Save & Run" をタップ!

と、コンソール画面が立ち上がって…… おんやぁ~? なんか、エラーが出てます。"Permission denied" 実行権が無いようです。なるほど、このへんが、まだ Market に登録されてない理由かもしれません。あせらず騒がず、そのままのコンソール画面で su コマンドを使ってスーパーユーザーになって、以下のコマンドを実行すれば問題はありません。

% su
# chmod a+x /data/data/com.google.ase/perl/perl

次回からは、問題なく Perl のスクリプトが実行できます。

たぶん、他のスクリプト言語も、インストールするたびに同じことをして実行権を与えてやらないといけないと思います。

JRuby や、BeanShell は、Java のクラスがそのまま使えるので、スクリプトだけで、Android のアプリが作れるのではないでしょうか。

他の言語も、Android 用に拡張されたライブラリが付属しているようなので、ちょっとしたアプリなら作れるのかもしれません。じっくり遊んでみなくてはいけませんね。

[関連リンク]
Google Labs
android-scripting

2009年9月21日月曜日

S11HT Android : USBドライバ、インストールできました

【速報】S11HT Android : 9/12版はIon」で書いたら早速コメントをいただきました。USBドライバの件です。

実は、SDK付属のUSBドライバは、過去に何度かトライしてうまくインストールできずに放置していました。たぶん、Ion用とか、HT-03A用のドライバというものがSDK付属のものとは別個に、どこかに転がっていたりするんじゃないのかと思っていたのです。それでも、いただいたアドバイスが「SDK付属のドライバをお使いなさい。使えるはずです」ということだったので、もうこれしか方法はないのだろうと思い、ちょっと強引な感じのインストールに踏み切りました。

インストールできない理由は実は単純明快。android_winusb.inf の中に、S11HT Android 用のハードウェアID が記述されていないからです。

SDK1.6 の android_winusb.inf が見やすいので、こちらを参照すると、

[Google.NTx86]
; HTC Dream
%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0FFF
; HTC Magic
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C03&MI_01

という記述があります。

PC側でデバイスマネージャを開いて、ドライバが正しくインストールされずに「その他のデバイス」の下にぶら下がっている「Android Phone」を右クリック→「プロパティ」で開いて、「詳細」と書かれたタブに移って、プロパティ:ハードウェアID を確認します。すると、以下のようなIDが書かれていました。

USB\VID_0BB4&PID_0C02&REV_0100
USB\VID_0BB4&PID_0C02

たぶん、HTC Magic と同じように書いておけばいいのだろうと思い、以下のような2行を追加しました。

; S11HT Ion
%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&REV_0100

ちなみに、';' の後ろはコメントなので、Android on S11HT でも、My Android でも、後でわかるようにお好きなコメントを入れておけば良いかと思います。

で、私はそのまま「全般」タブから「ドライバの再インストール...」をクリックして、インストールしましたが、たぶん、USBコネクタを刺し直してもいいと思います。とにかく、USBドライバをインストールしなおします。

大まかな手順は、Guest さんから教えていただいた、"http://developer.android.com/intl/ja/guide/developing/device.html#WinUsbDriver" を参照していただければだいたい同じです。

何事もなかったかのようにインストールは終了します。デバイスマネージャを開くと、「Android Phone」というデバイスの下に、「Android Composite ADB Interface」というドライバがぶら下がっているのが確認できると思います。

おもむろに、コマンドプロンプトから、"adb shell" とやると、'#' プロンプトが立ち上がって、デバイスにアクセスできます。

注意書きにわざわざ、

"Caution: You may make changes to android_winusb.inf file found inside usb_driver\ (e.g., to add support for new devices), however, this will lead to security warnings when you install or upgrade the driver. Making any other changes to the driver files may break the installation process."

なんて、書いてあるということは、こうやってインストールするのが、ある意味普通なんでしょうか。

[関連リンク]
http://developer.android.com/intl/ja/guide/developing/device.html#WinUsbDriver
【速報】S11HT Android : 9/12版はIon

2009年9月19日土曜日

【速報】S11HT Android : 9/12版はIon

いつも速報ばかりで申し訳ありません。

Kaiser Builds [Android on HTC]では、既にAndroid 1.6 版のsystem.sqsh ファイルがアップされていたりしますが、ようやく9/12 版を試すことができました。こちらはAndroid 1.5 です。

Google-Ion-2009-09-12.zip をダウンロードして、展開して、いつものように default.txt の ppp 関連を書き換えて、さらに、どういうわけか、MTYPE が、1667 になっていますので、ここも 1553 に書き換えてください。前回、9/9版がうまく立ち上がらなかったのもこれが原因かもしれません。(未確認)Boot Options を見ても、1667 は載っていないのでどんな機種でテストされた default.txt なのかが気になります。

今回はIon ベースなので、画面の解像度を好きなように選べて快適です。Wi-Fi も GPS も問題なく使えます。ただ、カメラがまだ使えないようです。USB は認識するのですが、PC 側にインストールすべきデバイスドライバが見つからないのでテストできません。どなかた、デバイスドライバの入手方法をご存知の方がおられましたらご一報を。

2009年9月11日金曜日

【速報】S11HT Android : 9/10版がうまく動いてます

Kaiser Builds [Android on HTC] の最新版、09/09/09バージョンをダウンロードしてみましたが、default.txt の PPP 関連を書き換えただけでは、どうもうまく立ち上がりませんでした。haret.exe で run をタップしたあと、フリーズしてしまいます。ドキュメントを探していろいろトライしてみてもよかったのですが、kaiser-hero - Project Hosting on Google Code に9月10日版が挙がっていたので、こちらを試してみました。

kaiser-hero-100909.zip です。

こちらは、いままで通り、default.txt の PPP 関連を書き換えただけでうまく走りました。ただ、ちょっと動作が重い気がします。

関連リンク
Kaiser Builds [Android on HTC] 
kaiser-hero - Project Hosting on Google Code

2009年8月23日日曜日

【速報】Android on S11HT : Wi-Fi使えます!

HERO on Kaiser ですが、kaiser-hero-130809-1.zip に、ちょっとした改造をするだけで Wi-Fi が使えます。簡単な作業ですのでお試しあれ。

下記の4つのファイルをリンク先からダウンロードします。
SuperHero081609.zip
Zenulator_SuperHero_Kaiser-wifi-su--081609.img
zImage-14-08-09a
rootfs-2009-08-16.zip

zImage-14-08-09a を zImage にリネームして置き換えます。

Zenulator_SuperHero_Kaiser-wifi-su--081609.img を system.img にリネームして置き換えます。

rootfs.img を rootfs-2009-08-16.zip に含まれているものと置き換えます。

initrd.gz を SuperHero081609.zip に含まれているものと置き換えます。

以上で、Wi-Fi が使えるようになります。

[関連リンク]
Issue 3 - kaiser-hero - Wifi on Kaiser don't work - Project Hosting on Google Code

HEROじゃなくていいんですけど……

ちょっと仕事が忙しくて、間が空いてしまったのですが、久しぶりに例のKaiser Builds [Android on HTC]を見に行くと、8月10日に最新版がアップされているようなので、インストールしてみました。

これまで使っていた default.txt を使ったところ、HERO のロゴと htc のロゴが交互に表示されるだけで先に進みませんでした。使えないのかなぁ……、とも思いましたが、default.txt を同梱のものに戻して再試行。ちょっと時間はかかりましたが、なんとか立ち上がりました。

一度シャットダウンして、default.txt 内部の ppp 関連のところだけ前の default.txt から流用して再度トライ。こうすると、どうにか立ち上がるみたいです。どうも画面の設定を変えるとダメみたいですね。HERO 用の Android は画面サイズを決め打ちで作られているようです。もともとの S11HT の解像度は240 x 320 ですが、これを、HERO と同じ 320 x 480 に設定すると、少し横に伸びたような感じになります。それでも使えないというほどではないですが、キーボードを引き出した瞬間に文字の縦横比が変わってしまうのでちょっと違和感が残ります。デフォルトで Home に設定されている TouchFLO を使わなければいいのかと思い、Open Home をインストールして、デフォルトを切り替えてみましたがやっぱりダメです。多少横長になるのを我慢して使うしかないようです。

YouTubeに動画がアップされています

[関連リンク]
Kaiser Builds [Android on HTC]
YouTube - HERO running on Kaiser
Android携帯 HTC Hero 正式発表、Flash対応

2009年7月20日月曜日

Android on S11HT : iWnnIMEインストールまとめ

先日S11HTにiWnnIMEをインストールしてから、メールから2ちゃんねるの投稿までいろいろ使ってみましたが、かなり安定しています。今後、Android on the HTC Kaiserがバージョンアップされた場合、同様の手順を繰り返すことで、iWnnIMEを使うことができると思いますので、インストールの手順をまとめておきます。

大まかな手順は以下のとおり:

  1. iWnnIMEに関するファイル一式を取ってくる。
  2. data.imgとsystem.imgの中に、必要なファイルをコピーする。
  3. iWnnIME.apkをインストールする。

特に、2.のsystem.imgの書き換えが面倒ですが、一部スクリプト化しておけば難しいことではありません。

では、手順を追っていきます:

  1. iWnnIMEに関するファイル一式を取ってくる。
    Japanese IME (iWnnIME) on Android - T9 / qwertyを参照してください。"Download the iWnnIME Japanese IME application from here" と書かれた箇所をクリックしてiWnnIME.zipをダウンロードします。圧縮を展開するとiWnnIMEというフォルダが出てきます。
  2. data.imgとsystem.imgの中に、必要なファイルをコピーする。
    • data.img(/dataディレクトリ)
      Android端末側でコピーします。
      1. microSDカードのルート(Android側では"/sdcard"にマウントされている)にiWnnIMEフォルダをそのままコピーして、Androidを起動します。
      2. /data/dataディレクトリにコピーすべきファイルをiWnnIMEに同梱のinstall.txtを参考にコピーします。
        下記のような内容のスクリプトを作って、microSDカードのルートに入れておき、実行すれば便利です。

        たとえば、copyiwnn.shというスクリプトファイルを作成したとすると、下記のように実行します。

        $ su
        # cd /sdcard
        # ./copyiwnn.sh

    • system.img
      PC側で作成します。
      PC側には、Linux環境が必要です。私は、手元にLinuxマシンがなかったのでVMwareを使いました。VMware Playerなら、無償で使えます。Linux環境はUbuntu 8.04 LTSのVMware用仮想マシンをそのまま使えば、インストールの手間は最小限で済みます。PanasonicのCF-Y8で試しましたが、VMwareは思っていたより軽いです。ちょっとしたプログラム開発なら十分使える感じです。
      1. ホームディレクトリの下に適当な作業ディレクトリを作り、そこに、iWnnIME.zipと、system.imgをコピーします。
        コピーする方法は、ご自分のお好きな方法で結構です。共有フォルダを使うか、USBメモリを使うのが便利だと思います。
        コピーしたら、iWnnIME.zipは展開しておきます。
      2. system.imgの中身を見るために、ディレクトリにマウントします。
        • マウント用ディレクトリを作成します。ついでに新しいsystemを入れるディレクトリも作成します。

          $mkdir system
          $mkdir newsystem

        • スーパーユーザーになります。

          $su あるいは、$sudo su(Ubuntuの場合)

        • system.imgをマウントします。

          #mount -o loop system.img ./system

      3. 新しいディレクトリにsystem.imgの中身をコピーします。
        このとき、パーミッションやリンク構造を変えないために、tarを使います。

      4. #cd newsystem
        #(cd ../system; tar cf - .)| tar xf -
        #cd ..

      5. iWnnIMEから、必要なファイルをコピーします。
        単にコピーするだけでなく、個々のファイルのオーナーとグループをrootに設定して、パーミッションを "-rw-r--r--" に統一したほうがよさそうです。ひとつずつ手でタイプするのは面倒だし、ミスも多そうなので、iWnnIMEに同梱のinstall.txtを参考に、install.shを作りました。

        install.sh


      6. 新しいsystem.imgを作成します。

        #mkfs.cramfs ./newsystem system.img.new

      7. これをmicroSDにコピーしてsystem.imgと置き換えます。

  3. iWnnIME.apkをインストールする。
    これについては、いろいろな方法があると思いますが、私は、iWnnIME同梱のiWnnIME.apkを無料のホームページ用レンタルサーバーにコピーして、Android側からダウンロードしました。レンタルサーバーはFC2や、Yahoo!ジオシティーズなど、いろいろありますので、お手軽だと思います。ちなみに、このとき、Android側で、Home画面からmenu(Windows)ボタンを押して、Settings -> Applications -> Unknown sourcesをチェックしておきます。こうしておかないと、Android Market以外からのインストールができません。

以上でiWnnIMEインストール完了です。

気軽にシステムをいじくれるのが非正規版Androidの魅力ですね。特にS11HTは少々ややこしいことになっても、SDカードを抜いてWindows mobile機に戻してやればいいので安心です。HT-03Aではこの手の冒険はできませんよね。 ;-P

[関連リンク]
Kaiser Builds [Android on HTC]
Japanese IME (iWnnIME) on Android - T9 / qwerty
VMware Player 、仮想マシン、仮想PC
VMware用仮想マシン | Ubuntu Japanese Team
FC2 total Web Solutions- 無料ホームページ アクセス解析 ブログ.....
Yahoo!ジオシティーズ - 容量50MBのホームページスペース。日記.....