Android Studio调用python运行thensorflow模型--CLE方案实现
Android Studio调用python运行thensorflow模型--CLE方案实现
我使用的是虚拟android设备,故对应的CLE中库文件版本为/x86,你可以根据自己开发环境找到对应的版本。调用的python版本为3.7,以下为主要步骤:
1、环境准备
在官网下载最新的CLE for Android 开发包,其中包含示例工程和API文档。
解压开发包,拷贝如下文件
拷贝 starcore_android_rX.X.jar到工程的libs目录。(该jar文件在download的starcore_for_android.3.2.0中)
拷贝libstar_java.so、libstarcore.so、libpython3.7m.so和libstar_python37.so到libs/x86目录。(除了libpython3.7m.so在android.python.3.7.0下载文件中,其余都在download的starcore_for_android.3.2.0/libs/x86中)
2、编写Python代码
/----test.py----/
def add(x,y) :
return x+y
/----calljava.py----/
import imp #test load path
def log(content):
JavaClass.d(“formPython”,content)
log(“Hello Android,form python”)
/----py_code.py----/
import time
def get_time():
return time.time()
将py_code.py压缩为py_code.zip文件。将编写的Python源码放入Android 工程的assets目录,其中还要包含一些Python需要的环境及标准库,见下图:(这些库文件都在android.python.3.7.0下载文件/x86目录下)
如果没有发现assets目录,则如下选择Android下添加:
3、编写Android相关代码,初始化CLE并调用Python
首先需要修改build.gradle文件:
添加jni库文件路径:
// jni配置
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
然后编写Android相关代码,初始化CLE并调用Python
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
impor