手都写酸了,打开几千个窗口,整理这份Android高级工程师系统进阶学习秘法!

一、关于Android

2016年年底时,市场上Android的招聘需求大量减少,当然这时候有一批相应的创业公司已经衰退,对应培训市场上已经不再把Android开发作为热门核心的培训科目,到现在创业也不用一开始就做一个App就可以开始了,现在越来越讲究精益创业,刚开始推崇最小化可行产品。

现在越来越讲究效益和成本,比如现在只需一个小程序,一个微信公众号,一个视频,一个微信群或者QQ群,甚至只需要经营你的朋友圈就可以开始你的初期创业想法。

当然一些新技术的不断更新与迭代,新技术的层出不穷让我们本身对Android开发水平还没有达到理想状态时已经产生各种焦虑和担忧,比如前段时间快应用的出现,今年小程序的火爆,各种混合开发,跨平台开发已经让我们学习跟不上脚步,就算我们在Android原生开发中也出现各种框架,各种开源库,以及各种大型项目的构建技术和细分领域的技术比如NDK,音视频、逆向技术、图像技术等等已经让我们应接不暇。

二、学习Android有前途么?

Android的发展已经很成熟了,所以有很多朋友在关注 Android这个市场是否还有发展的时候,也总是会有这样的疑问。回答这个问题,有几个关键点:

第一、这个市场是否足够大(或者能发展到足够大), 这点我相信大家对于移动设备的现状有足够的了解,对其未来的发展不会有什么异议;

其次是你所从事的领域是否处于上升通道上? 身处一个上升的通道,个人只要付出一定的努力,这个行业都会带着你往上走,相反,如果处于一个没落的行业,个人再努力,可能都赶不上整个行业坠落的速度。Android这几年的发展可谓有目共睹,就像前面所说,每天的设备激活数目就达到了50万台;

其三,是否有足够多的大公司参与其中,或者是否成就了一些公司。 行业的发展,离不开业内大公司的支持,或者,是否有公司在该领域得到了长足的发展。处于这个行业的大公司,除了Google本身外,也成就了一些公司,例如Motorola移动、HTC,前者借Android咸鱼翻身,后者借Android成了市值超越Nokia的公司。行业的发展如此红火,那么作为开发者,是否可以从中获益呢?

三、目前国内Android开发行业市场现状如何?

目前国内的Android开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通用应用(放到Android Market或者其他App Market销售)以及游戏开发(放到Android Market或者其他App Market销售)。

第一类开发者一般身处规模较大的公司, 这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。

第二类开发者,一般处于创业型公司或者是独立开发者, 他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。

**第三类开发者,目前和第二类开发者类似。**下图是开发者提交的应用和游戏的数目所占的比例图,从中也可以看出应用开发数目远超游戏开发。

四、什么样的人可以学Android?

相对于其他移动开发平台,因为Android的(应用)开发采用了Java语言,所以,它的学习曲线相对比较平缓。对于那些有一些编程语言(如C/C++/Java等)训练的学生,都可以考虑学习Android应用开发。当然,如果你希望从事Android游戏开发,那么,最好能在高数、离散数学甚至计算机图形学等方面有比较扎实的基础。如果后续想往底层开发如系统移植、驱动开发等方向发展,或者为了更好地理解Android 应用架构体系,那么,具备一定的操作系统知识是必要的,当然,并不需要你对操作系统有多精通,而是对其基本原理有一定了解即可。

五、如何系统学习Android开发?

Android的体系架构图,自上而下分别为应用层、应用框架、类库和Alvik运行时环境以及Linux内核。 一般来说,我们想从事Android开发,可以从应用开发作为切入点,逐渐熟悉其整个体系,并慢慢往其底层渗透,从而能做到软硬兼备,从学习的路线图上来说,先熟悉Java SE编程,能比较熟练的使用Java语言进行编程,熟悉Java语言语法特点,熟悉Java IO、Java线程、网络编程、XML处理等。

另外,因为很多的Android应用在运行时都需要去访问网站服务器,因此,熟悉一种网络编程语言也是必要的。无论是从学习的方便性还是市场占有情况来说,使用JSP/Servlet都是不二的选择,另外,在这个阶段也顺便学习一下SQL语法和熟悉一种SQL数据库,以方便后续Android开发中进行SQLite数据库开发。

学习完这些知识后,就可以开始进行Android的应用开发的学习,例如Android中的UI组件、基本组件、数据存储、传感器、图形图像处理、多媒体处理、游戏开发等。为了更好地进行应用编程,可以有选择的对其Lib类库进行分析,以加深对其工作机制的理解。再往下,就是操作系统层级了,这里应该要对Linux操作系统进行学习,熟悉其内核和运行原理,熟悉ARM体系架构以及常用指令,并熟悉驱动的编写方式,掌握其移植方法等。

思维脑图放下面了,需要系统学习进阶的可以查看我的【GitHub】获取一下!


GitHub里仅限于提供知识点,如果你正在找工作,建议逐个过一遍,不懂的可以群里提问讨论, 需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。

自行学习交流直达链接:【点击获取
系统学习笔记分享

希望我这些面试总结可以帮助还没有找到工作的伙伴们,传递一份温暖~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值