Android与Python混编 使用Chaquopy在AndroidStudio添加Python环境

Android Sutdio配置python环境:
在工程目录下的build.gradle里添加如下:

buildscript {
    .......
    repositories {
        maven { url "https://chaquo.com/maven" } 
    }
    dependencies {
        classpath "com.chaquo.python:gradle:9.1.0"
    }
}

在app目录下的build.gradle添加(如果是Mac本不知道python位置,可以安装一个pycharm工具查看,Preference--Project:****--Python Interpreter中可以看到):

plugins {
    id 'com.chaquo.python'
}
android {
    ......
    defaultConfig {
        python {
            // python安装位置(windows可以直接找到exe文件位置)
            buildPython "/usr/local/bin/python3.7"
            // 安装python源码所需的三方库
            pip {
                install "numpy"
                install "scipy"
            }
        }
    }
    
    sourceSets {
        main{
            // Android代码模块
            setRoot "src/main"
            // Python代码模块,也就是你的Python源码所在项目中的文件夹
            python.srcDirs = ["src/main/java/com/naolu/eeg_safetyhelmet/python"]
        }
    }
}

在Android Studio中安装Python插件,调出Plugins,查找Python Community Edition并安装:
image.png

之后,就可以在Android工程中创建Python文件夹,然后创建Python文件,
image.png

然后就可以编写我们的Python代码,切记要确保python代码的可运行性,否则有意想不到的问题出现。找问题还麻烦!

hello.py

import numpy as np

def getArray():
    data = ["1","sd","sdff","ssssf","fffff","ffggg"]
    x = np.array(data)
    return x[4]

在主程中调用:

/** Android 调用 Python **/
        if(!Python.isStarted()){
            Python.start(AndroidPlatform(this))
        }

        val py = Python.getInstance()
        val call = py.getModule("hello").callAttr("getArray") //("getData")
        Log.d("ddddd",call.toString())

到这里也就差不多了,我从CLE for Android发现不支持numpy和scipy等三方库,感觉很坑,最后转到了Chaquopy这里,发现可以很好的支持,先到这里吧,今天很累!

补充点:Chaquopy是收费产品,只能运行5分钟会自动关闭你的APP,据官网说的意思是可以做成开源库实现免费使用,具体还没有尝试
其他大神的回复是,证书有两种:

1,商业证书。email给[email protected]这个邮箱,告诉他你的公司和有多少人参与到这个项目要用chaquopy。他会回复你相关表格去填写。
2,开源证书。把你的使用chaquopy的项目上传到git之类的开源社区。添加个开源许可证参照这个就行(https://blog.csdn.net/qq_35246620/article/details/77647234)。然后同样email给[email protected],告诉他你的开源项目git网址,和build.gradle中你的app的唯一包名。(在开源有效日期内,都是他提供的key都是有效的) 拿到key之后,在local.properties中添加 chaquopy.license= 就行了。

参考官方:https://chaquo.com/chaquopy/doc/current/android.html
参考其他:https://stackoverflow.com/questions/65169273/failed-to-apply-plugin-id-com-chaquo-python-while-gradle-build
参考其他:https://blog.csdn.net/wwb1990/article/details/104051068
参考其他:https://blog.csdn.net/wwb1990/article/details/104053465

你可能感兴趣的:(Android与Python混编 使用Chaquopy在AndroidStudio添加Python环境)