Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26823
  • 博文数量: 33
  • 博客积分: 805
  • 博客等级: 军士长
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 09:50
文章分类
文章存档

2011年(33)

我的朋友
最近访客

分类: 嵌入式

2011-05-27 21:22:45

Android人才严重短缺--IASN·爱朔科技

AndroidiOS都是用户喜欢的操作系统,Android 是用于移动设备的软件堆栈,包括操作系统、中间件和关键应用程序。Android SDK 提供了必需的工具和 API,用于开始开发在 Android 驱动的设备上运行的应用程序。

Android一词的本义指“”,同时也是Google2007115日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 GingerbreadAndroid 3.0 Honeycomb

Android是基于内核的,是公司在2007115日公布的手机操作系统。

早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续进行对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用则由各公司自行开发,部分程序以Java编写。

2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在市场急速扩张。采用Android系统主要厂商包括美国摩托罗拉,SE等,另外还有中国大陆厂商如:华为、中兴、联想等。

AndroidLinux为核心的Android行动平台,使用作为编程语言,使到功能,都有层出不穷的变化,其中Activity等同于J2MEMIDlet,一个Activity类别(class)负责建立视窗(window),一个活动中的Activity就是在foreground(前景)模式,背景执行的程序叫做Service。两者之间透过由ServiceConnectionAIDL连结,达到複数程序同时执行的效果。如果执行中的Activity全部画面被其他Activity取代时,该Activity便被停止(stopped),甚至被系统清除(kill)。

View等同于J2MEDisplayable,程式人员可以透过View类别与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用View打造出所谓的Widgets,其实Widget只是View的一种,所以可以使用xml来设计layoutAndroid Hero手机即含有大量的widget。至于ViewGroup是各种layout的基础抽象类别(abstract class),ViewGroup之内还可以有ViewGroupView的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity中,要通过findViewById()来从XML中取得ViewAndroidView类的显示很大程度上是从XML中读取的。View与事件(event)息息相关,两者之间透过Listener结合在一起,每一个View都可以注册一个event listener,例如:当View要处理使用者触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2MEBitMap

中介软件

作业系统与应用程式的沟通桥樑,并用分为两层:层(Library)和Virtual Machine)。 Android改良libc的版本。Android同时包含了,所谓的Webkit就是Apple Safari浏览器背后的引擎。Surface flinger是就2D3D的内容显示到萤幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc

Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayerPVAuthorCodecPacketVideo Multimedia Framework(PVMF)Operating System Compatibility Library(OSCL)CommonOpenMAX

Android使用skia为核心图形引擎,搭配OpenGL/ESskiaLinux Cairo功能相当,但相较于Linux Cairo, skia功能还只是阳春型的。2005Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia也是Google Chrome的图形引擎。

Android的多媒体资料库采用资料库系统。资料库又分为共用资料库及私用资料库。使用者可透过ContentResolver类别(Column)取得共用资料库。

Android的中间层多以Java实作,并且采用特殊的Dalvik Virtual Machine)。Dalvik虚拟机器是一种“暂存器型态”(Register Based)的Java虚拟机器,变数皆存放于中,虚拟机器的指令相对减少。

Dalvik虚拟机器可以有多个实例(instance),每个Android应用程式都用一个自属的Dalvik虚拟机器来执行,让系统在执行程式时可达到最佳化。Dalvik虚拟机器并非执行Java字节码(Bytecode),而是执行一种称为.dex格式的档案。

硬体抽像层 (Hardware Abstraction Layer)

AndroidHAL(硬体抽像层)是能以封闭源码形式提供硬体驱动模组。HAL的目的是为了把Android frameworkLinux kernel隔开,让Android不至过度依赖Linux kernel,以达成kernel independent的概念,也让Android framework的开发能在不考量驱动程式实作的前提下进行发展。

HAL stub是一种代理人(proxy)的概念,stub是以*.so档的形式存在。StubHAL“提供”操作函数(operations),并由Android runtimeHAL取得stuboperations,再callback这些操作函数。HAL里包含了许多的stub(代理人)。Runtime只要说明“类型”,即module ID,就可以取得操作函数。

程式语言

Android是执行于之上,但并不是。因为在一般GNU/Linux裏支持的功能,Android大都没有支援,包括等都被移除掉了。Android又以bionic取代Glibc、以Skia取代Cairo、再以opencore取代FFmpeg等等。Android为了达到商业应用,必须移除被授权证所约束的部份,例如Android将驱动程式移到userspace,使得Linux driverLinux kernel彻底分开。bionic/libc/kernel/ 并非标準的kernel header filesAndroidkernel header是利用工具由Linux kernel header所产生的,这样做是为了保留常数、资料结构与巨集。

目前AndroidLinux kernel控制包括安全(Security),Memory Managemeat),Process Management),Network Stack),Driver Model)等。下载Android源码之前,先要安装其构建工具来初始化源码。RepoAndroid用来辅助工作的一个工具。

近日,采用系统的 、平板电脑产品呈现井喷的现象。最新数据显示,以苹果iOS(iPhoneiPad采用的系统)Android为代表的智能终端,在市场上占有率达九成以上。五一前夕,国内某大型连锁3C卖场巨头甚至传出全面停售非智能手机的消息,这意味着继冲击波后,一场智能革命正铺天盖地而来。

