Python学习笔记--BeeWare跨平台打包方案2


首先贴上官方的地址: BeeWare 教程
其中的安装和初始化过程在上一片有描述,这张介绍一些基础使用:

1. 多文件开发支持

通常一个工程下我们通常会分为多个 app进行开发,例如如下目录:
在这里插入图片描述
如果我们按照一般的引入方法:
会出现找不到模块错误,这里看下官方的解释issues
也就是以下几步骤:

  1. 在目录下创建__init__.py
  2. 导入方式:from logfileprocess.tools.webrtc_log import extract_objc_lines_from_logs,然后就可以按照正常的方式使用了

2. java和Python交互

java调用python

BeeWare使用的是chaquopy和Java进行交互(我还是认为Jep - Java Embedded Python的交互方式比较好,当然BeeWare选择这个,那就用这个也是可以),其文档地址,;初始化完BeeWare后就会自动在Python环境和Java环境配置好chaquopy相关的配置,这里我们直接看一个简单的调用:

  1. 在app.py中新增如下代码:
def hello_python(str):
    print(u"Hello, Python({})!!!!!!".format(str))

2.在Java的MainActivity中新增

  py.getModule("logfileprocess.app").callAttr(
        "hello_python","sdcard/0/logfileprocess"
    );

关于chaquopy的Python对象创建,这里在后面分析源码的时候说,具体的可以看原文实现;
然后在命令行执行:

briefcase build android -r

在实际测试的时候如果不加-r,Python修改的代码不会同步;
接着执行

briefcase run android 

在控制台就是输出:
在这里插入图片描述
这里看到我们从Java传递的参数在Python中输出了

python调用java

这里直接使用MainActivity类做示范:
现在类中增加方法:

 public static void onPthonCallback(String msg){
   
   
        Log.d("MainActivity 这是来及Java--》",msg);
    }

python中调用:
首先引入# 调用 Java 的 Android API 示例

from java import jclass

调用Java方法:

# 获取 Java 类
MyJavaClass = jclass('org.beeware.android.MainActivity')

# 创建类的实例
my_java_object = MyJavaClass()

# 调用 Java 方法
my_java_object.onPthonCallback("John")

输出结果:
在这里插入图片描述

其他类

这里使用自定义的Java类,然后在Python中调用,Java类的定义如下:

p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简简单单lym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值