GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
4、对话框与菜单的使用:
Dialog的基本概念
AlertDialog的使用方法
DatePickerDialog的使用方法
Menu的使用方法
自定义Menu的实现方法
5、控件的布局方法:
线性布局的使用方法
相对布局的使用方法
表格布局的使用方法
6、多Acitivity管理:
AndroidManifest.xml文件的作用
Intent的使用方法
使用Intent传递数据的方法
启动Activity的方法
IntentFilter的使用方法
Activity Group的使用方法
7、自定义控件实现方法:
自定义ListView的实现方法
可折叠ListView的使用方法
自定义Adapter的实现方法
自定义View的实现方法
动态控件布局的上实现方法
第四阶段:android网络编程与数据存储
1、基于Android平台的HTTP通讯:
Http协议回顾
Apache Commons 工具包介绍
使用Get方法向服务器提交数据的方法
解析服务器响应数据的方法
使用POST方法向服务器提交数据的实现方法
向服务器提交非文本数据的实现方法
使用Http协议实现多线程下载
使用Http协议实现断点续传
2、Android数据存储技术:
SQLite3数据库简介
SQL语句回顾
SQLite3编程接口介绍
SQLite3事务管理
SQLite3游标使用方法
SQLite3性能分析
访问SDCard的方法
访问SharedPreferences的方法
第五阶段
学完上面这些差不多算入门的初级程序员了,可以在公司里干很多体力活了,但是一些很重要的任务还是做不了。为了能面上腾讯,还是得加把劲呀。这是后续的学习路线:
-
需要学习的内容就很多了,如下所示:
-
AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的区别;
-
Binder:从Java层大概理解Binder的工作原理,懂Parcel对象的使用;
-
多进程:熟练掌握多进程的运行机制,懂Messenger、Socket等;
-
事件分发:弹性滑动、滑动冲突等;
-
玩转View:View的绘制原理、各种自定义View;
-
动画系列:熟悉View动画和属性动画的不同点,懂属性动画的工作原理;
-
懂性能优化、熟悉mat等工具懂点常见的设计模式
学习方法
阅读进阶书籍,阅读Android源码,阅读官方文档并尝试自己写相关的技术文章,需要有一定技术深度和自我思考。在这个阶段的学习过程中,有2个点是比较困扰大家的,一个是阅读源码,另一个是自定义View以及滑动冲突。
如何阅读源码呢?这是个头疼的问题,但是源码必须要读。阅读源码的时候不要深入代码细节不可自拔,要关注代码的流程并尽量挖掘出对应用层开发有用的结论。另外仔细阅读源码中对一个类或者方法的注释,在看不懂源码时,源码中的注释可以帮你更好地了解源码中的工作原理,这个过程虽然艰苦,但是别无他法。
如何玩转自定义View呢?我的建议是不要通过学习自定义view而学习自定义view。为什么这么说呢?因为自定义view的种类太多了,各式各样的绚丽的自定义效果,如何学的玩呢!我们要透过现象看本质,更多地去关注自定义view所需的知识点,这里做如下总结:
-
搞懂view的滑动原理
-
搞懂如何实现弹性滑动
-
搞懂view的滑动冲突
-
搞懂view的measure、layout和draw
-
然后再学习几个已有的自定义view的例子
-
最后就可以搞定自定义view了,所谓万变不离其宗
看我上面学习的知识量就能知道,我的简历是非常单薄的,而且我又是双非学校的转行生,这让我处于极其不利的位置。
我在三月初开始投递简历,起初只是投了一些小公司,想着先通过小公司积累经验,然后再鼓起勇气去投大公司。所以我投大公司其实就是抱着碰碰运气的心态投的。但是小公司一直都没有回应的消息,简历一直处于审核状态,倒是大公司很快就进入面试状态了。第一家就是腾讯。
这让我很紧张,我没想到我最想去的公司会是我的第一场面试。
我和面试官约好晚上7点电话面,虽然是电话面,但我还是难以抑制自己紧张的心情。我提前一小时就坐在宿舍的椅子上,不停地翻着手中的复习资料却坐立难安,时不时盯着桌上的手机生怕它突然响起,不停地咽口水,时不时咳嗽。我确实特别紧张,脑子里想着面试官会怎么刁难我、会问什么问题、我该怎么回答。最后颤颤巍巍地接起了面试官的电话。
幸运的是,很顺利,一面电话面,面的都是一些基础,没有算法题。一面的面试官说我一开始很紧张,声音都在发抖,后面渐渐地就很有自信,表达方面也比较清晰,基础还是学的很不错。
听到面试官的评价,我当时心中就乐开了花,能得到鹅厂面试官的肯定让我充满了自信,自己的努力得到了他人的认可,那种感觉真的很棒很棒。我开始幻想难道我难道可以进鹅厂?可是很快,梦就被打碎,狠狠地击碎。
二面是视频面,我心想着自信自信,一定要自信,结果上来面试官第一个问题就把我问蒙了:如何设计一套图片加载框架;三级缓存。为什么选择LruCache?我尝试着挣扎回答了一些自己的想法,但都被否定,大部分时间都是安静的,安静的让人害怕。好不容易跳到了下一个问题,“红黑树怎么实现的?说一下它的插入逻辑”“IntentService原理”…安静,还是安静。
渐渐地我乱了分寸,我开始想着自己这次肯定是要挂了,回答的声音越来越小,脑袋越来越低,自信这个对于我来说最重要的东西彻底的丢失了。
压死我的最后一根稻草是力扣的原题62. 不同路径,听到面试官念这个题的时候我心里又燃起了希望,这不就是个简单的DP嘛,紧接着面试官一句话让我产生了疑惑,“三分钟内给我答案”,不coding直接报答案?我想着手算能不能算出来,但三分钟对我来说是不够的。面试官冷冷地说了一句:“你知道这是个什么问题吗?”,“动态规划?”,“这是个组合数学问题!”
我的信心崩溃的很彻底,脑子基本停止运转了。二面挂了。雪上加霜的是,投递小公司的简历被刷了。这让我对自己陷入的深深地怀疑之中,“我是不是找不到实习了?我是不是该去考个计算机的研再来找工作?我是不是…我该怎么办?”
可是哪里有时间给我多想,腾讯又接到了另外一个部门一面的通知,阿里也接到了一面的通知。我扇了自己两个巴掌又投入到了面试中。
这次腾讯一面是视频面,面试官问的都是很基础的问题,但这次我说的结结巴巴,我的嘴像是不受我控制,明明一开始说的好好地,慢慢地慢慢地声音就开始变弱变小,突然的哑火让面试官和我都措手不及,我老是自己打断自己的思路,说着说着开始自暴自弃。我逐渐的意识到我还没有走出上一次面试的阴影中,我丢失了我最需要最重要的自信。我向面试官解释、倾诉,我并不是想得到面试官的可怜,我只是不想让那次的不甘与颓废憋在心里,它影响了我这次面试,但我并不想让它影响我下一次面试。我向面试官道歉,因为我占用他的时间只是听我倾诉,浪费了一次宝贵的面试。这次面试不出所料的挂了,但我如释重负。
紧接着就是阿里的面试,三面都是电话面,一面面试官主要问的是基础,二面面试官主要问了Java相关,三面面试官主要问编程相关。我表现得还不错,哪怕不会我都会和面试官积极沟通思路,请求他给予提示,而不再是单纯的泄气和自暴自弃。我一次又一次地将自信紧紧攥在手心里,我告诉自己我可以。
另一边腾讯也顺利的通过了二面,对,我再一次被腾讯捞起来(第二次被捞)继续面试,但这次我挺进了HR面。
一切看起来都是那么顺利,就在我做着选阿里还是腾讯的梦时,阿里HR的一通电话又击碎了我的梦。“我看你本科是学化学的,简历上也没有什么实习经历和项目经历,你投的是我们这边的核心部门,我很担心你能否胜任这个岗位。”,“这么跟你说吧,我这边有很多有丰富经验的研究生,他们也在和你竞争同一个岗位,就是这么现实。”
我唯唯诺诺的听着HR说着,也不知道该说什么,她说的都没错,我看着自己单薄的简历叹了口气。想不到会被阿里HR这样刷掉…
不过腾讯HR面是比较顺利的,我也就如愿拿到了鹅厂的offer。
最后我分享一些自己的方法和经验,尽量不说一些四处可见的经验,希望能够帮助到大家。
我的学习以视频为主,书籍为辅
-
Java相关:B站
-
Android相关:B站,官方文档
-
算法:AcWing,LeetCode
-
项目:GitHub
初学者不要深究一个问题太久,目前这个知识点不会,可以暂且放一放,不要停滞不前。
不要在简历上暴露自己的弱点。 面试官是根据简历的内容来提问,所以一定要注意简历的用词,实事求是,不要夸大也不要谦虚。比如我就没有在简历上写操作系统,因为我学的并不扎实,面试官也没有问我操作系统的问题。
刷面经,这一点很重要。在面试的前一个月我就利用爬虫把网上的Android面试题爬取,然后一个问题一个问题的过,并做了一份笔记。
最后
感觉现在好多人都在说什么安卓快凉了,工作越来越难找了。又是说什么程序员中年危机啥的,为啥我这年近30的老农根本没有这种感觉,反倒觉得那些贩卖焦虑的都是瞎j8扯谈。当然,职业危机意识确实是要有的,但根本没到那种草木皆兵的地步好吗?
Android凉了都是弱者的借口和说辞。虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
所以,最后这里放上我耗时两个月,将自己8年Android开发的知识笔记整理成的Android开发者必知必会系统学习资料笔记,上述知识点在笔记中都有详细的解读,里面还包含了腾讯、字节跳动、阿里、百度2019-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。
以上全套学习笔记面试宝典,吃透一半保你可以吊打面试官,只有自己真正强大了,有核心竞争力,你才有拒绝offer的权力,所以,奋斗吧!骚年们!千里之行,始于足下。种下一颗树最好的时间是十年前,其次,就是现在。
最后,赠与大家一句诗,共勉!
不驰于空想,不骛于虚声。不忘初心,方得始终。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
颗树最好的时间是十年前,其次,就是现在。
最后,赠与大家一句诗,共勉!
不驰于空想,不骛于虚声。不忘初心,方得始终。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!