从Python程序中访问Java类的简单示例
作者:goldensun 时间:2022-02-19 08:53:13
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
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
springboot使用mybatis开启事务回滚
2022-09-10 05:15:55
![](https://img.aspxhome.com/file/2023/9/87369_0s.png)
idea打包java可执行jar包的实现步骤
2022-07-30 02:57:48
![](https://img.aspxhome.com/file/2023/3/86843_0s.png)
Java monitor机制使用方法解析
2023-11-09 11:25:56
![](https://img.aspxhome.com/file/2023/3/58563_0s.png)
java程序员必须要学会的linux命令总结(推荐)
2021-12-11 00:47:47
关于Springboot的日志配置
2022-12-16 10:32:33
SpringCloud OpenFeign 服务调用传递 token的场景分析
2022-12-26 22:24:07
![](https://img.aspxhome.com/file/2023/8/65798_0s.jpg)
java查找图中两点之间所有路径
2022-10-04 03:08:11
java8使用filter()取出自己所需数据
2023-04-07 02:30:37
![](https://img.aspxhome.com/file/2023/9/71619_0s.png)
c#文件的复制,移动,创建(实例代码)
2023-05-29 21:49:14
Java基于ShardingSphere实现分库分表的实例详解
2022-04-20 18:43:37
![](https://img.aspxhome.com/file/2023/0/76270_0s.jpg)
Mybatis的几种传参方式详解
2021-12-08 15:35:53
JDK集合源码之解析TreeMap(一)
2021-08-09 07:14:02
![](https://img.aspxhome.com/file/2023/3/66643_0s.png)
Spring Security OAuth2实现使用JWT的示例代码
2022-11-02 22:46:25
Kotlin基础教程之面向对象
2023-06-21 19:54:36
![](https://img.aspxhome.com/file/2023/3/78973_0s.png)
c#多线程编程基础
2021-11-24 23:37:12
Flutter开发Widgets 之 PageView使用示例
2023-06-24 13:23:34
![](https://img.aspxhome.com/file/2023/1/120091_0s.jpg)
java实现发送邮箱验证码
2022-07-05 07:40:07
![](https://img.aspxhome.com/file/2023/6/83436_0s.jpg)
java中Integer包装类装箱的一个细节详解
2023-09-24 18:35:32
浅析Spring工厂的反射和配置文件
2023-06-22 20:52:23
![](https://img.aspxhome.com/file/2023/4/77964_0s.jpg)
Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法
2023-11-19 00:24:05