【Android Framework (十二) 】- 智能硬件设备开发

news2024/10/7 4:32:15

文章目录

  • 前言
    • 智能硬件的定义与应用
    • 智能硬件产品开发流程
    • 智能硬件开发所涉及的技术体系概述
    • 关于主板选型
    • 主板CPU芯片的选择
    • 关于串口通信
  • 总结


前言

针对我过往工作经历,曾在一家智能科技任职Android开发工程师,简单介绍下关于任职期间接触和开发过的一些项目经历,智能多与物联网(LOT)进行联系,从对Android智能硬件一无所知到现在算是略有小成,期间踩了很多坑,也接触到了许多非Android方面的知识,现用文章的方式将之记录下来,与大家分享。


智能硬件的定义与应用

提到智能硬件其实属于物联网(LOT)的范畴,关于智能硬件的定义,以我理解的角度来看,首先这是一个不同于移动手机的硬件,它本质还是一个可触碰的实质物体;其次关于智能,只要是基于Android系统开发的硬件就可称之为智能,因为智能硬件最关键的特性就是与外部连接通信,也称之为物联网,而Android系统自带优秀的外部连接通信体系。

我们最常听到与见到的智能硬件有手环、智能音箱、智能家居这些比较成熟的消费级商品,这些智能硬件大部分都是没有界面的,与我从事的领域有所不同。没有界面的智能硬件大部分都不是Andriod系统,而有触屏界面的智能硬件我敢说80%以上都是Android系统,因为Android的交互体系绝对是最好的。

市面上成熟的Android智能硬件有:手持POS机、自动售货机、政务自助机、人脸识别门禁、收银机、汽车多媒体、电子班牌、快递柜、影院取票机、广告视频机等等。


智能硬件产品开发流程

导入需求,分析确定需求细节,讨论方案的技术可行性。
确定项目负责人、产品经理、硬件工程师、软件工程师、结构工程师、UI设计师。
由需求确定使用哪些外设,对外设进行选型,需充分考虑性能、质量、结构设计、价格、供应商支持度等各方面的因素。
优先确认使用什么Android主板,确认主板与外设选型后告知结构工程师进行结构外形设计。
硬件工程师负责外接设备的控制板开发并提供接入协议,硬件工程师还须将外设接入Android主板的线材适配好。
UI设计师提供界面给软件工程师(Android),开始进入进行软件开发阶段。
产品样品建模制作出外壳,打磨、喷漆后进行所有元件的组装。
样品烧入程序,开始交予测试。
程序bug修改,稳定性测试。
所有测试通过后,撰写用户文档与操作手册。
一款智能硬件样品全部制作完毕。

智能硬件开发所涉及的技术体系概述

Android UI
列表(RecycleView)
弹窗(Dialog)
动画(Animation)
文字与按钮(TextView)
手势(Gesture)
外部通信
串口通信(UART)
以太网
Wifi、热点
4G
蓝牙
USB
NFC
I2C
GPIO
存储
TF卡
U盘
FTP
Linux系统
脚本
点亮屏幕
固件升级
NDK
音视频播放
设备通讯协议加密
接入已有的C库
语音识别
人脸识别
外接设备
二维码
摄像头
红外感应器
喇叭、麦克风
触摸屏
LCD液晶屏
打印机
NFC模块
IC类读卡器

关于主板选型

Android主板的选型一定要放在首位,因为这是整个产品的控制中心,核心元件,如果不能自己定制主板,那就只能依赖于供应商提供方案。现行市面上非常多做安卓工业主板的,不愁找不到主板,但想要很特殊的定制可能会比较麻烦,除非你的量很大,否则只能用人家的标准板。依赖供应商还有一个特别麻烦的事情,就是系统功能定制的沟通,这是一个特别漫长而痛苦的过程。

结合多个项目的经验,总结出智能硬件在安卓系统中所基本必要的功能。

序号 功能 说明
1 开机自启 智能硬件一般只运行一个应用,且开机就要自动打开
2 保证应用永远在前台运行 让用户永远不会看到除了应用之外的其它安卓界面
3 有接口设置系统时间 有些局域网场景无法连接外网,需要同步局域网服务器时间
4 定时开关机(带RTC电池) 为了让系统更好运行,可能需要每隔几天重启一次
5 静默安装应用,完成后直接拉起应用 更新安装应用过程必须是无感的
6 系统固件更新接口 将新的系统固件放入系统后能用有方法更新
7 支持U盘、TF卡且有路径检测 对于非联网管理的产品必须要能检测到外部存储插入
8 设置静态以太网IP接口 对于某些依赖于IP地址进行管理的产品必须要能设置IP
9 开启/关闭背光电源接口 有些场景可能要求节能环保,关背光很必要
10 读写IO口接口 IO口是控制外设开关的关键功能
11 设置屏幕显示方向 横竖屏根据项目会有不同要求

主板CPU芯片的选择

CPU芯片是一块主板最核心的元件,对于智能硬件而言CPU价格是不能太高的,不然会导致产品成本过高竞争力下降,但CPU性能又不能太差以让产品毫无竞争力可言。从我观察的情况来看,现在市面上的智能硬件基本是三家芯片厂商占据了绝大部分市场,它们分别是:

