Tensorflow提供了一个Android Demo, 昨天尝试了在内网环境下编译下和运行这个Demo。在Window7下面我只编译Java部分的代码, jni部分的代码我直接用了官方jinkens编译出的so文件,libtensorflow_demo.so
首先用Android Studio打开目录 tensorflow/tree/master/tensorflow/examples/android
。
配置好代理,然后做下面的操作:
build.gradle
, 把nativeBuildSystem的值改为none, 这样就不会本地编译tensorflow库,而是直接用TensorFlow AAR from JCenter.def nativeBuildSystem = 'none'
修改build.gradle
和download-models.gradle
文件中所有的jcenter()
为 jcenter { url "http://jcenter.bintray.com" }
。这一步在内网环境下必须要做, 目的是从jcenter的http地址下载相关aar包。
下载模型文件并放到gradleBuild/downloads
下面, 直接用gradle task downloadFile下载模型文件会超时,因为地址是https的。
打开download-models.gradle
文件,
// hard coded model files
// LINT.IfChange
def models = ['inception5h.zip',
'object_detection/ssd_mobilenet_v1_android_export.zip',
'stylize_v1.zip',
'speech_commands_conv_actions.zip']
// LINT.ThenChange(//tensorflow/examples/android/BUILD)
// Root URL for model archives
def MODEL_URL = 'https://storage.googleapis.com/download.tensorflow.org/models'
直接用chrome浏览器下载上面的4个文件, url地址就是MODEL_URL和文件名的拼接, 下载完后放到gradleBuild/downloads
下面, 后面再运行就不会下载了。
把libtensorflow_demo.so 文件复制过来。这样就不需要自己编译jni库了
然后就可以Android Studio编译和运行Demo了。