RE: 从零开始的车载Android HMI(一) - Lottie

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RE: 从零开始的车载Android HMI(一) - Lottie相关的知识,希望对你有一定的参考价值。

参考技术A

多年以前汽车还是以机械仪表主体的年代,各大汽车主机厂商并不十分关注操作系统UI的交互功能,但是随着车载SOC算力的不断提高以及主机厂商对汽车座舱竞争的白热化。座舱的HMI在设计上在强调功能性的同时也开始关注UI的艺术性,HMI的设计师们期望艺术与功能应该协同工作,让用户沉浸在“第三空间”的体验中。

有了需求程序员就需要关注如何实施和落地,然而android应用本身虽然有着完整的动画框架支持,但是开发复杂、调试耗时,大型的gif或逐帧动画对于CPU&内存占用都不太理想,所以许多Android的手机应用基本上不怎么有动画。 而且车载HMI上越来越多的开始引入各种光影、粒子效果,如果基于Android的原生控件来实现这些粒子效果,难度非常大,这就需要今天的主角Lottie来实现了。

Lottie 是一种基于JSON的动画文件格式,它使设计师能够在任何平台上发布动画,就像发布静态资产一样简单。它们是在任何设备上工作的小文件,可以在不进行像素化的情况下放大或缩小。

适量图形,不会出现失真

占用空间比序列帧动画小

可以修改属性,动态生成可交互的动画(使用视频动画难以实现交互功能)

节省HMI的开发、调试时间

可以更轻松的实现粒子、光影等特效

然后就可以在布局文件中使用LottieAnimationView了

然后运行APP就可以看到动画效果

LottieAnimationView 继承自AppCompatImageView,所以ImageView支持的属性, LottieAnimationView 都是支持的,这部分就不再介绍了。

如果设定 app:lottie_fileName="other/HamburgerArrow.json",那么lottie就会读取assets/other/HamburgerArrow.json。
void setAnimationFromJson(String jsonString, @Nullable String cacheKey)

void setCacheComposition(boolean cacheComposition)

Lottie的Demo中内置了很多官方自己开发的动画效果,目的是为我们展示Lottie的常见用法,作为开发者我们必须掌握,并在适当的时候运用到我们的应用中。

该效果展示了lottie支持动态修改json,让动画中的一小部分属性发生改变。

KeyPath 中的 LeftArmWave 是Json中的一个属性

修改的效果如下。注意看右手的摆动频率X3后比X1高,以至于录制的GIF直接丢帧了。

修改后的效果如下

修改后的效果如下

该效果展示了动画文字效果。这个效果实现起来其实不难,从程序中捕获输入的字母,再替换成lottie的资源文件即可。

注意,这里其实用了两个lottieView,分别设定了不同的文字。

该效果展示通过监听点击事件来播放不同的lottie动画。这个效果最常见,APP中的点赞效果大多都是这样的实现思路。

在车载HMI开发中往往我们会在实现、调试UI上花费大量的时间,如果能够灵活的运用Lottie,就可以显著节省程序的开发时间。例如,光影、粒子等特效虽然可以也考虑用Kanzi等3D引擎实现,但是3D引擎会消耗成倍的SOC性能,实际开发过程中,简单的特效使用Lottie实现,可以极大的优化应用的性能,给用户一个更优秀的体验。

本篇很多内容参考了 《Android自定义控件高级进阶与精彩实例(博文视点出品)》(启舰)【摘要 书评 试读】- 京东图书 这本书的内容,写得相当不错,非常值得认真阅读。

下一篇来讲讲车载HMI开发时都会用到的一个系统组件 - Widget

还不知道什么是汽车HMI设计?进来带你快速了解

《Android自定义控件高级进阶与精彩实例(博文视点出品)》(启舰)【摘要 书评 试读】- 京东图书

大厂都在进军车载应用?Android车载应用开发,从零开始一起学

前言

随着互联网的飞速发展,越来越多的大厂都在进军车载行业,车载技术算是当下非常火热的技术。就目前而言,车载Android开发依然有着不错的前景,今天就一起来看看车载应用从零开始要学什么东西。

Android车载开发应用,从零开始一起学

关注+评论(车载) 领取下面车载全套PDF文档和 《整套50W字Android体系PDF》 ,让学习更贴近未来实战。

50W字,腾讯T10级Android高级工程师成长;内容全在这里了

内容概括

1.腾讯Android开发笔记(33W字)

