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 ...
随机推荐
- 媒体查询@media 屏幕适配
@media(max-width: 1199px){.banner{height: 400px;}}1.6倍@media(min-width: 1200px) and (max-width: 1365 ...
- 对于react中rredux的理解
1.什么是redux? redux是一个应用数据流框架,主要作用是对于应用状态的管理 2.reducer特点 : (1)默认的state (2)state是只可读不可修改 (3)必须返回一个纯函数 3 ...
- ipv4网络无访问权限
昨天折腾了一天这个网络受限问题,都没有得到解决,驱动精灵.电脑管家(我不用360).重置Winsock目录.网络重置.组策略控制台.重启路由器(学校的以太网,工作时间不好重置路由器)都用了个遍,一直都 ...
- javascript函数的上下文
规律1:函数用圆括号调用,函数的上下文是windows对象 所有的全局变量都是windows对象的属性,而函数里面的局部变量,不是windows的属性,不是任何东西的属性,它就是一个变量! 规律2:函 ...
- #!/usr/bin/python3 和 #!/usr/bin/env python3的区别
脚本语言的第一行指出用什么程序去执行代码. #!/usr/bin/python3调用/usr/bin下的python3解释器.#!/usr/bin/env python3首先会到env设置里查找pyt ...
- 微信小程序----wxss设置样式
一.wxml 界面结构wxmL比较容易理解,主要是由八大类基础组件构成: 一.视图容器(View Container): 二.基础内容(Basic Content) 组件名 说明 组件名 说明 vie ...
- spring+springmvc+hibernate 整合
三大框架反反复复搭了很多次,虽然每次都能搭起来,但是效率不高.最近重新搭了一次,理顺了思路,整理了需要注意的地方,分享出来. 工具:Eclipse(jdk 1.7) spring和hibernate版 ...
- 关于Ocelot和Consul 实现GateWay(网关) 服务注册 负载均衡等方面
Ocelot 路由 请求聚合 服务发现 认证 鉴权 限流熔断 内置负载均衡器 Consul 自动服务发现 健康检查 通过Ocelot搭建API网关 服务注册 负载均衡 1. ...
- 实验五 <FBG>团队亮相
一.队名:FBG 二.队员: 201571030321:马玉婷 (小队长) 201571030317:马美玲 201571030331:益西卓嘎 三.队员风采: 201571030321:马玉婷 风格 ...
- [python]Python代码安全分析工具(Bandit)
简介: Bandit是一款Python源码分析框架,可用于Python代码的安全性分析.Bandit使用标准库中的ast模块,将Python源码解析成Python语法节点构成的树.Bandit允许用户 ...
