Python for Android の SimpleHTTPServer モジュールと SocketServer モジュールを利用すると、 Android 上で簡単な HTTP サーバを作成することができます。
はじめに、HTTP サーバからアクセスするための HTML ファイルを作成します。 [Scripts]画面でメニューから[Add]を実行し、[Folder]を実行して web という名前のフォルダを作成します。 web フォルダの中には次のような index.html ファイルを作成します。
<html> <head></head> <body> <h1>Scripting Layer for Android</h1> </body> </html>
次に示すのは、/mnt/sdcard/sl4a/scripts/web をドキュメントルートとする HTTP サーバの例です。
import os import SimpleHTTPServer import SocketServer os.chdir("/mnt/sdcard/sl4a/scripts/web") handler = SimpleHTTPServer.SimpleHTTPRequestHandler httpd = SocketServer.TCPServer(("", 8000), handler) httpd.serve_forever()
SimpleHTTPRequestHandler クラスはカレントディレクトリをドキュメントルートとするシンプルな HTTP リクエストハンドラクラスです。 今回の例では chdir() を呼び出してカレントディレクトリを /mnt/sdcard/sl4a/scripts/web に設定します。 サーバクラスである TCPServer クラスの第1引数はサーバのアドレスとポート番号のタプルで、第2引数はリクエストハンドラクラス名です。 serve_forever() を呼び出すとサーバが起動してリクエストの処理を開始します。
このスクリプトを実行した状態で Android の Web ブラウザを起動し、http://localhost:8000/ にアクセスすると、作成した index.html が表示されます。
Wi-Fi が有効な環境であれば他の端末からアクセスすることも可能です。