作为一名Android车载工程师,需要具备哪些能力?

news2024/11/24 7:04:06

安卓开发在近几年的就业环境大家肯定都听说过,许多Android开发程序员都找不到自己满意的工作,于是纷纷另谋出路…

如今,随着Android汽车开发的兴起,很多Android开发者想转行做Android车载开发。然而,Android车载开发不是想做就能做的,因为车载开发工程师的门槛相对较高,但是令人眼睛一亮的是车载开发工程师的工资普遍偏高,这高昂的工资确实令许多Android开发程序员不得不心动。
在这里插入图片描述
前段时间,一位工作了3年的Android开发程序员私信了我,然后问了我一系列的问题,表达出他对未来的迷茫:

我是一个小城市的程序员,工作了三年,月薪只有9k,这倒没啥,由于在这家公司工作了这么久,自己的能力和职位都没提升,就感觉自己很容易被一些工资低的人代替掉,就莫名感觉到有一种危机感。于是就在网上了解到了Android车载开发工程师的岗位, 我在b站上看了很多关于车载的教学视频,感觉很杂乱,就想知道Android车载开发一个完整的知识体系,距离参加工作,需要学习多久?就很迷茫

我仔细看了一下他提出的问题,归纳总结无非就是:Android车载开发的完整知识体系是怎样的,怎么学?

我相信有这种疑惑的同学一定也不在少数,那么今天我就结合我的实际经验,来简单介绍一下,作为一名Android车载工程是,我们需要具备哪些知识,才能帮助我们更快地找到Android车载的工作。

自我介绍

在开讲之前,我先简单地做一下自我介绍:

我是北京理工大学毕业,学的是Android开发。16年毕业,15年10月找到的实习单位参加工作,中间跳槽了几家公司,其中有一家是担任Android车载应用开发工程师,目前和朋友开了一家教育机构已有5年有余。

平时喜欢逛逛github,看看掘金,有空就维护一下github上的开源项目,没空就写写文章,发发牢骚,是个再普通不过的屌丝程序猿。

说了我的这些经历,无非就是想告诉大家:我和大家一样都是从Android开发程序员开始,然后进阶学习走到现在,我能做到,大家也一定能做到。所以大家不必担心,只要你能够按照我的指导去做的话,你一定可以比我更加优秀!

Android车载工程师知识体系

USB通信

USB是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。现在智能手机也加入了对于USB设备的支持。比如手机映射到车载中控屏上面就需要用到USB。
在这里插入图片描述
需要掌握的技能有:

  • 通信协议
  • Android配件协议AOA
  • USB 结构及通信形式
  • USB 四种通信方式
  • libusb交叉编译与使用

串口通信

串口通信(Serial Communication), 是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。

需要掌握的技能只有:

  • 通信原理
  • 通信协议

CarFramework框架

Android Automotive扩展了Android 。在将Android打造为功能齐全的信息娱乐平台的过程中,我们添加了对汽车特定要求,功能和技术的支持。就像今天用于移动设备的Android一样,Android Automotive将是一个完整的汽车信息娱乐平台。
在这里插入图片描述

需要掌握的技能有:

  • CarFramework框架解析
  • AOSP源码编写/调试/烧机等
  • CarFramework与Android Framework

CarLuncher

Launcher是安卓系统中的桌面启动器,安卓系统的桌面UI统称为Launcher。Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Launcher就无法启动安卓桌面。
在这里插入图片描述
需要掌握的技能有:

  • CarLuncher启动原理
  • launcer桌面切换/图标拖拽/workspace滑动 /主题定制
  • 系统应用定制

Automotive系统

在智能手机行业初兴起时,包括BAT在内许多传统互联网企业都曾布局手机产业,但是随着手机市场的基本定型,造车似乎又成了各大资本下一个追逐的方向。百度、小米先后宣布造车,阿里巴巴则与上汽集团共同投资创立了,面向汽车全行业提供智能汽车操作系统和智能网联汽车整体解决方案的斑马网络,一时间造车俨然成了资本市场的下一个风口。
而作为移动端操作系统的霸主 - Android,也以一种新的姿态高调侵入造车领域,就是 Android 车载信息娱乐系统 - Android Automotive。
在这里插入图片描述

需要掌握的技能有:

  • Automotive 的架构原理
  • 车载网络模

SystemUI

SystemUI属于系统级的apk,位置在frameworks\base\packages\SystemUI,主要功能有:

  • 状态栏信息显示,比如电池,wifi信号,3G/4G等
  • icon显示 通知面板,比如系统消息,第三方应用消息
  • 近期任务栏显示面板,比如长按近期任务快捷键,显示近期使用的应用

需要掌握的知识有:

  • 车机System UI启动流程
  • 车机Notification创建
  • LockScreen锁屏
  • SystemUI的车机控制

车载蓝牙通信

蓝牙是一种工作在免费的ISM频段的短距离无线通信技术,在各种设备之间实现灵活、安全、低成本、低功耗的语音和数据通信。

需要掌握的知识有:

  • 低功耗蓝牙与传统蓝牙
  • 蓝牙广播,扫描与连接
  • 蓝牙服务与安全问题
  • MTU和连接参数
  • 蓝牙调试技巧

