A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


谁说Android不行了?是你太弱了!

                       ——西安校区

前言——
今年JavaEE突然火爆起来,相比之下Android就显得不温不热了,很多人都说Android市场饱和,工作不好找了,究竟是不是真如别人说的:Android已经临至暮年了,小编今日带你一探究竟。


01
投递简历

在越来越多的人选择了智联招聘、51job去投递简历的时候,我还是选择专注于互联网招聘的拉勾网,为了验证公司对Android需求的紧迫性到底强不强烈,这次我选择使用比较简洁的在线简历去投递。

个人信息.png

个人简介和经历也写的很简洁,一句话带过。
对于项目部分,一定要给出项目的链接网址,好让HR在简历筛选的时候能通过网站看到你做的项目的具体描述,因为字数限制的缘故,我选择了把项目里面技术关键字写出来即可(后来在面试的时候,面试官告诉我就是看到我会这个技术点才让我来面试的)在技术点选择上,一定要找出你项目里面的技术亮点,提炼出项目的技术关键字。如下图:
作品展示.png

在线简历就写了这么点,是不是太简洁呢?
接下来就是投递了,因为拉勾网规定投递简历每天最多10家,我就随便投递了7家,目前的结果如下:
(3个面试邀请,2个待沟通,2个不合适)
总的投递情况.png

面试邀请.png

待沟通.png

不合适.png


02
参加面试

目前参加了种子科技和西安卓派的面试,具体如下:

种子科技
种子科技.png

面试结果:
起初我要了10k,面试完前就回去了,之后第二天打电话让去复试谈薪资,我就以有个xx公司给我12k的薪资,我更倾向xx公司给拒绝了,结果下午人事专门打电话过来说,也愿意给12k的工资,希望我能考虑一下她们公司,当然,我肯定还是拒绝了。

面试经过:
在这家公司,主要聊的都是产品的业务逻辑,貌似面试官对产品的设计和运营更感兴趣,这时候有的童鞋肯定就担心了,“关于业务一点感觉都没有,说啥呀”, 其实兄弟你想多了,如果面试管技术牛逼肯定会问你技术,现在他只提问产品的业务逻辑,说明技术肯定二把刀了,那就用他听不懂的技术把他讲懵逼就行了,当然回答尽可能围绕一个点:随时都要表现咱们技术的专业性,有深度。要想通过这一关,一定要对自己简历上项目的业务逻辑非常熟悉哦,问你一个业务逻辑,马上从业务逻辑扯到技术上去,懵死他,他若不死那你必死无疑,因为这些爱问业务逻辑的都基本算是老狐狸了,你要是回答的吞吞吐吐的,基本不到10分钟你就可以滚蛋了。


西安卓派
西安卓派.png

面试结果:12k的Offer,技术人员说薪资没啥问题,下周和老板聊聊。