各家谷歌智能终端生产、研发的大本营深圳,Android平台人才的稀缺性问题日益凸显,一些培训机构的学员起薪更高达5000元以上,如今Android已成了IT业界的高薪领域。不过,有业内人士指出,推出培训项目需要大量 的技术储备,对培训机构是一项严峻考验,对人才来说,进入Android领域也并非那么容易。

机构推培训门槛高

尽管Android人才需求强盛,不过,目前华为、中兴等大型企业招聘Android人才,往往都是采用自己培养模式,而少有培训机构涉足。而一些缺乏培养能力的中小型Android开发商、终端方案公司则经常一将难求,人才争夺异常激烈。据了解,目前一名最普通的工程师,薪水以 每年10%-15%的速度增长,被猎头挖角跳槽薪水翻番的更不在少数。

但是,让人不能理解的是,既然供求关系如此紧张,为何IT培训行业对Android培训这块肥肉却无动于衷?南都记者通过多方了解发现,事实上,Android培训基本上是被融入到传统的IT培 训课程中,许多机构都把Android当成了主要课程的延续学习部分,而且这部分的培训时间一般不长,8-16个学时,属于简单的介绍课程。

“Android的推出,对界来说太突然了,大家都没有时间准备。最早推出Android培训的IT培训学校校长指出,Android诞生不过3年左右,与传统IT培训网络“”等内容相比,可以说是全新的。

同时,Android平台的技术含量较高,企业人才培养周期比较长,现在不少开发企业的经验人才储备几乎为零,而对培训机构来说,师资更是一个很大的挑战。有业内人士透露,可以充当讲师的优秀Android工程师,在开发企业月薪高达2万元以上,远高于深圳普通培训机构讲师的水平,缺乏人才的培训机 构,又如何培养人才呢

Android专家认为:除了人才,还有两个原因,一是技术储备,二是课程体系开发。据介绍,就是从Linux的嵌入式系统发展而来的,前端实现则依靠Java,而传统的培训机构在两者上一般都是井水不犯河水。再次,建立一套完善的课 程体系也是巨大的工程,而Android推出才3年,培训机构还没足够时间去研发课程,所以大家都不敢轻易涉足Android”

南山一家Android开发企业负责人汪俊表示:是一个复合型的平台,对人才的要求很高,既要懂Linux内核又要懂Java前台。而且Android融入大量非常新颖的开发理念,对传统人才的知识结构更新是一种挑战。

IT培训机构负责人坦言,对学员来说,掌握Android技术必须要精通C语言,此后才能继续学习Android应用开发。但是 Linux部分,对于高校毕业生来说,都不一定掌握得牢固。而Linux基础扎实的毕业生,他们本身就可以找一份理想的工作,因此Android培训的吸引力有限。

据了解,目前培养一名合格的Android才人,即使在大学计算机本科学历的基础上培养,时间也要长达6个月之久。冯云川表示:现在高校IT教育最大的问题是与新技术脱节,而培训机构所做的应该是把脱节的部分连接起来。

事实上,要掌握Android技术,除了,还要有C语言以及Java,这意味着学员要精通3门语言,培训难度以及强度显然非常大。冯云川透露:尽管我们课程是同时针对大学毕业生与零基础学员,但是后者在真正进入Android培训时,我们都需要为他们提供免费的预科课程,学习、巩固 Linux等知识。

但反过来看,汪俊表示:“Android对搞技术的人来说是一种很好的磨练。掌握Android意味着掌握了系统、应用开发等技能,就业面会比传统更广。同时,他透露,普通程序员在深圳,平均薪酬水平大概在3000多元,Android 程序员起薪在5000元左右,就业单位集中在手机厂家、方案商、应用开发企业等,尽管这类企业规模不大,但是盈利情况十分理性

有业内人士估算,按现在深圳涉及Android系统的企业数量、发展速度,仅每年人才缺口可能就高达2万人以上。现在不仅手机、平板电脑企业有大量人才 缺口,而且康佳、创维、T C L等彩电企业也在开发基于Android系统的智能电视,Android已成为3C数码电子产品的大潮流,所以该领域 人才的前景应该很乐观。

技术为王“UI”人才是方向

Android人才需要具备哪些素质?汪俊指出,除了刚才提到的几个方面外,不管进入手机、平板电脑,还是其他智能消费电子的领域,都需要大量相应行业知识,因为每个行业都有特定的技术标准、技术协议。

过去,在IT行业普遍认为,会技术懂管理的人才最吃香,因为行业中,缺乏的不是代码员,而是直接带领代码员们完成任务的管理者,比如项目小组长、项目经理等,尽管级别不高,但他们薪酬往往是基层的数倍。不过,冯云川认为,Android开发企业都是刚起步,不像传统IT企业,一个团队的人数 就成百上千计,需要大量管理人才。所以现阶段,Android人才的技术过硬才是最重要的。

另外,Android专家指出,对Android人才来说,创意与技术具有同等地位。其实开发一款或游戏,技术上并不困难,但是要开发一款受欢 迎应用,却要创意。比如大热门游戏《植物大战僵尸》、《愤怒的小鸟》等,都是创意的体现。同时,汪俊认为,懂得美工、UI(界面设计)也是必须的,因为Android带来的不仅是技术革命,还有用户体验上的大幅提高,而用户体验离不开一个精美界面、合理UI设计。

来自于IASN·爱朔科技

 
阅读(393) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~