瑞芯微 Rockchip,简称RK
全志 AllWinner
飞思卡尔 FreeScale
瑞芯微是我接触比较多的,在百度搜安卓主板出来的广告厂商基本都是采用瑞芯微方案的,总体来说瑞芯微方案是最成熟的。

全志的安卓主板给我的感觉就是很便宜但系统都是4.2或4.4,说实话有点落后时代,不是5.0系统以上的主板我都不想碰,界面太丑系统还有点卡。

最后关于飞思卡尔,这是一个国外厂商,我手上还没接触过这个芯片的板子,很少见搭载这个芯片的安卓主板,也许在某些特定应用场景才会考虑这个芯片吧。

下面重点介绍下瑞芯微(下面简称RK芯片)系列4款常见的芯片。
芯片 定位 特性
RK3188 低端 四核Cortex-A9(32位),频率最高1.6GHz,四核Mali-400MP4 GPU,支持OpenGL ES1.1/2.0,1080P视频编解码 (H.264)
RK3288 中端 四核Cortex-A17(32位),主频最高达1.8GHz,Mali-T764 GPU,支持OpenGL ES 1.1/2.0/3.1, OpenCL, DirectX9.3,1080P视频编解码 (H.264/265)
RK3368 中低端 八核64位Cortex-A53,主频最高达1.5GHz,PowerVR G6110 GPU,支持 OpenGL ES 1.1/2.0/3.1,OpenCL,DirectX9.3,1080P视频编解码 (H.264/265)
RK3399 高端 双Cortex-A72+四Cortex-A53大小核CPU结构,主频最高达1.8GHz,Mali-T864 GPU,支持OpenGL ES1.1/2.0/3.0/3.1,OpenVG1.1,OpenCL,DX11,1080P视频编解码
目前RK3288工业主板的价格大概在350~500 之间,RK3399价格在500~700之间,RK3188比3288便宜,RK3368介于3288与3399之间。

对于绝大多数应用场景而言,RK3288绝对能满足需求,价格也比较适中,系统一般是Android5.1不用进行运行时权限适配。RK3399主要用于对于运算能力要求比较高的场景,比如人脸识别,3399还有一大优势就是板子面积相对而言比较小。我目前基本都是采用3288进行开发的,对于智能硬件而言成本还是首要考虑因素,毕竟制造业利润低,苦笑~
在这里插入图片描述
在这里插入图片描述

关于串口通信

串口通信是Android智能硬件开发所必须具备的能力,市面上类型众多的外设基本都是通过串口进行数据传输的,所以说不会串口通信根本就做不了智能硬件开发。
首先来看一张RK3288的架构图,在ConnectActivity那一个模块可以发现UART*5的字样,这就表示3288有5个串口可用,其中串口2一般是调试口不开放使用。
在这里插入图片描述

总结

以上可以对从事android开发工程师来说大致了解做智能硬件需要了解的一些知识点,和对基础一年电路板的选型尤其是cpu上,真实android软件工程师来说主要还是在底层基础上进行相应有UI效果的开发和编程处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/882517.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文心一言 VS 讯飞星火 VS chatgpt (76)-- 算法导论7.3 1题

一、如果用go语言,为什么我们分析随机化算法的期望运行时间,而不是其最坏运行时间呢? 文心一言: 在分析算法的性能时,期望运行时间是一个重要的指标,它描述了算法在平均情况下的表现。期望运行时间考虑了所有可能的…

【Linux】—— 进程程序替换

目录 序言 (一)替换原理 1、进程角度——见见猪跑 1️⃣ 认识 execl 函数 2、程序角度——看图理解 (二)替换函数 1、命名理解 2、函数理解 1️⃣execlp 2️⃣execv 3️⃣execvp 4️⃣execle 5️⃣execve 6️⃣execve…

【C++】C++入门基础详解(1)

本篇内容要分享的是C的基础内容,C的诞生简单的说就是为了填补C语言中的语法坑,同时对比C语言来说增添很多便捷的语法规则,使用起来比C语言便捷不少,但是学习难度也大大增强,不过难度是成线性增长,可以一步一…

编译工具:CMake(三)| 最简单的实例升级

编译工具:CMake(三)| 最简单的实例升级 前言过程语法解释ADD_SUBDIRECTORY 指令 如何安装目标文件的安装普通文件的安装:非目标文件的可执行程序安装(比如脚本之类)目录的安装 修改 Helloworld 支持安装测试 前言 本篇博客的任务…

H3C交换机MIB库

非常齐全的官方MIB库 为Zabbix监控华三交换机提供诸多方便。 如下信息提供下载链接和下载账号: MIB清单下载:交换机-新华三集团-H3C MIB库:MIB-新华三集团-H3C

Python Opencv实践 - 图像透射变换

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) rows,cols img.shape[:2] print(rows,cols)#opencv中的透射变换,需要一个3x3透射变换矩阵 #这个矩阵可以通过…

