Android车载开发总结

  好久不更新了,今天早上看到去年5月底离开华阳,写的一篇总结报告,很有感触,一起分享;也希望前公司你能够越来越好,能够成为世界性公司。

2014年5月29日 10:40

Author:forrestjr   [email protected]

关于行业的思考:

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、开发记录、问题解决记录、沟通纪要;

在开发过程中靠的是开发人员的认真、细心、沟通及耐心,加之相对合理的开发时间和激励措施;

   此开发过程重在执行;

关于开发后期与测试的思考:

开发后期,个人认为每个开发人员起码需要投入一半时间在测试和反复验证与自己开发相关的功能模块上;我们做的是产品,而不单是实现功能;

同时测试人员在此阶段也需要进行高强的的整机测试和自动化测试;

此阶段的任务是查出潜在问题、完善稳定功能、优化性能;

此阶段会让人觉得很枯燥、或是烦躁,但他确实产品化关键的环节;

个人认为此阶段没有捷径,只能靠辛勤、汗水和时间来保证产品的质量;

如果开发过程控制好,每个功能都进行过反复的验证,开发都有详细的记录,那么开发后期和测试阶段相对就会轻松些;

   此开发过程重在勤劳;

关于开发分析与设计的思考:

开发分析应包括开发前期的方案选择和评估;

开发前期的方案选择和评估也应该属于开发的过程,尤其在嵌入式行业(很难有一个项目负责人能懂得从上至下的所有技术),应有开发技术人员的全程参与;

开发分析不能在开发中期或是后期再来补,没有多少的效果和意义;

开发分析应该包含产品化的部分,最好能通过产品经理持续改进和跟踪;

在开发分析完善的情况下,好的设计才是一个产品的竞争力和附加值;

好的设计应当是在有稳定平台的基础上,能够设计出 具有创新、改善用户需求的功能、设计出精致、舒适的人机交互界面;

产品的稳定、流畅、兼容是基础,而设计上的新颖、贴切、舒适才是产品的生命力;

时间: 2024-08-02 09:23:55

Android车载开发总结的相关文章

Android车载导航的一些困境

车载导航从最初的用解码芯片,过渡到用WinCE系统,已经形成了一个较大的产业.车载导航使用上的一些大原则,基本上被固定了下来.现在WinCE走到了尽头,Android车载导航开始发力,但因为Android系统的使用习惯,与传统车载的使用习惯有着较大的不同,在设计的时候,往往会遇到一些尴尬,既要保持原有的使用习惯,又要保留Android的优点.都要兼顾的话往往是技术上要费很大功夫而且带来使用上的困惑,但是市场的惯性又很难允许全面的革新.所以Android车载,我认为最大的困难并不是技术上的,而是产

做android移动开发的一点体会

做手机的一点体会 整个android系统是一个完整的生态系统,谷歌提供开放的android平台,下游有各种生产硬件的厂家提供各种手机的硬件,像富士康这样的工厂提供手机的代加工, 然后是高通这样的公司提供手机的核心芯片和自己的解决方案,然后网上做手机的公司,相当于是做一个大的"集成",做手机的公司需要从各种运营商那里拿到订单,然后根据 运营商的需求来做手机,运营商卖好了手机,和手机公司之间分成,或者是 手机公司通过其他的渠道售卖自己的手机,功能要么是全网通,兼容各个运营商,要么是兼容某一

Android多媒体开发介绍(转)

Android多媒体开发介绍 转自:http://blog.csdn.net/reiliu/article/details/9060557 一.       多媒体架构 基于第三方PacketVideo公司的OpenCORE来实现,支持所有通用的音频/视频/静态图像格式,包括:MPEG4.H.264.MP3.AAC.AMR.JPG.PNG.GIF等.从功能上分为两部分,一是音/视频的回放(PlayBack),二是音视频的纪录(Recorder). CODEC(编解码器)使用OpenMAX 1L

IDEA搭建Android wear开发环境,Android wear,I'm comming!

随着google发布了android wear这个东西,然后又有了三星的gear,LG的G watch以及moto 360,苹果由发布了apple watch,未来可能在智能手表行业又有一场战争.当然这只是笔者的个人观点,仅供参考. 作为开发者,当然关心的是只能手表的开发了,所以我们来搭建一下android wear的开发环境吧! 搭建android wear开发环境,我们需要以下的软件Intellij 13.1.3,android-sdk 23.0.02. 首先需要下载安装好android-s

Android应用开发-小巫CSDN博客客户端之显示博文详细内容

Android应用开发-小巫CSDN博客客户端之显示博文详细内容 上篇博文给大家介绍的是如何嵌入有米广告并且获取收益,本篇博客打算讲讲关于如何在一个ListView里显示博文的详细信息,这个可能是童鞋们比较困惑的,因为一篇博客可能有标题.摘要.图片.代码等等元素组成,我们要怎么在一个界面中显示这些内容并且按照自己的指定的方式显示呢,别急,下面会告诉大家. 重新整理一下一篇博文可能有以下元素: 标题 摘要 文本内容 图片 粗标题 代码块 在UI篇小巫已经介绍了,博文详细内容的主要控件就是一个Lis

Android游戏开发之主角的移动与地图的平滑滚动

人物移动地图的平滑滚动处理 玩过rpg游戏的朋友应该都知道RPG的游戏地图一般都比较大 今天我和大家分享一下在RPG游戏中如何来处理超出手机屏幕大小的游戏地图. 如图所示为程序效果动画图 地图滚动的原理 在本人之前博客的文章中介绍过人物在屏幕中的移动方式,因为之前拼的游戏地图是完全填充整个手机屏幕的,所以无需处理地图的平滑滚动.这篇文章我着重的向 大家介绍一下控制人物移动后地图滚动的处理方式.举个例子 如上图所示 比如人物向右移动,如果地图贴在屏幕左边边界 将先移动人物在地图的坐标,当人物在屏幕

windows平台下Android studio开发环境搭建教程

最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境 .而随着Android studio正式版的推出和完善,Android开发者们转向Android studio开发平台也将是大势所趋! 小弟Vike原先学习Android也是一直用的eclipse,虽然时间不长,而且用起来慢点,卡点,但是毕竟熟悉起来了,猛地要转到一个新平台,还真是相当不习惯.且不说快捷键有变化,就连Android

配置Android应用开发环境

一.安装JDK 开发 Android应用程序的时候,仅有Java运行环境(Java Runtime Environment,JRE)是不够的,需要完整的JDK(JDK包含了JRE),且要求其版本在JDK 6以上,在开发Android 5及更高版本时,需要JDK 7及其以上版本. 如果JDK不可用或版本低于JDK 6,要下载Java SE开发工具包7 . 使用JDK 7及以上版本无需再对环境变量进行设置. 若安装JDK 6,需要在cmd下使用Java命令和编译.运行程序,可以配置环境变量(具体步骤

Android内核开发:理解和掌握repo工具

由于Android源码是用repo工具来管理的,因此,搞Android内核开发,首先要搞清楚repo是什么东西,它该怎么使用?作为<Android内核开发>系列文章的第二篇,我们首先谈谈对repo工具的理解和使用. 1. repo是什么? repo是一种代码版本管理工具,它是由一系列的Python脚本组成,封装了一系列的Git命令,用来统一管理多个Git仓库. 2. 为什么要用repo? 因为Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,