Ubuntu TensorFlow 源码 Android Demo的编译运行

一、 安装 Android 的SDK和NDK

SDK 配置

A:下载

国内下载地址选最新的:

SDK:

https://developer.android.google.cn/studio/index.html

也可以下载一个旧的再update

NDK:

https://developer.android.google.cn/ndk/downloads/index.html

B:解压 配置环境变量

sudo tar -zxvf android-sdk_r26.0.1-linux.tgz

sudo unzip android-ndk-r14b-linux-x86_64.zip

SDK更新(如果是最新的无需更新)

cd ~/sdk/android-sdk-linux

sudo tools/android update sdk --no-ui

C:配置环境变量

打开.bashrc 最后添加一行(主要更改目录)

PATH="/home/dyufei/sdk/android-sdk-linux/tools:/home/dyufei/sdk/android-sdk-linux/platform-tools:/home/dyufei/sdk/android-sdk-linux/build-tools:${PATH}"

D: 使环境变量生效

source .bashrc

二、 TensorFlow 源码下载、配置

源码的下载、编译、安装请参考: http://www.cnblogs.com/dyufei/p/8027517.html

1)下载tensorflow 源码

git clone https://github.com/tensorflow/tensorflow

2)配置TensorFlow 的WORKSPACE

在 TensorFlow 的根目录下,找到WORKSPACE,将注释了的SDK和NDK的部分打开,修改成自己的SDK和JDK的目录和对应的版本

#Uncomment and update the paths in these entries to build the Android demo.
android_sdk_repository(
name = "androidsdk",
api_level = 25,
# Ensure that you have the build_tools_version below installed in the
# SDK manager as it updates periodically.
build_tools_version = "27.0.2",
# Replace with path to Android SDK on your system
path = "/home/dyufei/sdk/android-sdk-linux/",
) android_ndk_repository(
name="androidndk",
path="/home/dyufei/sdk/android-ndk-r14b/",
# This needs to be 14 or higher to compile TensorFlow.
# Please specify API level to >= 21 to build for 64-bit
# archtectures or the Android NDK will automatically select biggest
# API level that it supports without notice.
# Note that the NDK version is not the API level.
api_level=14)

3)编译Android Demo APK

在 TensorFlow 的根目录下,执行下面命令编译:

bazel build //tensorflow/examples/android:tensorflow_demo

编译完成后生成三个文件:

(在bazel-bin/tensorflow/examples/android/目录下)

Target //tensorflow/examples/android:tensorflow_demo up-to-date:

bazel-bin/tensorflow/examples/android/tensorflow_demo_deploy.jar

bazel-bin/tensorflow/examples/android/tensorflow_demo_unsigned.apk

bazel-bin/tensorflow/examples/android/tensorflow_demo.apk

INFO: Elapsed time: 201.760s, Critical Path: 69.16s

INFO: Build completed successfully, 784 total actions

4)在手机上运行

好了,大功告成!

将tensorflow_demo.apk 安装到手机上,看看效果吧

Ubuntu TensorFlow 源码 Android Demo的编译运行的更多相关文章

  1. ubuntu下载源码clang + llvm+lldb 编译+安装

    [本文可能涉及到Ubuntu安装以下工具:] A.g++ B.gcc C.make D.cmake E.clang(10.0.1)(必须) F.llvm(10.0.1)(必须) G.lldb(10.0 ...

  2. tensorflow源码分析

    前言: 一般来说,如果安装tensorflow主要目的是为了调试些小程序的话,只要下载相应的包,然后,直接使用pip install tensorflow即可. 但有时我们需要将Tensorflow的 ...

  3. 【转】Android 4.3源码的下载和编译环境的安装及编译

    原文网址:http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html  告诉windows用户一个不好的消息,windows环境下没法 ...

  4. 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)

    原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ...

  5. 编译TensorFlow源码

      编译TensorFlow源码 参考: https://www.tensorflow.org/install/install_sources https://github.com/tensorflo ...

  6. 从 Android 源码到 apk 的编译打包流程

    文中涉及到的工具所在目录:Android/sdk/build-tools.下面开始分解并逐步实现对源码的打包. 编译流程 1. 生成仅包含资源文件的 apk 包和 R.java 文件 根据资源文件和 ...

  7. APK 的前世今生:从 Android 源码到 apk 的编译打包流程

    最近想要研究热修复的原理,并自己实现一套简单的热修复框架(音视频的坑刚挖好就又挖另一个坑了2333),已经在看书入门 c++,方便后续查看业内一些知名热修复框架的源码,另外在涉及编译期/运行时修改代码 ...

  8. Atitit.反编译apk android源码以及防止反编译apk

    Atitit.反编译apk android源码以及防止反编译apk 1.1. Tool  apk逆向助手1 1.2. 二.使用dex2jar + jd-gui 得到apk的java源码1 1.3. 用 ...

  9. Android源码的下载、编译与导入到Android Studio【转】

    本文转载自:http://wl9739.github.io/2016/05/09/Android%E6%BA%90%E7%A0%81%E7%9A%84%E4%B8%8B%E8%BD%BD%E3%80% ...

随机推荐

  1. java时间格式

    Calendar startdate = Calendar.getInstance(); startdate.setTime(new Date()); //当前时间 startdate.add(Cal ...

  2. C语言(记录)——内存相关_2:内存的编址与管理

    本文是基于嵌入式的C语言 --------------------------------------------------------------------------------------- ...

  3. MFC属性表单修改“应用”键名并对其响应

    1.重载CPropertySheet的虚函数OnInitDialog(),添加如下代码 BOOL DialogInputData::OnInitDialog() { BOOL bResult = CP ...

  4. java多线程开发容易犯的错误

    昨天在社区上看到有人讨论多线程使用,多线程遇到一些问题以及一些使用技巧记录一下.为什么要使用多线程, 不能是为了用而用,和设计模式一样用的合理,会让程序更易于理解,用的不合理反而会让程序变得更难理解. ...

  5. progress 相关事件 异步 ajax

    loadstart — Fires when the fi rst byte of the response has been received.progress — Fires repeatedly ...

  6. font-face 在 Firefox无法正常工作问题

    @font-face存在的问题: 1.不同浏览器支持不同格式 2.Firefox默认情况下不允许跨域font-face,除非你可以添加“Access-Control-Allow-Origin” hea ...

  7. HTTPS协议,TLS协议

    一.HTTPS 协议 HTTPS协议其实就是HTTP over TSL,TSL(Transport Layer Security) 传输层安全协议是https协议的核心. TSL可以理解为SSL (S ...

  8. C# 程序集安装与卸载

    下面我们来实现程序集的安装,代码如下: /// <summary>/// 程序集安装与卸载/// </summary>/// <param name="asse ...

  9. NULL字段对于UNIQUE INDEX失效

  10. 手动安装Eclipse的PyDev插件,重启无效

    想好好学习Python,又不想只用Emeditor开发,于是想到了Eclipse.之前配置过PyDev,很久没用,就放下了.这次重新配置,遇到了不少问题总结如下: 第一,使用网址自动更新.从网上搜了很 ...