基于IDE Eval Resetter延长IntelliJ IDEA等软件试用期的方法(包含新版本软件的操作方法)

本文介绍基于IDE Eval Resetter插件,对集成开发环境IntelliJ IDEA等JetBrains公司下属的多个开发软件,加以试用期延长的方法。 我们这里就以IntelliJ IDEA为例,来介绍这一插件发挥作用的具体方式。不过,需要说明使用IDE Eval Rese…

Spring Boot+Redis 实现消息队列实践示例

Spring BootRedis 实现一个轻量级的消息队列 文章目录 Spring BootRedis 实现一个轻量级的消息队列0.前言1.基础介绍2.步骤2.1. 引入依赖2.2. 配置文件2.3. 核心源码 4.总结答疑 5.参考文档6. Redis从入门到精通系列文章 0.前言 本文将介绍如何利用Spring Boot与Redis结合实现…

二自由度机械臂的gazebo仿真

一、创建ros软件包 #1、创建工作空间 mkdir 2d_robot_ws cd 2d_robot_ws mkdir src cd src catkin_init_workspace #2、编译工作空间 cd .. catkin_make #3、创建软件包 catkin_create_pkg 2d_robot std_msgs rospy roscpp二、创建模型文件 1、编写urdf模型文件 在2d_robot_…

科研经费的来源有哪些?

目前,高校在我国科技创新中发挥着越来越重要的作用,自然高校获得经费也越来越多。一所高校的科研经费充足,越有利于科研学术水平的提高。那么科研经费的来源有哪些呢? 1. 国家拨款 对于高校的科研发展享有国家的重点支持。近年来…

人工智能原理(3)

目录 一、搜索策略 1、引言 2、盲目搜索 3、启发式搜索 二、基于状态空间图搜索技术 1、图搜索基本概念 2、状态空间搜索 3、一般的图搜索算法 三、盲目搜索 1、广度优先搜索 2、深度优先搜索 3、有界深度搜索和迭代加深搜索 四、启发式算法 1、启发性信息和评估…

容器技术发展和编排技术演进之路

目录 Jail 时代 1979 年 贝尔实验室发明 chroot 2000 年 FreeBSD 4.0 发行 FreeBSD Jail 2001 年 Linux VServer 发行 2004 年 Solaris Containers 发行 云时代 2006 年 google 推出 Process Containers 2008 年 LXC 推出 2011 年 CloudFoundry 推出 Warden 2013 年 LMCTFY 启动…

JavaScript 【DOM】

【DOM】 原创内容,转载请注明出处! 一、DOM基本概念 DOM(Document Object Model,文档对象模型)是 JavaScript 操作 HTML 文档的接口,使文档操作变得非常优雅、简便。 DOM 最大的特点就是将 HTML 文档表示…

Pycharm找不到Conda可执行文件路径(Pycharm无法导入Anaconda已有环境)

在使用Pycharm时发现无法导入Anaconda创建好的环境,会出现找不到Conda可执行文件路径的问题。 解决 在输入框内输入D:\anaconda3\Scripts\conda.exe,点击加载环境。 注意前面目录是自己Anaconda的安装位置,之后就可以找到Anaconda的现有环…

STM32F407使用Helix库软解MP3并通过DAC输出,最精简的STM32+SD卡实现MP3播放器

只用STM32单片机SD卡耳机插座,实现播放MP3播放器! 看过很多STM32软解MP3的方案,即不通过类似VS1053之类的解码器芯片,直接用STM32和软件库解码MP3文件,通常使用了labmad或者Helix解码库实现,Helix相对labm…

Mariadb高可用MHA

本节主要学习了Mariadb高可用MHA的概述,案例如何构建MHA 提示:以下是本篇文章正文内容,下面案例可供参考 一、概述 1、概念 MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。…

如何使用Kali Linux进行渗透测试?

1. 渗透测试简介 渗透测试是通过模拟恶意攻击,评估系统、应用或网络的安全性的过程。Kali Linux为渗透测试人员提供了丰富的工具和资源,用于发现漏洞、弱点和安全风险。 2. 使用Kali Linux进行渗透测试的步骤 以下是使用Kali Linux进行渗透测试的基本…

搭建WebDAV服务手机ES文件浏览器远程访问

文章目录 1. 安装启用WebDAV2. 安装cpolar3. 配置公网访问地址4. 公网测试连接5. 固定连接公网地址6. 使用固定地址测试连接 有时候我们想通过移动设备访问群晖NAS 中的文件,以满足特殊需求,我们在群辉中开启WebDav服务,结合cpolar内网工具生成的公网地址,通过移动客户端ES文件…

【Unity每日一记】进行发射,位置相关的方法总结

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

绘制世界地图or中国地图

写在前面 在8月初,自己需要使用中国地图的图形,自己就此也查询相关的教程,自己也做一下小小总结,希望对自己和同学们有所帮助。 最终图形 这个系列从2022年开始,一直更新使用R语言分析数据及绘制精美图形。小杜的生信笔记主要分享小杜学习日常!如果,你对此感兴趣可以加…