tensorflow lite的demo在android studio上环境搭建
由于很久没有接触过Android开发,而且最早用的是eclipse,所以这个demo在android studio上的搭建过程,真的是踩了不少坑。记录这篇文章,纯粹是给自己一点收获。
环境搭建的过程,还是需要一点Android Studio的使用基础的,包括gradle同步、ndk、sdk之类的,另外由于需要在线下载资源,所以准备一个网络畅通的VPN。
一、基础环境
Windows 10系统、Android studio 3.1.2、tensorflow1.10.0、gradle版本为4.4
sdk和ndk的版本如下:

Android SDK Build-Tools


二、需要修改的文件:
(1)Demo项目下的build.gradle文件

进行如下修改:

(2)Demo/app文件下的build.gradle文件
android{ ... }中需要修改的部分:

repositories{ ... }和dependencies{}需要修改的部分,如下图,主要是用于 a) 解决tensorflow-lite:0.0.0-nightly无法下载的情况 b) 依赖项与sdk版本保持一致的问题 c) gradle3.0.0版本以上的依赖默认为implementation,而不是之前的gradle2+版本的compile。
(1)手动下载tensorflow-lite:0.0.0-nightly.aar。
(2)拷贝tensorflow-lite:0.0.0-nightly.aar文件到app/libs目录下(如果不存在libs目录,则自己手动添加一个);
(3)在app下的bulid.gradle中repositories添加:
flatDir{dirs " libs"}代码,
dependencies中添加:
compile fileTree(dir: 'libs', include: ['*.jar']):
compile(name:' tensorflow-lite:0.0.0-nightly', ext:'aar')
dependencies中注释掉:compile compile 'org.tensorflow:tensorflow-lite:0.0.0-nightly'

三、同步gradle文件:
点击同步gradle的按钮
,如果没有报错,则android studio “Run” app是可以执行的,否则该按钮是灰色的,不能执行。
四、源码分析
整个demo包含6个java文件:

其中:
-AutoFitTextureView:一个自定义的View;
-CameraActivity: 整个app的入口activity,这个activity只做了一件事,就是加载了一个fragment;
- Camera2BasicFragment: 入口activity中加载的fragment,其中实现了所有跟UI相关的代码;首先在onActivityCreated中,初始化了一个ImageClassifier对象,此类是整个demo的核心,用于加载模型并实现推理运算功能。然后开启了一个后台线程,在线程中反复地对从摄像头获取的图像进行分类操作。
-ImageClassifier:是一个抽象类,demo最重要的部分,但只有两个函数比较重要,一个是构造函数
-ImageClassifierFloatInception为浮点型子类,基类为ImageClassifier,对应的浮点模型为assets资源下的7_float.tflite
-ImageClaaifierQuantizedMobileNet为量化型子类,基类为ImageClassifier,对应的数字量化模型为assets资源下的7.tflite
![]() |
tensorflow lite的demo在android studio上环境搭建的更多相关文章
- Android studio 开发环境搭建
Android studio 开发环境搭建 一.环境: 下载java jdk:http://www.oracle.com/technetwork/cn/java/javase/downloads/jd ...
- windows平台下Android studio开发环境搭建教程
最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境 .而随着Android stud ...
- 【Android Studio安装部署系列】二、Android Studio开发环境搭建
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio开发环境安装步骤 下载Android Studio 下载地址: http://www.wanandroi ...
- 【Android学习笔记】Mac下Android Studio开发环境搭建
本文由@ray 出品,转载请注明出处. 文章链接:http://www.cnblogs.com/wolfray/p/7829069.html 对于移动端这块,笔者之前一直都是进行iOS开发的,也从来 ...
- Android开发学习之路--MAC下Android Studio开发环境搭建
自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门 ...
- Android Studio开发环境搭建和HelloWorld
跟着教程做的,已经有了JDK,直接进行后面的步骤,下载安装Android SDK 没有FQ,教程里的网址打不开,就换了个.网址 http://tools.android-studio.org/inde ...
- Android Studio 之 环境搭建
从网上整理的安装步骤及初次使用问题解决. 一.安装步骤 1.安装前确认JDK已经安装并配置好环境变量(要求JDK1.7以上的版本). 2.官网下载Windows安装包,网上下载的版本是android- ...
- ubuntu 16.04 android studio 开发环境搭建
安装步骤: 1. 安装 Java developer kit 2.安装 Android developer kit 3.安装 Android studio 4.真机调试 第一次用Linux,命令基本不 ...
- Android Studio Jni 环境搭建
第一步:NDK环境搭建,点击下图红色框区域查看NDK下载和环境配置 安照正常情况是很慢的或者无法下载成功的,这个时候可以去下载NDK压缩包进行解压.下面给出两个下载地址 (1)官网:http://we ...
随机推荐
- 在Javascript中数组对象(json)里元素相同的操作
1.数组对象元素相同,分组显示 let arry = [ { expensedate: '2018/09/29', amount: 1, type: '交通费' }, { expensedate: ...
- Linux服务器 XAMPP后添加PHP和MYSQL环境变量
编辑/etc/profile文件 在文件末尾添加两行代码 vi /etc/profile CentOS: PATH=$PATH:/opt/lampp/bin export PATH Ubuntu: e ...
- Java线程池ThreadPoolExecutor原理和用法
1.ThreadPoolExecutor构造方法 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAli ...
- Getting Started with Word2Vec
Getting Started with Word2Vec 1. Source by Google Project with Code: https://code.google.com/archive ...
- 二分优化lis和STL函数
LIS:最长上升子序列: 这个题我们很显然会想到使用dp, 状态设计:dp[i]代表以a[i]结尾的LIS的长度 状态转移:dp[i]=max(dp[i], dp[j]+1) (0<=j< ...
- 解决 httpclient 下 Address already in use: connect 的错误
最近做httpclient做转发服务,发现服务器上总是有很多close_wait状态的连接,而且这些连接都不会关闭,最后导致服务器没法建立新的网络连接,从而停止响应. 后来在网上搜索了一下,发现解决的 ...
- 设计的一些kubernetes面试题目
这几个月参与了几场面试,设计了多道面试题,觉得可以综合考察应聘人对kubernetes的掌握情况.在这里分享下,供应聘人自查以及其他面试官参考. 这些面试题的设计初衷并不是考察kubernetes的使 ...
- Session &cookie introduction,usage
Cookie 1)什么是Cookie? 服务器为了识别用户身份而临时存放在浏览器端的少量数据. 2)工作原理 浏览器访问服务器时,服务器将一些数据以set-cooki ...
- 重新使用linux的一些事情
workstatin版基本上已经有了常用的那些功能了, 代码开发完全足够了, 不需要再去加什么东东了 httpd已经有了, 结构: /usr/lib: 库,放置的是 (操作)系统的静态库, 大多数是直 ...
- UVA1479 Graph and Queries
思路 恶心人的题目 还是类似永无乡一题的Treap启发式合并思路 但是由于加边变成了删边 所以应该离线后倒序处理 数组要开够 代码 #include <cstdio> #include & ...
