簡易SL4Aシミュレータ

初アプリ開発、HTMLの基盤も出来たし、そろそろ中身を作っていきます。中身はPythonで作っていきます。

AndroidではSL4A (Scripting Layer for Android) というスクリプト言語を実行させる環境アプリがあって、この上でPythonが動かせる。GUI機能はないのだけど、WebKitが使えるので、GUIをHTMLで構築し、JavaScriptを使って、Pythonとデータの受け渡しが出来るとのこと。しかもアプリとして出力できる。


情報源はこの記事。

Python で Androidアプリをセルフ開発 ( sl4a と、AIDE を 使って Pythonスクリプトをスマホ上で独立Androidアプリに変換)
http://keitaiseikatsu.blogspot.jp/2013/07/python-android-sl4a-aide-pythonandroid.html


前にやったことあるけど、もう一回試してみよ・・・・・あ、あれ!?全然動かない。。。


どうやらAndroid5.0以降、動かなくなっているよう。あいやー。

検索すると、パーミッションエラーとかなんかで、SDカードじゃなくて内部ストレージに移したらOK云々ありますが、僕がアプリを完成させるより、SL4Aのアップデートの方が早いと期待して、色々試すのは後にします。

Android5.0.2でSL4AのPythonは起動不可能?
http://blog.livedoor.jp/kikwai/archives/52137963.html

sl4a permission issue after android upgrade
http://stackoverflow.com/questions/27227386/sl4a-permission-issue-after-android-upgrade

執筆時のバージョン
sl4a_r6.apk
python3forandroid_r6.apk

というのも、一々ファイルを実機に移してコンパイルして動作確認しながら開発なんて煩わしいので、シミュレータ上で動作確認を行うから、とりあえず実機で動かなくても開発はできる。

ただし、SDKに含まれるAndroidのエミュレータは激重なので、ネットブックでも動く簡易的なシミュレータを作ることにしました。

ただ、実機で動かせないのは、モチベーション的に痛い。その上に、今回は自作シミュレータなので全然動作が違ったなんてリスクも。。。:(


SL4AのAPIがすべて動作する完全なシミュレータを作ろうと思ったら、それこそアプリどころじゃなくなるので、簡単なものを目指します。

上記の記事(Python で Androidアプリをセルフ開発)のサンプルで出てくる関数は4つ。

Python側 android.eventPost()
Python側 android.waitEvent()
Javascript側 android.eventPost()
Javascript側 android.registerCallback()

この4つが動作すれば、GUIとのデータのやり取りは出来るので、大抵のことは何とかなるんじゃないかな、との予想のもとに、これらの関数だけ擬似的に動作するシミュレータを作ることにしました。

どん!

GUIにはPySideを使っています。

色々強引です。別にAndorid上での操作を完全再現したいわけじゃないんだ。細かい修正は実機でやるとして、大まかに作り進めるためのもんだから。動きゃいいんだ、動きゃ。


理想は、上の記事のサンプル(index.htmlとscript.py)がそのままで動作することだったんですが、ちょっと諦めました。

初めはその発想で、HTMLの動作を常時確認するスレッドと、script.pyを常に回すスレッドのマルチスレッド式にしたのですが、スレッド内からWebKitのJavascriptを実行させようとすると、メモリの重複やらなんやらでPythonが落ちてしまうことがわかって、上手い解決を見出せませんでした。

特定のファイル(debug.txt)があるときと無い時の分岐を加えて無理やり動作させています。


細かい使い方なんかは、後日ウェブサイトの方に専用ページを作るつもりでいますが、いつになるか分からないので、使いたい人がいらっしゃいましたら、コメントしてください。

これで開発は進められますが...、やはり実機で試したいなぁorz


それにしても、JavaScriptの開発はデバックがホント大変。可能な限りPythonで書こうっと。
関連記事

コメント

コメントの投稿

非公開コメント

このブログについて
□ ブログ内容
決まった趣旨はありません。
興味を持ったこと・日常で行ったことを何でも書きます。

3DCG・プログラミングなどが多めです。

★下記のブログに移行しました★
https://tiblab.net/blog/
検索フォーム
ユーザータグ

Blender キャプチャ blendファイル BGE GameEngine Python ムービー Android  CG Red5 Terragen C# C++ 

カテゴリー
プロフィール

TiBra

Author:TiBra
趣味でCG制作、プログラミング等を行っています。メイカーズに憧れています。

ネットを通じた交流を広げたく思っていますので、コメント・メールはお気軽にどぞー

Mail:tibraあっとlive.jp
HP:TibLabmemocode
動画:VimeoFC2動画ニコニコ
ファイル:SkyDrive
企画:3Dゲーム作業実況

Blogリンク
不都合がございましたらご連絡ください。
当ブログのリンクバナー
FC2 ID
FC2カウンター
RSSフィード