Build for Android
Enviroment
Tensorflow在linux,mac,windows上都能运行,我当前的环境是Fedora 27.
以下为最新的编译环境(2018.2.14),如果编译过程中出现问题,可以从环境上入手。
- android SDK: api level 26
- andriod build-tools: 26.0.1
- android NDK: r14b
编译需要使用bazel
1 | dnf install bazel |
其他平台自行搜索安装方式即可。
Install
tensorflow支持多种安装方式,当然,最方便的是直接使用pip安装
1 | pip install tensorflow # Python 2.7; CPU support (no GPU support) |
如果使用的是NVIDIA的显卡,支持CUDA,则可以选择安装GPU支持的版本。
Fetch SourceCode
android的测试demo在tensorflow的源码中,可以先将源码clone下来
1 | git clone https://github.com/tensorflow/tensorflow.git |
Edit WORKSPACE
clone完成后,打开根目录下的WORKSPACE,修改android_ndk_repository与android_sdk_repository的配置,也就是android-sdk与android-ndk的路径了,我的配置如下
1 | android_ndk_repository( |
其中的含义也很明白了,不再赘述.
Build
android 的 demo在./tensorflow/examples/android下,但编译时不需要去到这个目录下,直接在根目录下执行编译即可,此时编译需要用到bazel,需要提前安装好。
1 | bazel build -c opt //tensorflow/examples/android:tensorflow_demo |
其中
//tensorflow/examples/android
是demo的路径
tensorflow_demo
是需要编译target的名称,其定义在tensorflow/examples/android/BUILD的文件里
1 | android_binary( |
执行后就开始编译了。
Install APK
编译完后的APK放在
bazel-bin/tensorflow/examples/android/tensorflow_demo.apk
下,执行安装即可。
Run it!
测试识别情况,输出了各种的可能性概率
[API]