技术问答:
  • 网络请求框架你都用过那些?
    我之前在深圳泰捷的时候,因为是机顶盒开发,目前还是基于Android5.0的,所以网络请求这块一直使用的Google推出的Volley,它比较适合任务频繁但数据量不大的请求,当然Volley 默认根据 Android 系统版本使用不同的 Http 传输协议实现,在 Android 3.0 以上 Volley 使用ApacheHttpStack 作为传输协议,在2.3 及以下使用 HttpURLConnection 作为传输层协议,如果是在6.0系统,Volley无法正常编译了,这时也可以使用 OkHttp 作为Volley传输层的实现,用法也很简单,在Volley构建RequestQueue的时候,用 OkHttp 实现一个新的 HurlStack 用于构建 Volley 的 requestQueue,所以平时,我更习惯于Volley+OkHttp+Https去做网络请求。
  • 那Retrofit你用过吗?
    这个我私下学习过,它更适合和RxJava联合使用,响应式编程,应该算当下最热门的Android开发技术了。
  • RxJava里面有一个Just的操作符,你知道是做什么吗?
    Just操作符将某个对象转化为Observable对象,并且将其发射出去,可以是一个数字、一个字符串、数组、Iterate对象等。其实操作符时间一长都忘得差不都了,不过这些东西简单,现学现用没问题的。(其实我怕他在往深的问,我真的就不会了)
  • 下拉刷新的控件你做过吗?
    这个属于Android自定义控件的范畴,自定义控件常见有两类,一种是继承系统已有的控件,一种是通过onDraw去绘制全新的控件,对于第一种,常见就是自定义下拉刷新和上拉加载的listview,做法很简单,为listview添加头布局,通过setPadding去实现,在onTouchEvent方法监听触摸事件,解读手势,不断去更新setPadding方法,上啦加载则是在onScrollStateChanged方法中,判断最后一个条目是否可见和当前listview的状态是否符合要求。当然在5.0版本后,Google提供了全新的下拉刷新控件SwipRefreshLayout,目前很多知名的APP如知乎等都在采用这个控件。
  • 子线程如何发消息,需要注意什么?
    其实线程并无主次之分,只不过我们的UI界面运行的线程被定义为主线程或者UI线程,通常APP启动的时候,主线程会调用Looper.prepare(),这个方法会为主线程绑定一个Looper对象,Looper会为当前线程创建对应的MessageQueue,并在Looper的静态变量ThreadLocal中将新的Looper对象和当前线程关联,之后就会调用Looper.loop开始消息轮询,通过我们都是在主线程创建Hander,然后在子线程调用handler.sendMessage(),将消息发送到主线程额消息队列,因此消息被发到哪个线程的MessageQueue,取决于Handler在哪个线程创建,如果要在子线程向主线程发送消息,可以在子线程中创建Handler,当然同时也需要在子线程调用Looper.prepare和Looper.loop方法,这样子线程就有了自己的消息队列并开始轮询消息队列的消息。
  • 如果RecycleView里面又嵌套了一个RecycleView,会出现什么问题?
    在项目开发中,我从未如此使用过,但之前在ScollView中嵌套过ListView,导致listview只显示一两个条目,结果方法也简单,要么动态计算ListView每个条目的高度算出总高度设置为listview,要么自定义一个listview并重写 onMeasure()方法,设置全部显示。所以如果是RecycleView嵌套RecycleView我猜测解决办法也是一样,必须先设置子RecylcerView的高度先确定出子RecyclerView里面条目的高度,然后从而确定子RecyclerView的高度,设置给子RecylcerView,这样做RecyclerView就可以正确显示出子ReclyclerView的条目了。
  • 线程池中有一个方法,可以让某个线程等待其它线程执行完成后才开始执行自己的任务,你清楚是哪个吗?
    这个我不清楚,如果非要这么做,我进行一个计数标记,假设A线程要等待B、C、D线程运行结束后才开始,我会在A线程先调用
    while(count!=3);
    让线程在这么死等,B、C、D线程run方法最后我执行一次count++
  • 如果我有个需求,公司项目需求,上线的App和内部使用的APP访问的域名地址不同,但希望一次就可以打出来这两个包,怎么做?
    这个其实有点类似Android多渠道打包,可以通过清单文件的MetaData操作,一般用工具打渠道包的时候,会读取渠道配置信息,我可以将域名地址添加到配置信息里面,将系统的Applicat中读取MetaData信息,把域名地址获取到,这样就可以同时打出两个访问不同域名地址的安装包了
  • 都用过那些设计模式?单例设计模式怎么实现?
    在项目开发中,遇到的设计模式挺多的,如单例模式、工厂模式、观察者模式、装饰者模式、适配器模式等,单例有两种,饿汉式和懒汉式,其中懒汉式在多线程情况下会出现线程安全问难,同时java的反射机制会破坏单例这个时候,面试管说到了枚举也可以实现单例,我表示认同。


我的询问过程——
剩下的就是聊了一些生活方面的问题,我也顺势询问了一下公司的情况:
  • 最近很火的微信小程序会对公司的Android开发产生冲击吗?
    公司不会去考虑微信小程序,现有的业务逻辑很复杂,小程序根本做不到。
  • 目前的混合开发是不是Android开发的潮流?
    面试官表示认同,但也认为,Js毕竟有很多的局限性,现阶段还是无法取代Android原生,很多功能都需要依赖原生控件才能实现,公司目前对android的招人需求还是蛮强烈的,但招人的要求也越来越严格了,现在更倾向三年及三年以上的Android开发人员。
  • 公司是不是更喜欢对新技术掌握更好的人?
    面试官说:目前西安的Android开发还无法和大城市相比,主流开发技术相对落后,你能掌握这么多新技术,已经相当不错了。



