從Python程序中訪問Java類的簡單示例
from jnius import autoclass
>>> Stack = autoclass('java.util.Stack')
>>> stack = Stack()
>>> stack.push('hello')
>>> stack.push('world')
>>> stack.pop()
'world'
>>> stack.pop()
'hello'
上面的代碼中,我們使用 autoclass 函數(shù),創(chuàng)建了一個類型代理,對應(yīng)著Java中java.util.Stack類的所有方法和字段屬性。
OK,也許你想要一個Android相關(guān)的例子,看這里:
from jnius import autoclass
from time import sleep
MediaRecorder = autoclass('android.media.MediaRecorder')
AudioSource = autoclass('android.media.MediaRecorder$AudioSource')
OutputFormat = autoclass('android.media.MediaRecorder$OutputFormat')
AudioEncoder = autoclass('android.media.MediaRecorder$AudioEncoder')
# Record the Microphone with a 3GP recorder
mRecorder = MediaRecorder()
mRecorder.setAudioSource(AudioSource.MIC)
mRecorder.setOutputFormat(OutputFormat.THREE_GPP)
mRecorder.setOutputFile('/sdcard/testrecorder.3gp')
mRecorder.setAudioEncoder(AudioEncoder.ARM_NB)
mRecorder.prepare()
# Record 5 seconds
mRecorder.start()
sleep(5)
mRecorder.stop()
mRecorder.release()
好了,你可以從文檔中獲取更多的例子。
我們已經(jīng)可以映射Java/Python的類型,原生數(shù)組,支持方法重載等等。我們在內(nèi)部使用的是 Cython + JNI,因此消耗性能是最小的。
同時, Python for android庫已經(jīng)完成,你可以從github中獲取。
相關(guān)文章
如何通過Python實(shí)現(xiàn)標(biāo)簽云算法
這篇文章主要介紹了如何通過Python實(shí)現(xiàn)標(biāo)簽云算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python繪制計(jì)算機(jī)CPU占有率變化的折線圖
這篇文章主要為大家詳細(xì)介紹了Python繪制計(jì)算機(jī)CPU占有率變化的折線圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Python中l(wèi)ist循環(huán)遍歷刪除數(shù)據(jù)的正確方法
這篇文章主要給大家介紹了關(guān)于Python中l(wèi)ist循環(huán)遍歷刪除數(shù)據(jù)的正確方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
python執(zhí)行系統(tǒng)命令4種方法與比較
這篇文章主要介紹了python執(zhí)行系統(tǒng)命令4種方法與比較,需要的朋友可以參考下2021-04-04
Django框架配置mysql數(shù)據(jù)庫實(shí)現(xiàn)過程
這篇文章主要介紹了Django框架配置mysql數(shù)據(jù)庫實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04