以上就是车载开发需要掌握的知识体系。详细资料可查看Android进阶学习笔记,里面包含了除车载知识外,还有音视频开发,Flutter工程师等Android相关职位的知识点。点击链接 docs.qq.com/doc/DWHFqVHBMVEJPWUx1 货区。需要详细车载开发学习思维图可以加魏:Maniu966免费货区。
Android进阶学习笔记

光知道了一个学习方向还是不够的。在学习的同时,我们还需要提高自己的动手能力。为什么这么说呢?

打个比方:

很多小白在入门某一项语言或者技术的时候,通常都是购买网课或者买一本入门书籍翻看,抄一抄视频或者书中的源码,就天真地以为自己已经彻底掌握了。他们殊不知,这些只是一些皮毛而已,当条件稍微发生一点变化的时候,他们就彻底懵逼,手足无措了。

那么怎样才能摆脱这样的困境呢?其实非常简单,多敲代码,多练习,多思考,熟能生巧嘛。

如何提高自己的动手能力

这里我还是推荐大家多到github或者gitee这种开源代码托管平台去找一些优秀的开源项目,这些项目很多都是历经了各种复杂业务考验的高价值项目,临摹他们的代码,可以极大地提升我们的技术水平和编码水平

那么一开始我是如何锻炼自己的编码能力的呢?我简单介绍一下,供大家参考:

1.首先去开源代码托管平台找一个合适的目标项目。
2.阅读项目的代码,初步了解项目的实现原理和架构。
3.自己创建一个新项目,然后按照自己的理解实现一个类似的项目如果你不 如果不理解,可以学习或复制目标项目的代码(目标项与参考答案相似)
4.最低要求是能够正常运行,实现目标项目的主要功能,更高的要求是有一些自己的优化点或特点。
5.最后总结一下你做过的项目好的话可以写个自述介绍或者原理分析。如果你能按照我上面说的来来回回写四五个项目,相信你的实践能力一定会有质的飞跃。

最后
在这里,我想给往车载开发转行的朋友们一点建议:很多时候,很多事情,并不像你想象中的那么简单,千万不要自认为简单而不愿意去做,很多东西只有你亲手去做了之后,才会发现事情并不像你最初想的那么简单。一定要多动手自己去实际才能有本质的提升。

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

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

相关文章

深入理解border以及应用

深入border属性以及应用&#x1f44f;&#x1f44f; border这个属性在开发过程中很常用&#xff0c;常常用它来作为边界的。但是大家真的了解border吗&#xff1f;以及它的形状是什么样子的。 我们先来看这样一段代码&#xff1a;&#x1f44f; <!--* Author: syk 185901…

如何为三星active2手表安装自己DIY的表盘

一、步骤介绍 Step 1. 下载Galaxy watch studio&#xff1b; Step 2. 按照up主“隔壁张师傅2022”的文章进行安装。 二、安装流程简单说明&#xff1a; ① 电脑端官网下载并安装Galaxy Watch Designer或者Galaxy Watch Studio程序。 ② 关闭手表蓝牙连接&#xff0c;并打开调…

Spring中最常用的11个扩展点

前言我们一说到spring&#xff0c;可能第一个想到的是 IOC&#xff08;控制反转&#xff09; 和 AOP&#xff08;面向切面编程&#xff09;。没错&#xff0c;它们是spring的基石&#xff0c;得益于它们的优秀设计&#xff0c;使得spring能够从众多优秀框架中脱颖而出。除此之外…

【源码解析】SpringBoot的源码深入分析

SpringBoot源码分析 主流程 SpringBoot项目的组成是需要引入SpringBoot需要的依赖&#xff0c;另外启动类上添加SpringBootApplication&#xff0c;主要是标明该类是启动类和实现自动装配&#xff0c;自动装配的原理详细可见&#xff0c;SpringBoot自动装配的实现原理。那么m…

Docker基本介绍

最近需要将项目做成一个web应用并部署到多台服务器上&#xff0c;于是就简单学习了一下docker&#xff0c;做一下小小的记录。 1、简单介绍一下docker 我们经常遇到这样一个问题&#xff0c;自己写的代码在自己的电脑上运行的很流畅&#xff0c;在其他人电脑上就各种bug&…

Linux学习--常用命令vi/vim

linux平台的文本编辑器 vi/vim的使用 vi windows的记事本 vim Windows的notepad 基本上vi/vim共分为三种模式&#xff0c;命令模式(Command mode)&#xff0c;输入模式(Insert mode)&#xff0c;底线命令模式(Last line mode) vim使用流程 1、下载vim yum install vim …

【并发编程学习篇】深入理解CyclicBarrier

一、CyclicBarrier介绍 字面意思回环栅栏&#xff08;循环屏障&#xff09;&#xff0c;通过它可以实现让一组线程等待至某个状态&#xff08;屏障点&#xff09;之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后&#xff0c;CyclicBarrier可以被重用。 和Count…

动态规划:leetcode 70.爬楼梯、322.零钱兑换、279.完全平方数

leetcode 70.爬楼梯leetcode 322.零钱兑换leetcode 279.完全平方数leetcode 70.爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f;注意&#xff1a;给定 n 是一个正整数。示例 1&#xff1a; 输入…

【C++】-- 智能指针

目录 智能指针意义 智能指针的使用及原理 RAII 智能指针的原理 std::auto_ptr std::auto_ptr的模拟实现 std::unique_ptr std::unique_ptr模拟实现 std::shared_ptr std::shared_ptr的模拟实现 循环引用问题 智能指针意义 #问&#xff1a;为什么需要智能指针&#…

R语言绘制SCI论文中常见的箱线散点图,并自动进行方差分析计算显著性水平

显著性标记箱线散点图 本篇笔记的内容是在R语言中利用ggplot2&#xff0c;ggsignif&#xff0c;ggsci&#xff0c;ggpubr等包制作箱线散点图&#xff0c;并计算指定变量之间的显著性水平&#xff0c;对不同分组进行特异性标记&#xff0c;最终效果如下。 加载R包 library(ggplo…

SQL注入漏洞利用(上)

SQL注入漏洞SQL注入漏洞SQL注入原理SQL注入带来的危害SQL注入分类数字型注入实操字符型注入实操类型检测and测试绕过密码&#xff1a;or 11 --搜索型注入实操SQL注入漏洞 攻击者利用Web应用程序对用户输入验证上的疏忽&#xff0c;在输入的数据中包含对某些数据库系统有特殊意…

离散数学笔记_第一章:逻辑和证明(2 )

1.2 命题逻辑的应用1.2.1 语句翻译 1.2.2 系统规范说明 1.2.3 布尔搜索 1.2.4 逻辑谜题泥巴孩子谜题骑士和流氓&#xff08;考研逻辑题&#xff09;1.1.2.5 逻辑电路1.2.1 语句翻译 &#x1f433;为啥要翻译语句&#xff1f; ➡因语言常常有二义性&#xff08;有歧义&#x…

Window.location 详细介绍

如果你需要获取网站的 URL 信息&#xff0c;那么 window.location 对象就是为你准备的。使用它提供的属性来获取当前页面地址的信息&#xff0c;或使用其方法进行某些页面的重定向或刷新。 https://www.samanthaming.com/tidbits/?filterJS#2 window.location.origin → htt…

Dbeaver连接Hive数据库操作指导

背景&#xff1a;由于工作需要&#xff0c;当前分析研究的数据基于Hadoop的Hive数据库中&#xff0c;且Hadoop服务端无权限进行操作且使用安全模式&#xff0c;在研究了Dbeaver、Squirrel和Hue三种连接Hive的工具&#xff0c;在无法绕开useKey认证的情况下&#xff0c;只能使用…

基于vscode开发vue项目的详细步骤教程

1、Vue下载安装步骤的详细教程(亲测有效) 1_水w的博客-CSDN博客 2、Vue下载安装步骤的详细教程(亲测有效) 2 安装与创建默认项目_水w的博客-CSDN博客 目录 五、vscode集成npm开发vue项目 1、vscode安装所需要的插件&#xff1a; 2、搭建一个vue小页面(入门vue) 3、大致理解…

近期常见组件漏洞更新:

&#xff08;1&#xff09;mysql 5.7 在2023年1月17日&#xff0c;发布了到5.7.41版本 mysql 8.0 在2023年1月17日&#xff0c;发布了到8.0.32版本 MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/ &#xff08;2&#xff09;Tomcat8在202…

react react-redux数据共享学习记录

react react-redux数据共享1.目的2.数据共享版本2.1Person模块的添加2.1.1 Containers下的Person2.1.2 actions下的person.js2.1.3 reducers下的person.js2.2 store.js的改写&#xff01;2.3 组件中取出状态的时候&#xff0c;记得“取到位”3.纯函数1.目的 前面的react和reac…

精确光度预测计算工具:AGi32 Crack

什么是AGi32&#xff1f; AGi32首先是一种用于精确光度预测的计算工具&#xff1a;一种技术工具&#xff0c;可以计算任何情况下的照度&#xff0c;协助灯具放置和瞄准&#xff0c;并验证是否符合任意数量的照明标准。 然而&#xff0c;要增强对光度学结果的理解&#xff0c;还…

创建SpringBoot注意事项

作为一个java小白&#xff0c;你是否因为创建SpringBoot项目那些莫名其妙的错误搞得头皮发麻。不要慌张&#xff0c;这篇文章能帮你解决90%的问题【持续更新…】 本文结合创建SpringBoot项目的完整过程来讲 在idea中新建项目 虽然SpringBoot项目是由maven内核组成的&#xff0…

【Linux驱动】驱动设计硬件基础----串口、I2C、SPI、以太网接口、PCIE

1.前言 常见的外设接口与总线的工作方式&#xff0c;包括串口、I2C、SPI、USB、以太网接口、PCI和PCI-E、SD和SDIO等。 2.串口 RS-232、RS-422与RS-485都是串行数据接口标准&#xff0c;最初都是由电子工业协会&#xff08;EIA&#xff09;制订并发布的。 3.I2C I2C&…