03
面试总结


从这几次面试来看,目前Android的招聘还是挺多的,只是要求越来越高了!

不得不说,前两年的移动开发确实很火,为什么?因为一个行业刚兴起,智能手机发展之快速让人震惊,加上创业的越来越多,基本上创业都需要做一个 App,以上种种原因综合下来导致移动开发人才特别紧缺,可以说随便能鼓捣出来点东西都很容易找到工作。而现在明显降温了,对人才的要求也越来越苛刻,现在搞一个公众号就可以创业融资了,App不再是刚需了,所以跟前两年比需求确实少了很多。但是跟同类其他编程行业比移动开发依然需求蛮大的,这种现象只能说明以前是「疯狂」,而现在才是「正常」,所以那些说 Android 开发饱和了,我并不认同,因为我看到各大招聘网站 Android 跟 iOS 开发的职位跟其他岗位的招聘比并没有少,所以所谓的「饱和」只是一种从「疯狂」到「正常」的错觉而已。

这个解释一下很多人的疑问,说投了很多简历,都没有回应,总感觉今年工作特别难找。其实因为移动开发前两年的火爆,导致很多新兴的培训机构大举招聘移动开发,所以这两年你会发现培训 iOS、Android 开发的人特别多,但不是所有的培训机构都像传智播客、黑马程序这样严把质量关,及时创新课程大纲,紧随市场的技术需求,大多都是借着招聘的火热势头,以培训为名来大笔捞钱,导致Android开发的人越来越多,质量却越来越差,初级的Android程序员太多了,而现在企业也看清了这其中的猫腻,更愿意招聘有更多工作经验的中高级的Android开发人员,再也不像两年前招不到人需要自己培养了,现在可选的人一大把,为什么要先招进来再培养你呢?

所以综上所述,真的别再杞人忧天了。沉下心来学好基础,提升技能比什么都重要,如果你找不到工作,只能说你学的还不够好,或者能力还不达标,并不能说明没有这个岗位的招聘,以个人能力的不足来否定整个市场的需求是弱者的行为!


36 个回复

倒序浏览
厉害,老司机如此给力,更增强了学习的信心!!!
回复 使用道具 举报
谁说Android不行啦?
回复 使用道具 举报
可以!666,其实任何学科都一样,关键还是看自己!
回复 使用道具 举报
明明是 JAVA 不行了  安卓工资高2K呢
回复 使用道具 举报
没有不行的技术,只有用不好的人
回复 使用道具 举报
技术牛,才是硬道理
回复 使用道具 举报
初级安卓开发人员太多了,真的很不好找
回复 使用道具 举报
顶起!Android还是可以的
回复 使用道具 举报
听说薪资现在降了是吧?
回复 使用道具 举报
这个只要技术好就不怕没人要
回复 使用道具 举报
来看看   你们都还好吧
回复 使用道具 举报
加油!!!!!
回复 使用道具 举报
石宗银 黑马帝 2016-12-10 14:41:01
14#
智能设备不要太多种类,安卓的应用领域不要太广泛。
回复 使用道具 举报
你那个面试回答看的我一脸懵逼,不过看清了形式,只是渣渣批量生产的太多,使得市场招聘有点恐慌,老板宁愿花更多钱,更多时间去选一个好的
回复 使用道具 举报
你那个面试回答看的我一脸懵逼.不过看清了形式,市场需求量很大,只是渣渣批量生产的太多,使得市场招聘有点恐慌,只要学的好,找到工作很随意的.
回复 使用道具 举报
Android 怎么会不行 不行的只有自己!!
回复 使用道具 举报
Android 还是可以的!
回复 使用道具 举报
努力学习中!!
回复 使用道具 举报
五年以内肯定异常红火,这点毫无疑问
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马