您好,欢迎访问代理记账网站
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

剖析Android开发未来的出路在哪里,一篇文章帮你解答

前言

在这个网络发展快速的时代,我想问为什么你选择做程序员?有人说因为不善交际,也有人说最火的行业互联网,最好的职业程序员。确实在这个繁荣的行业,只要你自己不下船技术不水,就可以衣食无忧,努力努力说不定还能加薪升职,成为别人眼中的佼佼者,没多少行业如同程序员起薪高,也没有多少行业如同程序员涨薪快,没多少行业和程序员这个行业一样处处聚集高智力人群,身边都是工作上脑子转的飞快的人群。职场不讲政治只讲方案,对一些不善交际的人来说确实是一种轻松的活法。

为别人做事,那一份稳定的工资,对很多人来说不是很难接受的事情,怕就怕在当你人到了中年,发现自己被绑定在了这个行业绑定在了公司,一身专业技能到了出了公司根本用不到,甚至生活中的菜米油盐都和这个没有半毛钱关系,很久之前流行这么一句话‘世界那么大,我想去看看’这是某位任性的教师离职时的辞职信,很多人当年很佩服这位老师的潇洒,那是因为有选择自由的选择,而我们一离开程序员这个圈子,你会发现很多那些原本因为不善言辞而选择这个行业的人因为时间久了变成了生活中的巨婴,不善与人打交道,别人怪我们情商太低不会做事?这些算是程序员的悲哀吗,还算是市场圈子的潜移默化的影响?我曾遇到过一个人,本来因为不善言辞而选择的这个行业,后来因为这个圈子的氛围影响,回到家更不善和自己的爱人沟通,最后导致了婚姻的不幸。着实令人惋惜!

面试经历

偶然看到知乎的内推帖,投了个简历,下午hr姐姐call我,安排面试选在3天后,然而又要笔试阿里,所以没怎么复习。

8点起床,9点过比较紧张的去了创业园,感觉知乎氛围很好,在那等了一小会,有前台大叔给你倒水。

一面:

应该是个参加工作不久的研究僧师兄,出了一道算法题,主要考字符转int,然后分析了时间复杂度和空间复杂度,之后聊了android listView的性能优化,还问我recycalView的特点,进程通信的方式,我主要说了aidl和共享文件,广播,本来还想用java装B,还在精通java,然而师兄并没有问,说叫等一下

二面:

二面明显难度提升,而且面试管应该是组长吧,比较喜欢听吹架构,正好之前自己从web后台,客户端,硬件等方面做了一个智能家居项目,就吹了下硬件那边的逻辑,包括蓝牙,wifi的HTTP/IP协议,透传等,红外等传感器,然后web后台我说我用sevlet,因为本身客户端主要需要接口,数据库用mysql,也没问rollback(嘿嘿),然后把客户端展示给他看看,实在太丑没有美工(这不是重点),由于我的项目中有一个很重要的point就是在硬件触发时唤醒服务器后台推送,首先硬件识别后,串口读写数据到单片机,单片机写入wifi缓冲区,wifi通过HTTP透传数据到我服务器(可以用TCP和IP),服务器获取mac标识,推送至TAG(家庭ID)或者用户(Alias)
说到推送,好好吹吹实现原理。
1:pull方式,http长连接或是socket,轮询间隔设好即可,缺点及时性差
2:push方式,实时性好,方法1,google自带推送平台(网太差),方法二,xmpp协议(基于XML)。其实封装的比较好了,有个开源包叫asmark,其中有XmppConnection这个推送库,话说好多公司都是用它自己封装库,不过开源的demo只管推,没有延时推送,消息暂存功能,方式3,用三方的
算法:是2个有序数组合并问题,用2个指针每次比较能够O(n)解决问题,算法pass
LruCache:先装装B,说一下我写的和google V4包有什么不同,主要是没有trimToSize方法,没有sizeof()计算内存耗费大小,我主要是重写LinkedHashMap,讲了下LinkHashMap源码,其实我也是看别人写的源码解析,(嘿嘿,毕竟年轻,多向别人学习)

总结

本文讲解了我对Android开发现状的一些看法,也许有些人会觉得我的观点不对,但我认为没有绝对的对与错,一切交给时间去证明吧!愿与各位坚守的同胞们互相学习,共同进步!

在这里我也分享一份自己收录整理的**Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料**帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习


分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进