Android调用python库和方法的实现

Android调用python有几种方法,这里以最推荐的方法为例:Android使用Chaquopy框架集成python。

一、电脑配置Python环境

首先电脑需要配置Python环境,如果已配置,请忽略此步操作。

1.进入Python官网:https://www.python.org

2.下载稳定版本

【Stable Releases】:稳定发布版本

【Pre-releases】:预发布版本

【Windows embeddable package】:Windows可嵌入程序包,通俗一点就是一个压缩包。

3.安装Python

3.1 找到下载的python-3.13.5-amd64.exe,双击安装

3.2 点击【Customize installation】进行自定义安装

3.3 所有功能全部默认勾选,单击【Next】下一步

【Documentation】:安装Python文档文件。

【pip】:安装pip,这个是一个安装和管理Python包的工具,就是以后你可以通过Win+R输入cmd回车,然后输入pip install+包名下载相应的python模块。

【tcl/tk and IDLE】:安装tkinter和IDLE开发环境。

【Python test suite】:安装标准库测试套件。

【py launcher】: Python启动器。【for all user】所用用户(需要管理员权限)两个一起勾选后会安装全局Python启动器,使启动Python变得更容易。

3.4 修改安装路径

【Associate files with Python】:将文件与Python关联。

【Create shortcuts for installed applications】:为已安装的应用程序创建快捷方式。

【Add Python to environment variables】:将Python添加到环境变量里。

3.5 安装完成

3.6 检查Python是否安装成功

Win+R打开运行窗口输入"cmd",点击【确定】或者回车键,打开dos窗口,输入python -V点击回车键查看Python版本号。

复制代码
python -V

能输出Python具体的版本号,说明Python环境安装成功

二、Android项目中配置Chaquopy框架

1.在项目libs.version.toml添加chaquo库

ini 复制代码
pgp = "16.0.0"

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
android-python = { id = "com.chaquo.python" , version.ref = "pgp" }

2.在项目build.gradle.kts添加chaquo插件

ruby 复制代码
plugins {
    // 声明插件但不应用
    alias(libs.plugins.android.application) apply false
    alias(libs.plugins.android.python) apply false
}

3.在app的build.gradle.kts中引入chaquo插件

scss 复制代码
plugins {
    alias(libs.plugins.android.application)
    alias(libs.plugins.android.python)
}

build.gradle.kts中添加chaquopy闭包和ndk闭包

less 复制代码
        chaquopy {
            defaultConfig {
                buildPython("E:/python/Python313/python.exe")  // 或您的Python路径

                pip {
                    install("numpy")
                    install("pandas")
                    // 其他需要的包
                }
            }
        }

        ndk {
            abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64"))
        }

添加完成,点击sync now构建项目

4.添加Python文件

在项目app/src/main中新建python文件夹,将提前准备好的hello.py放入python文件夹中,hello.py的内容如下:

python 复制代码
# hello.py
def greet(name):
    return f"Hello, {name}! Welcome to Chaquopy."

def add_numbers(a, b):
    return a + b

5.Android 代码中调用Python代码

ini 复制代码
                if (!Python.isStarted()) {
                    Python.start(new AndroidPlatform(mContext));
                }

                PyObject pyObjectString = Python.getInstance().getModule("hello").callAttr("greet", "Android");
               
                PyObject pyObjectInt = Python.getInstance().getModule("hello").callAttr("add_numbers", 1, 2);
                LogUtils.i("调用python结果:"+pyObjectString.toString()+"  "+pyObjectInt.toInt());

如果打印结果如下,说明调用成功

css 复制代码
调用python结果:Hello, Android! Welcome to Chaquopy.  3
相关推荐
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
千里马学框架3 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
美狐美颜SDK开放平台3 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
AFinalStone3 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
致远ccc3 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas