Android车载开发总结
好久不更新了,今天早上看到去年5月底离开华阳,写的一篇总结报告,很有感触,一起分享;也希望前公司你能够越来越好,能够成为世界性公司。
2014年5月29日 10:40
Author:forrestjr forrestjr@126.com
关于行业的思考:
Android系统免费、免费应用资源多、应用UI/Lunch、操控等人机交交互开发 易定制,因此Android车载在有很大的发挥空间,不怕做不了,只怕你想不到(Android应用产业链养活了数量巨大的移动互联网公司就是一个证明)。
很多时候会有这样一种现象:一提到Android车载机,就会有人说车机没网络,有网络下载要流量;实际上车机wifi连手机热点使用手机流量是很方便的,其次可以通过sdcard卡离线下载安装(可进行网络论坛宣传引导),也可以直接标配3G与移动公司、第三方应用公司合作推广套餐服务(这种模式在手机行业非常流行和成熟、同时也是一个较好的宣传手段);可以说Android车机实际上是一台嵌入在汽车上的手机+传统车载,虽然不尽相同,但手机的营销方法及设计方案都是值得思考和借鉴。
关于开发前选择的思考:
A、硬件:
1)芯片选择(优先级依次降低):
a、芯片规格需要达到车规或工规;
b、芯片音视频接口要丰富;视频方面至少需要支持5路输入(2*cvbs+2*yuv/vga+hdmi)以及4路输出 (1*cvbs+2*lcd+hdmi);音频方面至少需要支持5路输入(2*MicIn+2*LineIN+Pcm/I2S)以及三路输出(2*LineOut+Pcm/I2S);其中,音频方面比较容易满足,而视频输入输出方面需要仔细的分析(例如几路输入是否可以同时存在而不是复用、可以同时在屏幕输出几路、视屏输出是否可以分屏显示以及是否可以重绘UI等);此部分为Android车载芯片与普通手机芯片最大的需求差异;当然还有usb、sdcard接口是否丰富,此需求一般的车载芯片都有丰富的接口;
c、芯片的运行功耗、以及待机功耗,以及方案的电源管理能力(电源管理的稳定性);当真正意义的镜像快速开机难以实现的情况,休眠唤醒不失为快速开机不错的替代方法;
d、方案支持的Android以及Kernel版本,Android至少要4.2.2以上,kernel至少要3.0以上;当然如果需要考虑的前瞻性那么Android可以选择Android4.4(Google网站上介绍:Android 4.4优化了内存占用及触摸屏处理方式,响应速度和准确性超越以往所有版本,系统性能再上巅峰 );
c、原厂的支持与技术能力;
e、相比较手机对性能的要求车载行业对性能应该不高,双核/四核+1G 32Bit DDR即可满足需求,假设定位高端,提高配置也是比较简单的事情;
2)电路设计,尽可能的简化电路,尽可能的利用Android 芯片方案中的核心电路(原厂的出货量巨大,尤其是核心电路已经经过了多放的验证,不太必要在这里别出心裁);尽可能的降低mcu、mpu在软件设计方面的复杂度,这是基于越简单的东西越不容易出错;
B、软件:
1)Android版本的完整性和兼容性
a、基本外设的支持在开始选择方案是就需要去考虑wifi、3G、BT是够有内置或外置可配,以及每个功能的子功能是否支持完善(例如wifi热点、wifi直连等功能),其中蓝牙将会是问题集中爆发的一个功能模块;
b、车载机的蓝牙模块相比较于手机至少需要增加HFP、HID、A2DP、PBAP协议的支持,如果使用Android自带的软协议栈,在开始选择初期就需要做详细的分析以及充分的准备,如果做得不好,这部分就会成为短板;当然选择带协议栈的模块风险相对就会降低,但依然前期需要仔细的评估,否则在开发过程会发现它依然是个短板;
c、sdcard、usb的兼容性分析是前期就需要评估的(如果兼容性不过关可能还需要电子的介入);
d、多媒体的兼容性,以及多媒体的显示效果也非常的重要;
e、mpu端混音输出和单声音输出,结合mcu声音通道,是否能够满足要求,也是项目前期评估重要的一环;
f、方案Android CTS认证能够达到多少百分百,这关系的Android系统对三方软件的兼容性;
2)扩展功能的支持:mirrorcast接收端支持、双屏显示、双屏异显、后台视频异步输出、后台UI绘制等可用于车载的功能,在开发之前同样需要调研和评估;
关于开发过程的思考:
开发过程就是将开发之前评估和设计好的模块功能实现与细化的过程;
这部分靠的是每个人的认真对待、有效沟通,每实现一个功能需反复的验证和测试(软件和硬件),并且在开发过程中做好开发记录:
a、代码注释、编程规范;
b、细化功能的反复验证,以及验证报告;
c、svn代码提交记录,以及项目负责人的审核;
d、开发记录、问题解决记录、沟通纪要;
在开发过程中靠的是开发人员的认真、细心、沟通及耐心,加之相对合理的开发时间和激励措施;
此开发过程重在执行;
关于开发后期与测试的思考:
开发后期,个人认为每个开发人员起码需要投入一半时间在测试和反复验证与自己开发相关的功能模块上;我们做的是产品,而不单是实现功能;
同时测试人员在此阶段也需要进行高强的的整机测试和自动化测试;
此阶段的任务是查出潜在问题、完善稳定功能、优化性能;
此阶段会让人觉得很枯燥、或是烦躁,但他确实产品化关键的环节;
个人认为此阶段没有捷径,只能靠辛勤、汗水和时间来保证产品的质量;
如果开发过程控制好,每个功能都进行过反复的验证,开发都有详细的记录,那么开发后期和测试阶段相对就会轻松些;
此开发过程重在勤劳;
关于开发分析与设计的思考:
开发分析应包括开发前期的方案选择和评估;
开发前期的方案选择和评估也应该属于开发的过程,尤其在嵌入式行业(很难有一个项目负责人能懂得从上至下的所有技术),应有开发技术人员的全程参与;
开发分析不能在开发中期或是后期再来补,没有多少的效果和意义;
开发分析应该包含产品化的部分,最好能通过产品经理持续改进和跟踪;
在开发分析完善的情况下,好的设计才是一个产品的竞争力和附加值;
好的设计应当是在有稳定平台的基础上,能够设计出 具有创新、改善用户需求的功能、设计出精致、舒适的人机交互界面;
产品的稳定、流畅、兼容是基础,而设计上的新颖、贴切、舒适才是产品的生命力;
转载于:https://www.cnblogs.com/AdiSky/p/4217737.html
Android车载开发总结相关推荐
- 都快2023年了,想从事Android车载开发的还没看过这些吗?
说在前面的话 近几年的Android开发岗位就业环境想必大家也都有所耳闻,许多Android开发工程师都找不到自己满意的工作,于是纷纷另谋出路- 刚好这几年随着Android车载开发的兴起,就有许多A ...
- Android应用开发转车载工程师——串口通信学习
串口简介 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口.串行接口(Serial Interface)是指数据一位一位地顺序传送.其特点是通信线路简 ...
- 车载兴起已成必然,最新《Android车载操作系统开发指南》开源分享
目前,国内厂家在车载信息娱乐应用中主要采用Android系统,尤其是各大互联网巨头.自主品牌和造车新势力纷纷基于Android进行定制化改造,推出自己的汽车操作系统,例如,阿里AliOS.百度小度车载 ...
- Android车载应用开发与分析(13)- 系统设置-蓝牙设置
1. 前言 Android 车载应用开发与分析是一个系列性的文章,这个是第13篇分析系统设置,该系列文章旨在分析原生车载Android系统中核心应用的实现方式,帮助初次从事车载应用开发的同学,更好地理 ...
- 2023最新整理,Android车载操作系统开发揭秘,无偿分享!
临近年末大关,猛烈的疫情冲击打乱了原本的工作节奏,让互联网行业的发展形势愈发严峻.最近,我的身边也有不少Android开发程序员萌生了转行做车载的想法. 从中国车联网发布的市场规模预计来看,汽车市场将 ...
- Unity3D应用--打造Android车载3D车模桌面(车载主界面开发)
前言 Android中应用加载Unity3D来显示3D效果参考上一篇博文:Unity3D导出Android工程(Android中应用Unity3D) 透明背景实现参考另一篇博文: 在Android中U ...
- 一份全面详细的Android 车载系统开发入门指南与面试题
前言 众所周知,近两年互联网行业的就业形势不太理想,三点原因 技术原因: Android经过一代又一代的发展,早已经过了张口一句组件化就能月薪过万的时代,现如今不会Framework底层/性能优化 很 ...
- 【车载开发】Android Automotive车载操作系统开发解密篇
提到Android车载,我们应该都不陌生.传统的车载功能单一,无太多娱乐性,而随着智能化时代的发展,车载系统也被赋予了在系统中预装 Android 应用的能力,基于Android平台的车载信息娱乐系统 ...
- 这是一份全面详细的Android 车载系统开发入门指南
目前的就业形势越来越严峻,很多大中小厂因为业务停滞不前都选择"精简人员",节约成本.对于Android开发来说,市场的冷静,明显可以感知到企业招聘门槛的提高.就未来发展来说,选择一 ...
最新文章
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
- js的this与java的区别_JavaScirpt(JS)的this细究
- 如何使用R语言在SAP Analytics Cloud里绘制各种统计图表
- hibernate jpa_教程:Hibernate,JPA –第1部分
- Linux压缩和解压缩命令汇总(tar命令汇总)
- python 空值(NoneType)
- 欧盟委员会支持5个开源项目漏洞奖励计划,奖金池20万欧元
- 数据结构基础学习(一)数组
- 对编辑框进行赋值和取值
- matlab数字图像处理系统
- c语言智能车跑道检测程序,基于金属检测的智能循迹小车设计
- windows清理缓存性能加速
- 信度系数低怎么办?信度系数具体怎么算?
- 有损脑健康的七种坏习惯
- 某android广告SDK逆向分析总结
- Java导出Excel文档(poi),并上传到腾讯云对象存储服务器
- ServiceComb微服务框架
- xadmin界面美化
- python 图表_测试多图表展示Python版
- android 短信 8859 1,白话短信协议
热门文章
- 【Web安全】关于SQL Injection和盲注的探索(DVWA)
- 计算机图形学真实绘图实验报告,计算机图形学实验报告.doc
- express 使用 redirect 对 ajax 无效 页面不跳转
- 网络推广产品浅析网站想要保持稳定的SEO排名和流量需要做什么?
- 网络推广专员浅析在网站导航设计排版中应如何深入完成网络推广?
- 如何更科学的进行SEO优化?保持排名稳定
- 网站优化助力网站在同行中更加出类拔萃
- 挂代理无法访问网页了怎么办_搜索引擎蜘蛛不能爬取网页的原因有哪些
- 两对光纤收发器用网线连接_光纤那么快,路由器和电脑之间为何不用光纤连接,反而用普通网线...
- jsp程序带mysql数据库_【web开发】:JSP连接Mysql数据库(非常详细,代码一看就懂)...