从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获取电脑硬件信息及状态的实现方法
Aug 29 Python
Python中asyncore的用法实例
Sep 29 Python
在Python中操作文件之truncate()方法的使用教程
May 25 Python
Python的时间模块datetime详解
Apr 17 Python
Python即时网络爬虫项目启动说明详解
Feb 23 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 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 strtotime 函数UNIX时间戳
2009/01/14 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
Prototype Selector对象学习
2009/07/23 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
vue中遇到的坑之变化检测问题(数组相关)
2017/10/13 Javascript
vue组件传递对象中实现单向绑定的示例
2018/02/28 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
小程序server请求微信服务器超时的解决方法
2019/05/21 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
vue实现整屏滚动切换
2020/06/29 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
python对日志进行处理的实例代码
2018/10/06 Python
Django框架使用内置方法实现登录功能详解
2019/06/12 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
Python搭建HTTP服务过程图解
2019/12/14 Python
Python 获取命令行参数内容及参数个数的实例
2019/12/20 Python
Python基于unittest实现测试用例执行
2020/11/25 Python
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
教师教学评估方案
2014/05/09 职场文书
公司年终奖分配方案
2014/06/16 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
高中教师个人总结
2015/02/10 职场文书
留学推荐信怎么写
2015/03/26 职场文书
四群教育工作总结
2015/08/10 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
粗暴解决CUDA out of memory的问题
2021/05/22 Python
Python OpenCV实现传统图片格式与base64转换
2021/06/13 Python