从Python程序中访问Java类的简单示例


Posted in Python onApril 20, 2015
from jnius import autoclass
>>> Stack = autoclass('java.util.Stack')
>>> stack = Stack()
>>> stack.push('hello')
>>> stack.push('world')
>>> stack.pop()
'world'
>>> stack.pop()
'hello'

上面的代码中,我们使用 autoclass 函数,创建了一个类型代理,对应着Java中java.util.Stack类的所有方法和字段属性。

OK,也许你想要一个Android相关的例子,看这里:

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()

好了,你可以从文档中获取更多的例子。

我们已经可以映射Java/Python的类型,原生数组,支持方法重载等等。我们在内部使用的是 Cython + JNI,因此消耗性能是最小的。

同时, Python for android库已经完成,你可以从github中获取。

Python 相关文章推荐
python中使用OpenCV进行人脸检测的例子
Apr 18 Python
python处理大数字的方法
May 27 Python
python获取mp3文件信息的方法
Jun 15 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
python lxml中etree的简单应用
May 10 Python
Django模板Templates使用方法详解
Jul 19 Python
wxPython实现分隔窗口
Nov 19 Python
Python 内置变量和函数的查看及说明介绍
Dec 25 Python
python实现超级玛丽游戏
Mar 18 Python
python中使用asyncio实现异步IO实例分析
Feb 26 Python
linux中nohup和后台运行进程查看及终止
Jun 24 Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 #Python
python使用7z解压apk包的方法
Apr 18 #Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 #Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 #Python
python对指定目录下文件进行批量重命名的方法
Apr 18 #Python
python开启多个子进程并行运行的方法
Apr 18 #Python
C#返回当前系统所有可用驱动器符号的方法
Apr 18 #Python
You might like
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
jQuery语法高亮插件支持各种程序源代码语法着色加亮
2013/04/27 Javascript
js取整数、取余数的方法
2014/05/11 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
Javascript实现的简单右键菜单类
2015/09/23 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
详解微信小程序canvas圆角矩形的绘制的方法
2018/08/22 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
python字符串替换的2种方法
2014/11/30 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
Python用户推荐系统曼哈顿算法实现完整代码
2017/12/01 Python
使用python编写监听端
2018/04/12 Python
python 数字类型和字符串类型的相互转换实例
2018/07/17 Python
Python字符串的一些操作方法总结
2019/06/10 Python
python 命令行传入参数实现解析
2019/08/30 Python
python中bytes和str类型的区别
2019/10/21 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
2019/10/24 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
公司培训欢迎词
2014/01/10 职场文书
大学生作弊检讨书
2014/02/19 职场文书
省级青年文明号申报材料
2014/05/23 职场文书
介绍信的写法
2015/01/31 职场文书
DE1103使用报告
2022/04/05 无线电
3050和2060哪个好 性能差多少 差距有多大 谁更有性价比
2022/06/17 数码科技