想在 Android 寫 Python? Perl?, ASE 可以滿足此需求, ASE 支援 Python, Lua, Perl, JRuby, BeanShell, Tcl 等程式語言.
ASE 安裝
- 設定 -> 應用程式 -> 未知的來源 打勾 # 先設定可以由外部安裝應用程式
- 掃此頁 android-scripting 的 QR Code, 安裝即可.
- 安裝完成可於 "所有程式" 找到並執行 ASE.
在 ASE 增加 Python 程式語言支援
- 原文可見: Installing Interpreters - A howto for installing additional interpreters.
在 ASE 增加 Python 程式語言支援 的 步驟如下述:
- 開啟 ASE, 按 Menu 的按紐
- 選取 View
- 選取 Interpreters
- 按 Menu 的按紐
- 選 Add
- 出現 BeanShell 2.0b4, JRuby-1.4, Lua 5.1.4, Python 2.6.2, Perl 5.10.1, Rhino 1.7R2, Tcl 8.6b2
- 選擇 Python 2.6.2 即可成功安裝, 並於 Android 上跑 Python.
於 Android 的 Python 範例
- 再來當然要寫個 Hello World, 不過, 開啟 ASE 後就已經有些範例程式, 裡面已經把 hello_world.py 都寫好了. 所以, 跳過 hello world 的撰寫~ XD
- 註: 若是手機有接 USB, 並選設定為磁碟機, 那就看不到那些範例程式.
於此頁有另外一個範例是可以在手機上寫寫看的: Android Facade API - Describes how scripts can interact with Android APIs.
ASE 程式範例
- 新增一隻 Python 的程式 (Menu -> Add -> Python 2.6.2)
- 取名叫 hello.py, 內容如下:
import androiddroid = android.Android()
name = droid.getInput("hello", "what is your name?")
print name
droid.makeToast("hello, %s" % name.result) - 註: 看起來很簡單, 但是用手機的鍵盤寫還蠻容易出錯的 (照抄都抄錯一堆. XD)
- 點擊一下是執行 cli, 看看有沒有錯誤.
- 實際執行是點久一點, 然後 選 Background 執行, 就會出現對話結果了.
- 若要快速撰寫, 可在電腦寫完後, 直接丟到 "/media/6431-6262/ase/scripts" 裡面, 再於手機上跑跑看囉~ 🙂
相關網頁
- ASE 安裝 及 程式範例 影片教學: SL4A(Scripting Layer for Android) Video Help
- 教學 與 範例: Tutorials - Tutorials and examples for using SL4A.
註: 此篇有很多有趣的範例, ex: crack thomson speedtouch wpa keys with your android phone (ssid2key.py) - API: ASE Api Reference
- Open Source Android Apps for Developers: android-scripting
請問你是用實體手機去跑的流程嗎? 還是用模擬器跑的?
用實體手機直接跑得. 🙂
getInput類似wxpython的dialog,若是要使用類似wxfram的框架自行在其上安排TextView或button等則要如何寫?敬請在賜一個範例!感激不盡
呃, 我沒有拿來寫這麼複雜的耶... 我都是寫 script 而已. XD
要寫到那麼複雜的, 我會直接寫 Android apps.
你可以看他線上的文件, 應該都會有範例可以參考. 🙂