Linux内核中许多芯片的驱动程序都已经存在,为何还要开发这些芯片的驱动?
如果你是在ic原厂,像海思,展讯,瑞星微,全志这种公司工作怎么办。。
难道你的驱动还是别人开发的?
还真实别人开发的,特别是买的IP。你以为上述公司的soc 里面gpu驱动自己能写?连里面的很多硬件细节都不是很清楚把
gpu的话,如果用DFB做底层显示,还是要写用户态驱动的,目前驱动不仅限于内核态,,像触摸屏,显示都有用户态底层对应支持的
Android手机的高清视频解码是硬解好还是软解好?有哪些软件推荐?
1.硬解速度比软解快,高帧率的视频,如120fps,240fps软解码速度是达不到的,用软解码播放会卡。
2.硬解码省电,使用硬件加速模块比靠cpu去做解码要省非常可观的电量。
3.硬解码使用专用DSP硬件而非通用,支持的视频流格式有限,不如软解灵活。
4.硬解码有平台相关性,各厂商的硬解方案不一,有时需要适配各种机器,软解码在同一架构下几本通用,不用适配。
看不下去了……
硬解画质不如软解好,属于都市传说。
这个传说的来由是大多数的硬解API不允许在解码之后进行软件后处理,于是一些基于软件的降噪锐化之类的后期滤镜都用不了,给喜欢用这些滤镜的人一种画质“不好”的错觉。
从科学的角度来说,解码效果只分对错,不分好坏。诚然,不能进行后处理是会对画面最终的效果造成影响,但没有进行任何后处理的画面才是有着最高的“保真度(fidelity)”的。
最后再来说手机上观看视频的问题,首先,手机上的播放器基本上不会提供什么后期滤镜,可以说这也是手机的处理性能所限。其次,同样因为手机处理器的性能所限,往往需要关闭deblock这一解码流程才能解码出流畅的画面,画质反而明显比硬解差。(因为跳过了一个重要的解码流程,可以认为解出来的画面是“错误”的,我所说的明显差距也是我自己的亲身体会,iOS版的B站客户端不支持硬解并且为了降低功耗默认完全关闭了deblock)天猫魔盒1s+与小米盒子,相同的芯片,为什么功能会有很大的区别?
没用过产品,仅仅从其他方面分析:
1.Amlogic全系列的芯片都是支持杜比认证的(要通过杜比认证,必须是芯片通过+最终设备通过)。而这个认证是需要钱的。天猫没有应该是省下了这笔钱(这个钱是按照每台设备交的)
2.H.265同上
目前国内已经上市的 Android 机顶盒都有哪些?
android机顶盒指的是采用android操作系统的机顶盒。从大的角度上来说可以分为两类,一类是基于互联网的机顶盒,与Google TV产品类似,主要的视频源是互联网,目前这类的产品较常见,但离开了网络基本上就没什么内容了。另一类是DVB机顶盒,即目前家用的由运营商发放的机顶盒,区别只是采用了android系统,其主要功能是播放数字电视信号,华为有这类的产品。
目前,各大机顶盒厂家和广电行业相关的公司几乎都有对android系统的关注或技术预研,看中的当然是android系统比此前机顶盒中用的linux系统能提供更大的扩展性,甚至也有公司希望形成自已的AppStore,但是离实际应用尚有距离。主要的限制在于:
1.广电运营商不希望控制权降低;
2.广电网络需要完成双向网改造,否则无法形成上行通道;
3.机顶盒成本采用android系统及相关方案后会大幅提高;
4.如果将机顶盒作为未来的家用接入中心还有太多的内容需要探索。
总之,还有很长的路要走。安卓机顶盒是指像智能手机一样,具有全开放式平台,搭载了安卓操作系统,可以由用户自行安装和卸载软件、游戏等第三方服务商提供的程序,通过此类程序来不断对电视的功能进行扩充,并可以通过网线、无线网络来实现上网冲浪的的新一代机顶盒总称。
自从2012年年底小米盒子发布并且被禁之后,机顶盒逐渐受到了越来越多的关注,淘宝上的安卓机顶盒销量也开始出现了显著的上升。总体来说安卓机顶盒有:能称之为专业的机顶盒芯片需要有两个重要的条件,一是强大的媒体解码能力,二是能提升输出的画质。
专业的机顶盒芯片,不同于普通手机芯片,其优异的性能不仅来自CPU和GPU的运算能力,更源自于内置硬件解码芯片。目前市面比较流行的4K视频,给用户带来了体验提升,同时所需要的带宽需求也有所增长。所以一个专业的4K机顶盒不仅能输出4K分辨率,对最新一代编码标准H.265的硬件解码支持必不可少,这就需要一个专业的机顶盒芯片来支持。和H.264相比,H.265使用了大小浮动的编码单位以及更先进的帧内预测模式,同画质的情况下使用H.265的视频可以做到H.264的一半大小,让在线播放4K视频成为可能。但是并不是所有的机顶盒芯片都支持H.265的硬解功能,比如市场上较为流行的Amlogic S802,小米、天猫和百度等厂商都应用了这款机顶盒芯片。
H.265的好处显而易见,同时也带来了高于H.264数倍的解码难度。相比H.264,H.265的解码难度增加了3倍。你所提到的荣耀盒子采用的是海思3798系列芯片。内置的解码内核,采用了最新的芯片架构。能支持高达100Mbps码流的H.265视频解码。这种水平对付一般的H.265 4K视频,可以说是毫无压力的。
但是,光有了超强的解码能力远远是不够的,毕竟落在最后的是消费者的感观体验上。所以最终画质的输出也是至关重要的。很多人肯定会问,机顶盒都能支持4K分辨率了,画质还需要怎样的提升?就如同苹果的iPhone 使用800万分辨率的摄像头,拍照的效果却比很多1300万像素的Android手机好很多一样,分辨率不是决定画面质量的唯一因素。在分辨率外,影响电视用户视觉体验的指标还有颜色对比度、颜色饱和度、边缘锐化效果等多种因素。有过使用高清播放器经验的发烧友们一定还对当年sigma和realtek 1185系列芯片带来的优异画质印象深刻,为什么当年能做到的画质效果,在如今广为流行的Android盒子上却不见踪影呢?这就要从Android 视频的处理架构说起。
大家都知道Android 系统是一款针对手机研发的操作系统,因为其开放的策略和强大的功能,最后为包括网络机顶盒在内多种智能设备所广为使用。由于手机屏幕尺寸较小,所以Android系统设计当初对视频的画质效果考虑不多,导致应用到网络机顶盒上后,在视频处理方面,暴露其不小的短板。
在Android的视频处理架构里,播放器(Stagefright)从解码器收取视频帧后是直接送到SurfaceFlinger去显示的,中间没有任何视频处理环节。所以如果原始视频数据因为压缩和传输引入了噪声或乱码,Android系统最后的输出画质就会非常糟糕。由于缺乏中间的视频处理环节,电脑软件里常用的降噪和画质提升算法都无法在android系统正常应用,导致android盒子的画质完全取决于输入源,系统没有任何提升改进的空间。这是目前android与生俱来的问题,市售大多数android产品输出到电视显示的视频图像质量都难有保证。
荣耀盒子所用的海思芯片,内置Imprex 图像处理引擎。对Android系统的画质提供了芯片级优化方案,可以完美解决问题。为了弥补Android系统缺乏后处理单元的软件架构缺陷。Imprex画质增强引擎集成了多种画质增强算法。例如边缘去锯齿处理、图像清晰度增强、去隔行处理、SR超清图像处理等等。
荣耀盒子的发布,毫无疑问会对市场上一些伪4K盒子造成冲击,而且仅仅298元的价格,确实对消费者来说是件好事。华为荣耀产品领域部长吴德周也曾发过这样一条微博,不知雷军看后会有何感想?
为什么电视盒子那么小却很耗电?
这个问题我可以回答一下,首先需要确认这几个盒子是IPTV盒子还是OTT盒子。
区别在于:IPTV盒子是各个运营商通过招标的形式,让各个厂商进行招标生产的,里面重要的否决项就有待机功耗测试要求。一般的盒子待机功耗基本在0.5W以内。像一般的盒子都是12V电源的话,待机电流基本在3mA左右。按照题主的图片基本是A情况的四分之一。
OTT盒子相对来说比较宽松一点,是各个厂商自己测试,一般大厂会严格一些,有一套严格的测试规范。
另外,待机分为真待机和假待机,真待机指的是CPU进入低功耗模式,各个主要部件停止工作,等待遥控唤醒。假待机指的是只把屏幕关闭,实际上就是关闭了HDMI输出,功耗并没有下降。
综上所述,微博图片的几款盒子我估计B和C像是假待机,A、D属于盒子厂商没有进行严格把关,有可能类似于WIFI的问题等导致了待机功耗过高,具体可以看看是哪家厂商的什么CPU+WIFI的盒子,才能进一步分析
另外,现在的媒体已被称为霉体,连个型号都不敢标出来,无图无真相,有可能是噱头
每个人的收入都是和他的付出成正比的。
我是计算机专业,感觉沟通能力还不错,但是智商有限,就选择了除编程外的工作。没有人好奇山寨平板都去哪儿了?他们都在用什么样的芯片?价位段都怎么样?都有些什么品牌?以及山寨这个市场好玩么?我们就来聊聊山寨平板的话题,今天先从SoC (芯片)聊起!
首先,对于山寨平板需要有个定义。业内大多将山寨平板称呼为“白牌机”,意思就是design house(方案设计商)生产,然后可贴牌、可定制,有很多都是共用一种相同的设计或硬件规格。当然,他们都有一个共性的特征,即低价!有的价格便宜到你不敢想象,比如RMB100块多一点。
山寨平板主要采用的芯片大多是价格低廉、技术参数比较保守的第二、第三梯队公司出产的芯片。这个市场的年规模大约在8000万片到1亿片。最著名的几个芯片厂商莫过于Rockchip(瑞星微)以及Allwinner(全智),这两者目前在市场中总共占有超过60%的份额。Rockchip和Allwinner两家各自的份额从今年3月份起一直都保持粘着的态势[1],所以两家也一直在争论“第一名”的称呼。不过从各类数据和Design House应用的情况看,Allwinner还是要比Rockchip稍稍领先。
紧随其后的就是MTK、AMLOGIC、炬力、Telechip、VIA等厂商,这里面不得不提的是MTK。MTK是一家神奇的公司,feature phone (功能机)的时代我们就见证了其化腐朽为神奇的能力了,智能手机上也再次验证了他们反扑的能力,在平板上自然也不在话下。MTK采取是站稳一个市场再主动另一个市场的策略,所以他们在2012年下半年稳住手机市场的时候才开始用心进入平板市场。MTK带来的变化是非常明显的,只用了半年多一点的时间,MTK在山寨平板的份额就直捣第三位!
MTK如此成功的秘密武器就是“3G modem”。相比于MTK,Rockchip以及Allwinner等厂商都没有内置Modem方案。眼下市面上大多数山寨平板多为Wi-Fi的或外挂Modem的方案。MTK的方案的优势自然就显现出来,而且芯片本身的价格差异并不大。尤其在4G以及移动互联网发展的推动下,一台没有3G/4G连接能力的平板基本不再具备竞争力,大部分Design House都已经开始大量采用MTK方案。有些Design House为了不得罪Rockchip以及Allwinner这些目前还有市场统治地位的公司,甚至另开炉灶做MTK方案,很是有意思。这也再次证明MTK的杀伤力!
不过MTK也有烂的地方,最不争气的就是他们的视频解码能力以及图形处理能力,而且是差出好几条街。这给了其他竞争对手机会,不过当MTK修正过来了,其他人就更危险了。而且MTK今年的平板SoC SKU数量会多,所以有理由相信在2014年,MTK的威力会更大。
具体到芯片的规格,主流的基本上都已经是四核了,但双核和单核也有着不小的份额。八核心的从今年开始会逐渐的占据一定的份额,但比重不会太大,因为八核的SoC选择还不多。不同的核心数专攻不同的价位段。芯片的价格基本在$5.x 到$13.x的区间,价格水平与芯片各种参数对应。对内存的支持上,大多为PCDDR,鲜有支持LPDDR的,也就意味着整体会比用LPDDR的更耗电。新的芯片已经开始支持DDR3L,稍微有所改善,不过Memory一如既往的还是没有PoP。
运算性能上,在核心数、频率相同的情况下,其总体性能会是第一梯队厂商的70%~80%。图形性能与第一梯队的差距比较大,主要由于这些芯片商在图形优化上的积累不够或处于成本考虑,基本上是买别人的IP做简单的集成,对应的GPU IP是什么样的性能,出来也就差不多的性能,可能也还有些折损。另外有的片子为了适配高分屏幕,基本显示性能都拉到极限了,即便GPU本身规格强也会表现一般。这个要具体比较,这里不赘述。不过在视频解码上一直是这些SoC的强项,目前大多都支持1080P30/60解码,去年下半年出来的有的已经可以支持4K了。
当然这些SoC不是都卖给平板了。他们将疆土扩大到了机顶盒、各种棒子、车载、小的控制单元、电子书、MP4等各类品类中。最为出名的当属山寨盒子啦,比如AMLOGIC,虽然在平板界表现平平,但在盒子界却呼风唤雨。另外,不要瞧不起这些SoC厂商,虽然与第一梯队还有差距(MTK好一些),但他们敏锐的市场嗅觉以及快速的响应能力是值得任何一家公司学习的,他们让很多买不起iPad、三星的人用上了平板电脑!尤其当中那些表现突出的中国公司,他们的未来有各种可能!
注:本文中的各种数据及信息为从业经验积累,仅供参考。
天猫魔盒遭广电封杀, 小米、荣耀等盒子是否是在劫难逃?
这并非是广电总局首次对盒子市场加以整顿,在电视盒发展巅峰时期,一纸禁令使得所有的电视盒直播功能全部下架,播控平台的限制也让混乱的市场重新被刮分,阿里趁机崛起,通过 YunOS 平台吸引众多的中小品牌,并提供相应的补贴,运行 YunOS 的电视盒子已经占据市场主流,只有小米、华为、乐视等互联网品牌采取自建内容的形式加以对抗。
电视盒子在硬件上其实和安卓智能手机、平板电脑一致,目前主流的方案依然是曾经在国产平板电脑中火热的晶晨、瑞芯微和全志,最终的争夺与硬件关系并不大,取决于内容和平台的竞争。在广电的直播禁令颁发之后,普通用户只能通过第三方软件来实现直播功能,而第三方软件的直播源多取自网页或手机客户端,直播质量参差不齐,而现在的黑名单将使得这些直播软件被全面封杀。
虽然目前只是 YunOS 在进行升级和屏蔽,但小米、乐视等产品最终或也难逃此关,直播应用全面消失已经可以预期。就在不久之前,业内知名的泰捷视频通过升级的形式下架直播功能,而泰捷正是“81 家非法违规第三方应用”之一。没有直播功能的电视盒子已经与电视毫无关系,虽然少数盒子提供轮播和体育赛事等少数直播内容,但已经无法直接通过网络收看电视台节目了。
天猫以及阿里 YunOS 盒子这次升级屏蔽引发网络热议的主要原因在于,除了直播功能被完全屏蔽之外,YunOS 在后台通过技术手段强制屏蔽或删除第三方应用也是一个重点。以小米盒子为代表的安卓盒子在管理上相对宽松,也没有强制升级的传统,不过正因为难以监控未来的命运可能会更艰难。
小米在前不久发布了新一代的小米盒子,在升级的同时取消了内置的 TF 卡槽,虽然还保留了一个 USB 端口,没有封堵按照第三方程序的路径,但这已经预示着用户已经不能对盒子进行太多内容方面的增加或修改了 。
感觉小米、乐视盒子真的是前途未卜了!
国内这种厂家不少,主要分三类。
一类是集成的AP+modem芯片,简单说就是带通讯功能的。代表公司是海思和展讯。这种芯片是用来做手机的,华为最近出的几款高端手机都用了海思的芯片。国内有一半的TD手机都用的展讯的芯片。
一类是纯AP芯片,代表公司是全志和瑞芯。这种芯片是用来做平板的,去年中国5000万台平板里面百分之七十都是这两家的芯片。
一类是带电视功能的AP芯片,代表公司是晶晨。晶晨最大的电视客户应该是创维。
请问目前有哪些电视机顶盒支持4K视频的播放和解码,在android上实现4K的解码的难度有多大?
我准备从需求出发,结合次世代影音技术的一些标准和讲究,探讨一下在目前在选购电视盒子时的一些需要考察的点。文中尽量不涉及具体的品牌和型号,一来是免得误导读者在并没有完全理解的情况下去买不合适的产品,二来完全杜绝给某些产品站台的可能性。如果仅仅是想得到一个“卖哪个”的答案,本文提供不了,但如果你比较讲究,我相信下面这些问题,会给你挑选电视盒子时提供比较有价值的参考信息。
不懂的名词可以查一下百科,都有条目。一些过于常见和基础的概念就没法一一解释了。
以下分条叙述,对于一些人来说不是每一条都需要满足,因为各自的需求不同,但都应该考察。
一 I/O性能
I/O就是指数据的输入和输出啦,也就是盒子对一般数据、文件的传输、存储、加工的能力。
1.CPU、内存当然是越新越快越大越好,“不服跑个分”,很多评测站会把目前最新最热的盒子硬件拿来跑分,反正选速度快、内存大的就没错了。这个不详述。
2.网络接口,如果家里没有很好的有线局域网布线,那就要考虑使用支持802.11ac的无线路由器和盒子,才可能流畅地通过局域网分享4K或蓝光原盘文件播放。
3.USB接口,USB3.0是必须的。
二 视频和音频解码能力
1.视频解码
视频(硬)解码能力和ARM架构的封装有关。考虑到次世代的需求,盒子应该要支持 4K H.265 10bit 的视频解码,最好是同时支持到 60fps。要实现这种规格的视频不降级输出,最好还得有个HDMI 2.0接口,或兼容这种规格的视频信号的接口。而决定你选购支持到什么规格的视频解码能力的瓶颈还是电视机,如果电视机是1080p的,那也没有必要支持4K输出,不过仍然有必要支持H.265、10bit、60fps,因为要保持最大限度的片源兼容性。
2.音频解码
有两个方面。一个是盒子自己解码的能力,解码后输出的是PCM格式的音频流,数字电视或连接的音响都可以播放。一个是盒子将视频文件中的源码解析出后,源码透传给电视机或音响系统进行解码。一般来说能自己解码的格式,也支持透传;能透传的格式,不一定能自己解码。
通过HDMI线,按顺序:盒子<->音响<->电视机进行连接,如果设备都支持ARC(音频回传),那数字音频流传输就能实现。需要注意的是,音响的透传功能需要配合HDMI的版本,也就是说,如果你连接的是4K盒子和电视机,那音响也要支持4K信号。
一般要考虑支持的格式是Dolby Digital和DTS两种蓝光常见格式。而如果你对高清有要求,会发现很多片源已经在采用Dolby TrueHD和DTS-HD Master无损音频格式,那就需要考察盒子是否支持解码,或支持透传(同时你的音响系统要支持解码)。如果音频系统支持解码,当然是优先考虑透传。(2017年11月14日补充:现在已经有许多片源提供 Dolby Atmos 和 DTS:X 音源了,又是两个个需要考察的格式支持。)
3.媒体封装
MKV等常见网络视频封装格式就不说了,能解析出里面的多声道和多字幕也是必须的。更要考察是否支持蓝光原盘的BDMV文件夹或ISO格式。
4.3D
MKV的上下、左右3D或者蓝光原盘的3D,3D转2D的支持情况等。(2017年11月14日补充:如今的 4K 电视机都不支持 3D 了,因此盒子是否支持 3D 不用考虑了)
5. HDR(2017年11月14日补充)
高动态范围是如今许多 4K 电视机的标配,它能提供更高的对比度范围,简单来说就是高光不死白,暗部不死黑。需要相应的片源支持。当然,也需要盒子解码支持。
在不支持 HDR 的电视上播放 HDR 片源,色彩可能会是错误的。一些高端的播放机可以将 HDR 映射到 SDR 上,使得普通的电视机可以支持 HDR 片源(但却不能得到 HDR 的显示效果)。
如果你是 4K 爱好者,HDR 是一定需要考虑的。越来越多的电影采用 4K HDR 格式发行蓝光。
三 控制链路与帧同步
这部分可能是其它文章较少提及的,但会非常影响体验的。特别是当你拥有中高端的电视机/音响的时候,需要特别考虑的,否则高级的电视机和音响就白买了。
1. CEC
CEC是HDMI的设备相互控制协议。各家有各家的叫法,比如索尼家的叫Bravia Sync,其实是同样的玩意儿。只有当盒子、电视机、音响都支持CEC的时候,CEC才会起作用。
CEC有什么作用呢?
不支持CEC的时候,你想从游戏机的信号切换到盒子,你可能需要:1.将电视机切换到音响的HDMI端口;2.将音响的线路切换到盒子的HDMI端口。非常繁琐。关机或者开机,也需要按下多个遥控器。
支持CEC的话,你只需要按一下盒子的开机键,或者在音响上切换到盒子的HDMI,电视机就知道切换到盒子的信号了。关机的话,电视机关机,其它设备都关了。开机的话,哪个设备开机,电视机就会自动开机并切换到它的信号。
如果盒子实在是不支持CEC也没关系,只要盒子不阻挡其它设备的CEC信号使之失效,就可以。有的盒子关机状态会阻挡,开机状态没事,那一直开着也是个解决方案。
2. 1080/24p,4K/24p
24p是什么?高清电视节目,美日是30fps的,中欧是25fps的。高清电影,只要是蓝光发行的,基本上没跑,都是24fps。因此这个能力,是看高清电影体验最优所需要具备的。
我们知道电视机是为观看电视节目设计的。因此电视机一般支持的是25/30/60hz。这样问题就来了,24fps的画面怎么在60hz下展现?这是没法整除的,也无法将24帧画面均匀分配到60帧的信号里。因此敏感的视觉也许会发现,电视机看电影,遇到均匀运动(例如镜头平移)的场景,会感觉到运动不那么流畅、平缓,有顿挫感。
怎么解决?首先电视机的刷新率要能被24整除(120/240/480hz,当然越高越贵啦),并支持1080/24p信号。索尼电视机把这叫做“24帧同步”,其它电视机各有各的叫法。一些电视机的电影模式探测到24帧信号时,会自动切换到24帧模式,保持帧对帧的严格同步,并且调整到电影院的色温模式——这才是真正的影院体验。
因此盒子自身首先要能输出1080/24p信号。很多盒子对此不支持,包括Apple TV。在很多电视机有比较好的帧插补算法的今天,也许不是什么大问题。但总归来说,要获得真正的“电影”体验,24帧同步是必须的。选购盒子的时候,电影发烧友请留意。(我就直接说小米盒子不支持)
四 软件、文件共享协议
1. 操作系统
这个没什么好说的,基本上都是安卓4.0/5.0。需要注意的是不要是不能自由安装第三方软件的某些特殊系统,比方说那啥啥OS。
安卓4.0/5.0的音频输出有比较显著的延迟,据测算30ms+,一般人也很难感觉到了。但是如果你用的音频透传输出,则理论上不受影响。总之版本越高越好。
2. 文件共享协议
如果你用Mac/Linux,支持NFS的盒子是很好的选择。
如果你用Windows,支持Samba的盒子是必备的。
我不喜欢拿着移动硬盘和U盘插盒子播放,太麻烦。电脑上下载好了,盒子上就能播放,多方便。当然你如果用NAS,那就更方便了。
UPNP/DLNA是残疾,不支持外挂字幕是最大的鸡肋。
3. 字幕
小米盒子能自动匹配字幕固然好,但是这并不是必须的。因为自动匹配的字幕未必是合适的字幕,还是要有丰富可配置性才好。
注意考察盒子支持多种格式的外挂字幕和MKV内嵌软字幕,如SRT/ASS/SUB/SUP等。ASS大部分盒子是把特效降级渲染的。
字幕的位置、字体、大小、间距、颜色等属性,只有能让自己调节,才能满足强迫症的需求。
4. UI
太丑的不要
以上就是买电视盒子需要重点考察的一些功能点。别信现在市面上的宣传,只有结合自己的家庭影院设备情况、自己对片源的需求、自己的观影需求,考察到这些宣传材料不会告诉你的东西,才能买到合适的盒子。
如果只是为了买来看在线视频,并不是电影发烧友,那么我讲的很多要考虑的问题,其实也没有那么重要了。因为在线视频现在还没有什么画质可言,片源压缩得也没什么章法可言,没混场重叠就谢天谢地了,还谈什么帧同步啊。
如何成为Android系统工程师?
算是半个系统工程师吧,为什么说半个呢,因为全职做android系统工程师一年多一些,现在已经因为非工作原因换了工作内容。我仅说我自己的情况,不具普遍性。
我是windows平台开发时间比较久,具体说是.NET 以及C,后来因为自己有些电子学基础,对底层比较感兴趣转到android.
我的工作范围从下向上看是AP(应用处理器,区别于基带或者其他比如可信执行环境,TEE)bootloader到核心系统应用比如Settings。具体就是我们自己的深度定制android系统,移植到合作伙伴提供的各种硬件上,我做过的都是ARM和X86的,Amlogic,Allwinner,Intel,Qualcomm等硬件平台。把厂商参考设计里面的驱动以及配置文件移植成客户生产时用的硬件自己配置 ,在对方厂商的支持下,让原生的android系统能在别人的硬件上正常工作。这是第一步,有时对方做了,我们免了。然后就要在这个基础上移植合并我们的android定制代码。这时就要对android源码结构有所了解,还要针对性的对厂商代码结构有所了解,比如按照我个人的喜好来看,MTK的代码最难搞,Allwinner的代码质量不稳定支持工具不完善,amlogic的还好,做的比较多的amlogic s905起码还有个TEE什么的,烧写工具在ubuntu的win虚拟机里用的不错,实在没找到linux下的烧写工具,高通的代码搞起来最舒服,intel的byt cht平台因为都是基于UEFI的,BIOS没问题一般都能起来,BIOS有问题也不是我的锅,所以较为轻松。
我目前来讲还没遇到过在一个硬件平台上从零开始bootloader bringup,那都是硬件厂商的人做的事情。硬件平台厂商一般都给参考设计和代码。
我的工作大多情况是修改,增强原有功能,新增部分功能。比如在bootloader里增加一键还原功能,改动gpio口,如果平台做的好,有TEE的也要跟着改。Recovery里定制一些特殊功能。linux内核我仅限于会配置,会编译,会跨版本抄驱动,看log。如果log找不到原因,那么工作就要交给专业的内核开发人员。
因为我主要从事移植工作,这个岗位需要每个方面都要会一点,可能不需要精通,但都要了解。毕竟从下到上走一遍涉及汇编,c,c++,java,内核,android的构建系统,持续集成系统的支持等。我本身技术方面就杂而不精,所以在这个岗位干的不错,自己喜欢,同时也确实给公司做了事情,移植的速度和首次启动到luncher后的bug数量基本得到认可。
总结起来也就是知道的方面多一些,平时储备下,没事看看aosp android的代码,也要看各个厂商平台代码~有的厂商会把android改的面目全非(对用户来讲没区别,但代码已飞了),需要的时候要快速定位问题出在大概哪个目录的什么代码或者配置文件。同时也要了解平台特定的一些特殊功能,比如mtk特有的快速启动功能搞了我若干次……重点要了解android的构建系统。暂时就想到这些。