2.2022最新Android十一位大厂面试专题(12W字)

3.音视频经典面试题(6W字)

4.Jetpack全家桶

5.Android 性能监控框架Matrix

6.JVM

7.车载应用开发

1.Android HMI - Lottie

  • Lottie概述
  • 常用熟悉和用法

2.Android HMI - Widget

  • Widget概述
  • 如何创建
  • APPwidgetProviderinfo属性和使用方法
  • APPwidgetProvider使用和说明
  • Widget布局和进阶用法

3.Android HMI - SurfaceView

  • SurfaceView概述
  • Surface-Surfaceview-SurfaceHolder三者
  • SurfaceVIew双缓冲机制
  • Surfaceview使用注意事项

4.Android Automotive概述与编译

  • Android Automotive的介绍
  • 创建Android Automotive模拟器
  • 下载和编译Android Automotive
  • 常见错误解析

5.集成第三方APK

  • 应用安装的目录
  • 预装APK
  • 注意事项

6.构建 MVVM 架构

  • MVVM架构分层逻辑
  • 封装适合车载应用的MVVM框架
  • 基于框架实现MVVM架构

7.编写基于AIDL 的 SDK

  • AIDL介绍
  • 封装SDK Base类
  • 封装SDK

8.CarLauncher

  • Launcher与CarLauncher
  • CarLauncher功能分析
  • CarLauncher源码分析

9.车载多媒体(一)- 音视频基础知识与MediaPlayer

  • 音视频基础知识
  • MediaPlayer
  • 管理音频焦点

10.车载多媒体(二)- 多媒体应用架构与MediaSession框架

  • 多媒体应用架构
  • MediaSession介绍
  • MediaSession实践
  • MediaSession API列表

11.车载多媒体(三)- 原生音乐播放器

  • LocalMedia
  • LocalMediaPlayer核心源码解析
  • 媒体播放器-Player
  • LocalMedia拆解
  • HIMI源码解析

12.车载空调系统(HVAC)

  • HVAC介绍和源码结构
  • HVAC源码解析

13.车载Android应用开发入门指南

  • 车载应用
  • 智能汽车座舱基本结构
  • 车载应用开发
  • 车载Android开发前景

14.SystemUI

  • 车载SystemUI
  • CarSystemUI启动流程
  • 顶部状态栏与底部导航栏

15.车载Android进阶篇 — CMake基础

  • CMake介绍
  • CMake语法
  • CMake常用常量
  • CMake常用指令

16.车联网APP通信协议加密分析

  • 目标-步骤
  • Unidbg手把手跑
  • Trace Block
  • Trace Code

17.Android车载工程师

  • 构建车载媒体应用
  • 构建Android Auto即时通信应用
  • 构建车载导航和地图标点应用
  • 构建Android Automotive OS视频应用
  • 测试和分发Android车载应用
  • 适用于汽车的Google Play服务
  • Android Automotive OS通知

但是,单纯的Android应用工程师在整车座舱上只能负责非常小的一个技术领域,这就已经决定了这个职业的发展高度,如果想突破这层天花板,就必须要深入到Android系统的底层,掌握Framework、HAL甚至于Native的一些运行原理。除此以外,Linux、汽车相关的知识也是需要额外学习的。

Framework全集解析,50W字Android全体系

1.Framework源码面试合集
2.Handler全篇解析
3.Binder全篇解析
4.LiveData事件机制
5.Framework底层源码(AMS-PMS-WMS-IMS解析)
6.Framework事件机制解析

Android车载开发应用,从零开始一起学

关注+评论(车载)领取车载全套PDF文档和《整套50W字Android体系PDF》,让学习更贴近未来实战。

50W字,腾讯T10级Android高级工程师成长;内容全在这里了

内容概括:

1.腾讯Android开发笔记(33W字)

2.2022最新Android十一位大厂面试专题(12W字)

3.音视频经典面试题(6W字)

4.Jetpack全家桶

5.Android 性能监控框架Matrix

6.JVM

7.车载应用开发

以上是关于RE: 从零开始的车载Android HMI(一) - Lottie的主要内容,如果未能解决你的问题,请参考以下文章

Android车载多媒体与MediaSession框架

Re:从零开始的Spring Session

Re:从零开始的Spring Session

Android之WIFI-基础篇NativeDaemonConnector分析

Re:从零开始的Spring Session

Re:从零开始的二项式反演