前言
前段时间成功将 TensorFlow 的 Android demo(TensorFlow android demo 教程)(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android)复现了,将 tensorflow 的深度学习模型移植到了Android 手机。最近想进行二次开发,移植我自己训练的模型到手机上。
之前在复现 demo 的过程中,没有使用过专门的安卓开发IDE,一般是用 Eclipse 看源代码,然后直接在 Terminal 中使用 Bazel 进行编译。但是如果想开发自己的项目,这样真心不方便(除非你是大牛级的人物)。所以没有一款安卓开发专用的 IDE 怎么行呢?
起初是想通过向Eeclipse 安装 android 开发插件,进行二次开发,可是捣鼓了很久,都没有成功。最后只能转向 Android Studio。
但是我之前从来没有用过 Android Studio,更没有任何安卓的开发经历。只能一点一点摸索着来,试了很久,今天终于成功使用 Android Studio 编译 TensorFlow 的android demo了。
现在我把搭建环境和编译的过程整理出来,希望对像我一样没有任何安卓开发或 Android Studio 使用经历的人,能够有所帮助。
准备工作
1、下载 tensorflow 项目的源码
2、安装 SDK、NDK 和 Bazel(其中 SDK 可选,可以在安装Android Studio时再进行安装)
这两步都可以参考我的另一篇文章,里面都有详细的安装步骤介绍
将 TensorFlow 移植到 Android手机,实现物体识别、行人检测和图像风格迁移详细教程(http://www.linuxdiyf.com/linux/27916.html)
一、安装 Andriod Studio
1、首先下载Andriod Studio(以下简称 AS)安装包:
Andriod Studio 官网下载地址:https://developer.android.com/studio/index.html
2、然后参考官网的安装教程进行安装 :
Andriod Studion官方安装教程:https://developer.android.com/studio/install.html
a)、将下载的zip文件解压到想要安装AS的位置
b)、打开终端,切换路径 $ cd XXX/android-studio/bin
(XXX是指你的AS安装位置)
c)、运行 $ ./studio.sh 则会看到 android studio 启动。
(如果启动失败,检查一下 studio.sh 是否拥有可执行权限)
d)、程序启动后,会提示用户指定SDK的安装路径。(若不指定,则会自动下载安装sdk)
二、修改配置文件
打开 ~/tensorflow/examples/android/下的 build.gradle文件
1、将第一行代码 def bazel_location = 'usr/local/bin/bazel' 替换为自己的bazel安装路径
2、将下方的 compileSdkVersion和 buildToolsVersion 更改为自己电脑上安装的版本
三、添加 tensorflow android 项目到 AS
点击 open an existing android studion project ,选择 ~/tensorflow/examples/android,之后AS会开始配置和导入项目。
导入成功后,AS可能会提示更新 Gradle 插件,如下图所示:
我在点击update,更新完gradle之后,出现了项目导入失败的错误提示。搜索了一下,发现网上有很多人反应在更新完gralde之后,出现了同样的导入报错。
后来我又重新下载了Android demo的源码,从AS中再次导入项目时不选择update,就导入成功了。
因此如果你在选择更新gradle之后也遇到导入失败的话,可以尝试重新导入项目并选择不更新gradle试试看。
四、编译运行demo
1、开启手机的debug模式,使用USB数据线将手机连接PC
2、点击AS下方的 monitor,查看手机是否连接成功
3、点击AS 的 run ,开始编译和安装
4、可以点击 Gradle Console 实时监测编译情况
5、编译成功后,提示下图所示的Build Successful ,之后AS开始安装APK文件到手机
PS: 如果编译失败的话,不妨多试几次。