从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转码问题的解决方法
Oct 07 Python
查看Python安装路径以及安装包路径小技巧
Apr 28 Python
Python定义一个跨越多行的字符串的多种方法小结
Jul 19 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
Mar 10 Python
linux 下selenium chrome使用详解
Apr 02 Python
Django设置Postgresql的操作
May 14 Python
Android Q之气泡弹窗的实现示例
Jun 23 Python
快速一键生成Python爬虫请求头
Mar 04 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
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
JS实现商品倒计时实现代码
2013/05/03 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
Javascript中String的常用方法实例分析
2015/06/13 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
php 修改密码实现代码
2017/05/24 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
vue2.x+webpack快速搭建前端项目框架详解
2017/11/30 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
JS+CSS实现3D切割轮播图
2020/03/21 Javascript
基于python编写的微博应用
2014/10/17 Python
Python中利用函数装饰器实现备忘功能
2015/03/30 Python
Python输出9*9乘法表的方法
2015/05/25 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
django 链接多个数据库 并使用原生sql实现
2020/03/28 Python
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
HTML利用九宫格原理进行网页布局
2020/03/13 HTML / CSS
外企测试工程师面试题
2015/02/01 面试题
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
乡镇网格化管理实施方案
2014/03/23 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
给公司的建议书范文
2014/05/13 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
发票退票证明
2015/06/24 职场文书
CocosCreator ScrollView优化系列之分帧加载
2021/04/14 Python
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript