从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中运算符使用时的优先级
May 14 Python
python利用datetime模块计算时间差
Aug 04 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
详解Python如何生成词云的方法
Jun 01 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
python+pyqt5编写md5生成器
Mar 18 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
python实现打砖块游戏
Feb 25 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
python实现批量移动文件
Apr 05 Python
python百行代码实现汉服圈图片爬取
Nov 23 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
用cookies来跟踪识别用户
2006/10/09 PHP
php你的验证码安全码?
2007/01/02 PHP
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
Windows7下的php环境配置教程
2015/02/28 PHP
php模拟post提交请求调用接口示例解析
2020/08/07 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
Jquery响应回车键直接提交表单操作代码
2014/07/25 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
vue 通过下拉框组件学习vue中的父子通讯
2017/12/19 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
深入解析Python中的lambda表达式的用法
2015/08/28 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
pytorch 数据集图片显示方法
2018/07/26 Python
详解Python读取yaml文件多层菜单
2019/03/23 Python
基于python实现高速视频传输程序
2019/05/05 Python
如何定义TensorFlow输入节点
2020/01/23 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
一百多行代码实现react拖拽hooks
2021/03/23 Javascript
开业庆典答谢词
2014/01/18 职场文书
高中数学教学反思
2014/01/30 职场文书
大学军训感想
2014/02/12 职场文书
大四优秀党员个人民主评议
2014/09/19 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
旅游安全责任协议书
2016/03/22 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js