安卓开发学习难吗难吗?

学什么专业好
学安卓开发前景好吗?学安卓开发好找工作吗?
来源:4G梦工场 &&&编辑:Anonymous &&&时间: &&&点击数:
  学安卓开发前景好吗?学安卓开发好找工作吗?  谷歌于2005年并购了成立仅22个月的高科技企业安卓,展开了短信、手机检索、定位等业务,基于Linux的通用平台进入了开发。  据2013年2月数据,安卓占据全球智能手机操作系统市场62.5%的份额,中国市场占有率为78.4%。目前已超过80%。目前企业对这类应用软件的安卓开发人才占总需求的72%。  移动互联网市场快速增长,使得人才匮乏的现状捉襟见肘。“目前,在行业内具有1-3年工作经验的安卓工程师是猎头的重点关注对象,如果具有重大的项目经验,年薪能够达到15万元以上。  学安卓开发前景好吗?学安卓开发好找工作吗?  如果你对安卓开发有一定的兴趣与了解,有志于从事安卓开发行业的人员,那就加入我们吧,4G梦工场致力于为中国软件开发企业人才实训与招聘服务。未来的日子,我们还将继续深耕软件开发行业,坚持不懈为中国软件行业培养更多优秀人才。
校址:湖北武汉市广埠屯资讯广场B座7楼(华中师范大学北门教学区) 人才招生热线:027-
鄂ICP备号-1
&  武汉四维创意教育科技有限公司 版权所有 禁止复制*禁止镜像本站页面设计新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
UID7944836空间积分1 积分34337阅读权限200帖子精华可用积分34337 信誉积分10350 专家积分5 在线时间22091 小时注册时间最后登录
帖子主题精华可用积分34337 信誉积分10350 专家积分5 在线时间22091 小时注册时间最后登录
认证徽章论坛徽章:44
获奖名单已公布,详情请看:
Android底层是基于Linux内核的,因此要基于Android开发智能手机或终端,就少不了Linux内核与底层驱动的开发。据了解,这方面的开发人员目前还很缺乏,其中一个重要的原因就是Linux是一个与Windows一样复杂的软件系统,要理解它,本身不是一件容易的事。但是从另外一个角度来看,对于驱动开发来说,设备模型的理解是根本,毫不夸张得说,理解了设备模型,再去看那些五花八门的驱动程序,你会发现自己站在了另一个高度。
本期话题:
1、您的Linux驱动开发的经验之谈
2、传统的Linux驱动开发和Android驱动开发有何区别,如何转为后者?
活动时间:
日-5月12日
本期嘉宾:
《Android驱动开发权威指南》图书作者:杨柳,社区ID为hongduna
嵌入式开发版斑竹:daniel_kohler
活动奖品:
最佳讨论奖:奖励《Android驱动开发权威指南》一本,共6名
奖品信息:
Android驱动开发权威指南 &&
作者: 杨柳& &
出版社:机械工业出版社
上架时间:
出版日期:2014 年3月
开本:16开
活动要求:
1、 要言之有物,不能低于20个字。
2、 本次话题主要关注Linux和Android设备驱动开发的讨论,其他问题可能不做重点
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
UID802608空间积分0 积分2747阅读权限50帖子精华可用积分2747 信誉积分1577 专家积分0 在线时间1218 小时注册时间最后登录
小富即安, 积分 2747, 距离下一级还需 2253 积分
帖子主题精华可用积分2747 信誉积分1577 专家积分0 在线时间1218 小时注册时间最后登录
认证徽章论坛徽章:11
路过,支持.............
多读书,少看电影
UID空间积分0 积分1314阅读权限30帖子精华可用积分1314 信誉积分2173 专家积分0 在线时间2117 小时注册时间最后登录
家境小康, 积分 1314, 距离下一级还需 686 积分
帖子主题精华可用积分1314 信誉积分2173 专家积分0 在线时间2117 小时注册时间最后登录
认证徽章论坛徽章:6
个人理解linux设备驱动主要就是熟悉linux内核api,多看相关的设备驱动,然后模仿学习。
设备驱动涉及到内核这个大“进程”,所以对里面的共享访问,互斥,多cpu要能理解。
android没有接触过。。不熟悉
UID空间积分0 积分175阅读权限10帖子精华可用积分183 信誉积分327 专家积分0 在线时间115 小时注册时间最后登录
白手起家, 积分 175, 距离下一级还需 25 积分
帖子主题精华可用积分183 信誉积分327 专家积分0 在线时间115 小时注册时间最后登录
论坛徽章:0
支持, 还没学过andriod,linux的驱动倒是研究过。
炼狱中的菜鸟
UID空间积分0 积分33阅读权限10帖子精华可用积分37 信誉积分87 专家积分0 在线时间41 小时注册时间最后登录
白手起家, 积分 33, 距离下一级还需 167 积分
帖子主题精华可用积分37 信誉积分87 专家积分0 在线时间41 小时注册时间最后登录
论坛徽章:0
1、您的Linux驱动开发的经验之谈
粗略看完《linux device driver》the third editon、宋宝华《linux设备驱动开发详解》、宋宝华《精通linux设备驱动程序开发》。觉的设备模型是重点,理清设备模型,就会发现驱动均有其规律可遵循。然后就是实际工作中主要用到磁盘的盘符驱动。
2、传统的Linux驱动开发和Android驱动开发有何区别,如何转为后者?
android内核本身就是linux内核发展来,android也有自有的一些驱动类型,但是有linux驱动基础,就不难理解android驱动。
希望能申请到这本书籍啊,
UID空间积分0 积分303阅读权限20帖子精华可用积分303 信誉积分624 专家积分0 在线时间141 小时注册时间最后登录
稍有积蓄, 积分 303, 距离下一级还需 197 积分
帖子主题精华可用积分303 信誉积分624 专家积分0 在线时间141 小时注册时间最后登录
论坛徽章:7
1、您的Linux驱动开发的经验之谈
& & 做Linux驱动,我个人觉得首先得了解,熟悉驱动模型,总线,进程调度等相关内容,这个是硬伤,理论知识丰富了,进而学习linux 里面牛人的写的驱动。
这样就比较容易了。
2、传统的Linux驱动开发和Android驱动开发有何区别,如何转为后者?
& & Linux驱动开发和Android驱动开发,我觉得本质都是一样的。而且相似度非常高。
如果要转为Android驱动,我觉得可以先了解下Linux驱动与Android驱动的不同,而且转后上手还是非常快的。
UID空间积分0 积分8265阅读权限100帖子精华可用积分8265 信誉积分2543 专家积分35 在线时间4866 小时注册时间最后登录
帖子主题精华可用积分8265 信誉积分2543 专家积分35 在线时间4866 小时注册时间最后登录
认证徽章论坛徽章:4
本帖最后由 T-Bagwell 于
21:13 编辑
1、您的Linux驱动开发的经验之谈
Linux驱动开发,其实吧东西并不是特别多,主要就是了解设备模型,驱动模型,以及能看懂datasheet,看懂原理图,基本可以上手
一般是先上电,在根据datasheet去设置时钟,中断等,相关的操作在IC手册中都已经有很好的描述了
Linux已经将框架都写好了,照着原有的框架套用就可以了。
2、传统的Linux驱动开发和Android驱动开发有何区别,如何转为后者?
传统的Linux驱动开发和Android驱动开发,其实Linux部分我感觉没啥区别,现在好多android下的优势的东西都已经可以在pc上用了,例如PM之类的。
Android驱动开发在Linux部分差别不大,但是在HAL部分可能就稍显明显了,例如camera驱动开发,一般是在HAL和Driver之间,有一个vendor部分,vendor部分其实可以理解为pc下面直接操作/dev/下面的设备节点的东西,camera部分的isp3a方面的操作一般是在这里面操作。其实好多关键的东西都在这里面;
有些硬件平台有点差别,例如异构的平台,有modem部分系统和Linux部分系统,好多纯粹的硬件操作都是在modem系统部分操作了,Linux只是通过rpc从对应的内存空间取数据就可以了。
总结,Android设备驱动开发与传统Linux设备驱动开发,差别不大,很好上手,做过了就知道了
招聘大量多媒体开发,网络程序开发人员,有意私信
UID空间积分0 积分20阅读权限10帖子精华可用积分20 信誉积分26 专家积分0 在线时间1 小时注册时间最后登录
白手起家, 积分 20, 距离下一级还需 180 积分
帖子主题精华可用积分20 信誉积分26 专家积分0 在线时间1 小时注册时间最后登录
论坛徽章:0
版主是正解。Android实际上是Linux OS上的一个衍生品。其驱动与Linux驱动有许多相通之处。从源头看看,导致Android驱动与PC上Linux驱动相异的主要有2个:一是Android是嵌入式系统,与PC 台式机系统不同;二是Android OS在Linux内核之上遵循Apache License。其中源头二就使得Android OS在Linux内核之上,引入了HAL 层,以支持各设备驱动厂商与开发者的商业利益。而源头一则使得在Android系统中,只会选择会用到的设备驱动程序,而不像电脑pc中会有过多的冗余,因为Android作为一个便携式移动终端,其上运行的设备,在出厂前基本固定死,而不用像PC那样要支持太多的设备扩展性。
另外正如T-BagWell所述,Androd的由于运用场景不一样,可能更多地会偏重于GPS、GSensor等便携式的感应器,这些对于PC Linux是不适合的。当然,对于一个底层驱动的工程师来讲,本质区别不大,但在向上层提供服务的实时性上应有更多考量。
同时,Android作为一个实时性OS,还定制了一些独有的驱动,比如Binder等,以实现轻量级的进程间通信,以支撑C/S应用架构的快速响应。这些都是Android系统引以为豪的。
同时, Android驱动也是门实践性很强的技术,有了Linux驱动开发经验肯定会方便许多;有机会大家可以也动手开发下Android类的驱动,并着手为自己所编写的驱动编写相应的服务,相信大家一定会感触更多。学过COM的甚至可能体会到分布式计算思想也融入其中,深入些的可能也就会体会到Android的架构之美和Google的野望^_^
UID空间积分0 积分200阅读权限20帖子精华可用积分200 信誉积分516 专家积分0 在线时间83 小时注册时间最后登录
稍有积蓄, 积分 200, 距离下一级还需 300 积分
帖子主题精华可用积分200 信誉积分516 专家积分0 在线时间83 小时注册时间最后登录
论坛徽章:2
1、您的Linux驱动开发的经验之谈
明确基本概念:系统调用——应用程序OS内核之间的接口;设备驱动——OS内核和底层硬件之间的接口。
设备驱动封装了硬件的细节,应用程序可以像操作普通文件那样操作硬件设备。设备驱动要完成如下功能:
1)设备的初始化和关闭
2)从内核向设备文件双向传输数据
3)检测和处理设备可能出现的错误
Linux系统有三类设备文件类型:字符设备、块设备和网络设备。字符设备跟硬件I/O相关;块设备会操作系统内存;网络设备跟通信相关。这在设备文件的文件属性中注明。
每个文件都有两个设备号:一是主设备号,它标识驱动程序;二是从设备号,它标识同一设备驱动程序的不同硬件设备。
Linux设备驱动开发和传统应用程序的开发有很大不同,以至于两者的经验无法相互借用。
Linux设备驱动开发工作于内核态。
Linux设备驱动开发必备的技能有:良好的C语言功底;熟悉硬件;熟悉Linux内核源码;精通多任务设计。
通常使用GNU C来开发驱动程序。
Linux设备驱动开发要注意,程序是没有内存保护机制的,而且内核栈非常小。
2、传统的Linux驱动开发和Android驱动开发有何区别,如何转为后者?
Android是Linux OS的衍生版,两者有很多共通之处。两者的区别在于:
1)Android引入了一个硬件抽象层HAL
HAL是Linux内核驱动程序的封装,向上提供接口,屏蔽了底层的实现细节。
HAL运行于用户空间,而内核驱动程序运行于内核空间。
内核驱动层指提供简单的硬件访问逻辑,复杂的功能都放在HAL了。
2)Android应用是Java程序,它通过JNI访问C程序提供的硬件访问服务。
基本上来说,Android驱动开发有如下的步骤:
一是在Android内核源码中编写硬件驱动程序;
二是在Android系统中填写C语言可执行程序,它用于访问硬件驱动程序;
三是在Android的HAL添加接口模块访问硬件驱动程序;
四是在Android系统中编写JNI方法,为应用程序框架层提供Java访问硬件的接口;
五是为Android系统的应用程序框架层添加硬件服务接口;
六是用Java开发Android应用程序,调用JNI访问硬件服务,验证接口是否OK。
3)Linux内核驱动是开源的,Android驱动是闭源的。
Linux驱动开发转向Android驱动开发是很容易的,原理相通,Android驱动开发显得复杂了一点,但没有质的差异。而且Android驱动的闭源给广大驱动开发程序员带来了更多的就业机会。
UID空间积分0 积分7阅读权限10帖子精华可用积分7 信誉积分327 专家积分0 在线时间123 小时注册时间最后登录
白手起家, 积分 7, 距离下一级还需 193 积分
帖子主题精华可用积分7 信誉积分327 专家积分0 在线时间123 小时注册时间最后登录
论坛徽章:0
1、您的Linux驱动开发的经验之谈
& &&&就Linux驱动开发而言,大家通常讲只要了解设备模型就能比较好的理解设备驱动。话虽如此,但是如果仅仅是这样,要想开发驱动程序可能也不太现实。个人觉得更多的内核机制是必不可少的。比如内存管理、线程管理、文件系统。 而其他一些小机制也必须掌握, 中断、链表、队列、定时器……等等。毕竟做驱动开发,不是说往系统里面注册了这个设备就完事了,更重要的是要完成设备所做的工作。
& &&&在开发的过程中,多看别人的驱动程序是必不可少的,也是学习的捷径;
& &&&所谓磨刀不误砍柴功,花点时间学习调试的方法和相关的工具也是有必要的。
& &&&检验驱动完善与否的唯一途径就是测试, 所以,一个优秀的开发人员,必定是一个优秀的测试工程师。
2、传统的Linux驱动开发和Android驱动开发有何区别,如何转为后者?
& &&&Linux驱动 主要是针对Linux操作系统,兼容性是其一个比较重要的评价标准;而且Linux 版本如此众多,Linux系统厂商也很多,就主流的 ubuntu、redhat、fedroa等也都有各自的差异,所以能开发一款通用性高的驱动程序也是Linux驱动开发工程师面临的难题;& & 而Android的驱动程序虽然基于LINux内核,但是内核版本通常固定,而且主要针对某一固定终端设备,所以只要在该终端上没有问题就可以了, 也正因为如此,android 驱动开发工程师需要开发的驱动会比较多,而不像PC linux 驱动那样,专注于某一个设备的驱动。
& &&&关于如何转换,我觉得必要的硬件知识是需要的;另外就是要善于利用网络资源。
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处一个人开发安卓难吗?_百度知道
一个人开发安卓难吗?
我有旦紶测咳爻纠诧穴超膜2年多的大学JAVA经验以及一点其他语言比如C和C++的经验,但一丁点安卓开发的经验都没有。最近想用安卓编一些东西,比如游戏或者应用什么的。一个人4个月内能做出个游戏或者应用吗?做游戏的时候那些美工怎么办?是只能自己找人做吗?
提问者采纳
一个人要想做像样的东西的确旦紶测咳爻纠诧穴超膜比较难,如果只是学习做做小东西倒也没有什么,你有java经验,安卓基于java学起来你会轻松很多。想做游戏你又没有安卓经验估计一个人在几个月的时间还是很有难度的。
提问者评价
来自团队:
其他类似问题
1人觉得有用
为您推荐:
其他6条回答
ANDRIOD开发说难不难说简单也不简单,看你JAVA学习的怎么样了,你JAVA基础如果特别扎实的话旦紶测咳爻纠诧穴超膜问题不大图片你可以截图啊网上顺眼的图自己截下来就可以
这个东西看你自己悟性了,不过一个人的思维毕竟有限,还是多多交流最好!
自学对于不同的人有不同的收获,关键要看自己的自律性了。自学的技术要看你自己是否着急上手,自学速度慢点,容易绕弯子。着急的可以找个人带带,上手快点。android开发设备:最好4G内存PC机操作系统:XP或VistaAndroid操作系统2.1 或2.2测试机:可以是motorola或乐phone或HTC北航巫老师不错。望采纳,谢谢
难 岂止是难
比登天还难
谷歌投资了多少亿花了近十年才开发出来的 你觉得一个人 你能完成吗
除非你是超级天才
肯定要有团队!!!一个人真的。。。
很难,至少需要一个十几人的团队
安卓的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁android开发,有那么难吗?
昨天,一位移动互联网人士说,现在android程序员工资很高,刚毕业的就要1万,而且开发很难、很有技术含量。这让我这70后的、从dos下汇编开始写程序的我有点“汗颜”,当年我用汇编和C写绘图程序,感觉也没有那么高深。是现在技术太先进还是现在的人太浮躁?为此,我做了尝试。从零开始,花了1个小时学习了一下android的框架,然后写了一个小android程序,并且在平板上正常运行。写这样的程序和写dos下的、windows下的、unix下的客户端程序没什么本质区别,而且更简单了。
这让我联想起1998年中国互联网第一波泡沫的时候,制作一个静态网页要1000元,能把word文档另存为html的人可以拿到8000工资,别忘了,当时还在写汇编、写C和底层的我还只有1500的工资。
为此,作出一个初步判断:
1、现在的移动互联网太浮躁,看来已经要退潮了。
2、现在的IT年轻人太浮躁、太自满又受不了打击
3、IT将因为电商、移动互联泡沫带来的人力成本上涨而出现衰退。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。看sdk文档蛮好的,网站的话,不一定要固定吧,csdn上有几个大牛的博客可以订阅一下,其他的Google吧!
Android开发者门户
如果对Java熟悉,只是不太熟悉Android的API的话,最好的途径是找几个开源的App直接对照SDK文档看源码。
CSDN移动问答:
国内的话推荐Eoe,英文好的话上国外XDA论坛,其实看Android的官方开发文档就够你研究了
我自己通过在网络上学习,Mars老师的和老罗(不是那个锤子老罗)老师的视频教程自学的,目前我找到最好的这两个,其他人有的话请推荐!
可以在(视频教程)或,或百度都可以找到。
更详细的可以跟帖
安卓巴士,eoe。这两个是国内的网站,都不错。
写一下我自己常上的几个网站吧。
1. mars论坛。以前是mars个人博客,后来改成论坛,有很多视频非常适合初学者入门,什么安装环境,sdk,各种烦人的东西在视频中都有说明。(初学者入门)
2.其次是eoe移动开发者社区,资料非常多,有什么不懂得发个贴也有很多人回答。(初级,中级)
3.再就是csdn了,牛人非常多,可订阅一些大牛的博客看看,可我总觉的太高端反而很少上去看。。(好吧,其实是我水平不行XD)
以上非常适合初学者,主要是有良好的新手引导过程。即使对更加高级的Android设计也有涉及。。所以强烈推荐。
不要忘了官方开发文档。。没事查查看。
当然,买一两本Android书籍搭配着学习也不错哦。。比如eoe社区自己整理发行的《Android入门与实践》(我不是发广告的。。。)
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

我要回帖

更多关于 安卓开发学习难吗 的文章

 

随机推荐