您的位置 首页 知识

android学习(双非腾讯 | 亲自分享的Android学习路线!)

android学习

前言
同学们好呀,我就是猪学长计算机学习交流群里的君君同学。
应猪学长的邀请,同时最近有很多学弟学妹私信我,咨询Android学习路线的问题。
我结合自己秋季校园招聘中Android岗的面试经验,做个总结,仅代表个人看法,希望可以帮助到学弟学妹们!

一、企业要求任职要求下面是我在招聘网站上发现的几个Android工程师的任职要求
腾讯招聘1、具备Android应用层调试分析能力,快速定位解决anr、crash等问题;
2、对Android开发相关的事件处理、内存处理、多线程编程、网络通讯及性能优化有深入理解;
3、熟悉Android应用框架和Android GUI库。
4、有过Android系统应用软件的开发。
5、有良好的源码阅读能力和编码习惯
网易招聘1、计算机及相关专业本科以上学历,2年以上Android相关开发经验
2、熟悉Android平台的开发技术,如UI,网络,性能和内存优化等
3、了解各类常用开源框架实现原理,并能灵活运用;
4、扎实的计算机专业基础,熟悉常用的数据结构、算法、设计模式
5、熟悉网络编程,熟练掌握tcp/udp等协议相关知识
6、具备良好的学习能力,自主分析和解决问题能力,以及良好的沟通协作能力
重点:从上面的要求中详细提取了一些Android从中阶迈向高阶必备的技能。
友情提示:基础不牢,地动山摇。四大组件都不熟悉的童鞋可以先不要看下面的内容。
如果觉得自己四大组件掌握的还可以的同学,请回答以下几个问题:
1.Activity的启动模式与标志位分别有?每种启动模式的使用场景。
2.Activity的生命周期,onStart和onResume的区别,Activity A跳转到Activity B,生命周期如何?
3.广播的几种类型?粘性广播了解过吗?静态注册和动态注册的区别。
4.关于Service,startService和bindService的区别。
5.ContentProvider可以暂时不做了解,涉及跨进程的数据交互。当了解了跨进程通信后再学习。
二、推荐书籍
说实话,大三刚开始的时候我还是不能完整回答任何一个问题的。
在用心学习阅读了很多Android方面的书籍之后,我的技术水平才真得得到了很大的提高。

这里我推荐一些我认为非常不错的Android发方面的书籍,推荐同学们认真阅读、学习与了解。
《Android开发艺术探索》

《Android进阶之光》

《Android进阶解密》

大神级直接推荐《深入理解Android内核涉及思想》,比较深涉及到Android`内核比较多,没有一定功力很难懂。
《深入理解Android内核涉及思想》

下面总结的所有校招Android高频问题,在上面这些书中都有完整的答案,我认为是必读的书。每本书中都有相互重复的章节,可以有选择性的阅读。

二、Android校招高频考点(★★★★★)
UI:自定义View,View绘制流程,View事件分发机制,Android动画1.如何用自定义View的方式实现一个圆角控件(大体思路)

2.View的三大绘制流程,每一步的作用

3.如何处理滑动事件冲突

4.几种Android动画的区别

5.四大组件是基础,面试必问。
(★★★★★)网络相关:常用网络框架的底层原理以及实现细节。
1.你了解目前目前流行的的网络框架Retrofit和Okhttp的实现细节吗?

2.Retrofit的实现原理?动态代理技术了解多少?

3.OkHttp的五层拦截链分别是哪些?OkHttp中的缓存如何实现的?
(★★★★★)多线程编程:Android中提供的实现多线程的HandlerThread,AsyncTask,IntentService等方法
1.他们的区别,适用场景,实现的原理
2.线程同步的几个方法,阻塞同步和非阻塞同步了解多少。
3.线程池有没有了解过,优缺点有哪些,任务队列呢?
4.Handler,MessageQueue,Message,Looper了解吗?
(★★★★★)多线程编程:Android中提供的实现多线程的HandlerThread,AsyncTask,IntentService等方法
1.他们的区别,适用场景,实现的原理
2.线程同步的几个方法,阻塞同步和非阻塞同步了解多少。
3.线程池有没有了解过,优缺点有哪些,任务队列呢?
4.Handler,MessageQueue,Message,Looper了解吗?
(★★★★)性能优化:各项指标优化让app达到最佳运行效果。
1.启动和响应速度优化:阿里魔镜检测首帧显示时间,耗时方法检测

2.网络优化:网络缓存,长链接,链路复用,连接池。

3.内存优化:内存泄漏内存溢出等,业界常用的解决方案

4.UI优化:三大常用布局,线性,约束和相对布局,按需加载。

5.Apk安装包体积减小的优化。

(★★★★)架构方面:MVP和MVVM(MVP必须要了解)
路由:ARouter框架(可以了解,加分项)
存储:数据持久化的解决方案,序列化与反序列化的原理。
底层原理:反射,动态代理,注解等。(必须了解,造轮子离不开的东西)
技术:Kotlin和Flutter(对于校招生应该是加分项,可以了解一下。)
阅读源码的能力:可以拿OkHttp,View的源码练手。
编程风格:可复用,可扩展,比如Java中的多态,接口,抽象等等。代码管理仓库:git指令的使用
四、学习路线总结
0. 所有零基础的小白同学,初步入职计算机学习的开始步骤都跟猪学长之前写过的内容是一样的。都是算法数据结构刷题训练+ 计算机基础知识学习。
1. 算法数据结构在扎实掌握了基本知识之后,大概需要在leetcode刷100 – 300道左右中等难度的题。这个数量不是必须的,主要看个人的编程能力,差一些的同学就多做一些。
2. 然后需要计算机基础知识如数据结构,计算机网络,数据库,操作系统。
3. 后面就要开始初步了解Android开发技术栈,首先推荐从《Android开发艺术探索》和《Android进阶之光》两本书开始学习入手,新接触Android编程的同学,大概需要啃几个月的时间。
4.简历上至少需要两个拿得出手的项目,图书管理系统就可以pass了。假设之前没有比较厉害的项目,要花几个月的做几个Android相关的项目。
5. 现在已经2020年10月了,距离春招还有半年左右的时间,其实时间真不多了。下面关于项目有两个额外的建议:
项目带动学习这个就是一边做项目一边学习相关技术。(上上之选)
开源项目来帮您开源项目改改,深入源码分析。(时间不够可以尝试一下)
5. 大三上学期课程还是挺多的,加上上学期是网课,大家都懂的。所以到2021/01/22,还有大概四个月,周末时间大概有一个月。如果抓紧一些,大概可以挤出两个月空闲时间吧。时间真的很紧啊!
6. 现阶段最重要的仍是提高技术和做项目吧。加油,送给学习Android的学弟学妹们。
五、猪学长碎碎念

君君这份Android学习攻略,最早初版是写于去年2020年9月给他的学弟学妹们的,因此才有了上面学习路线中的第5第6条。

虽然他来自一个双非的普本学校。但是在他的带领下,他的学弟学妹们中就有咋今年2021年,互联网22届暑期实习生招聘中,再次斩获大厂offer。
这就是优秀的学长给自己本校学弟学妹做了一个优秀的榜样与激励!!!
全文同学们如果仔细阅读完,就会知道,任何一个在校招中有机会进大厂的同学,无一例外都是在背后付出了极大的努力与辛苦的。

你大学期间做过的所有努力,敲过的每一行代码,认真看过的每一本技术书籍,努力研究过的每一个项目。都会在你将来的校招面试中,展现出来。
万丈高楼平地起,成功只能靠自己。

最后再次感谢腾讯的君君同学为同学们带来的Android客户端方向的学习路线。
猪学长目前有一个非常高质量的计算机求职学习信息分享群,群内有很多校招拿了字节,腾讯,阿里等各大厂offer的优秀同学。

想加群的同学们加猪学长微信,备注年级专业即可。

最后觉得这篇文章不错的同学,一定要记得帮猪学长转发、再看、分享给更多的同学呦!

历史推荐
全岗位!字节跳动21届秋招全岗位面经合集来啦!!!

万人催更 | 全网最硬核分析计算机工作or考研

最辛酸 | 字节跳动学姐亲笔的前端学习路线

万人血书 | 互联网校招技术岗位硬核科普

跨考浙大计算机的掏心窝分享

我是风口浪尖上的猪,字节跳动服务端研发工程师。从垃圾本科保送到C9硕士,毕业后工作过国内多个大厂很多部门。

与同事们一起创办互联网校招面经平台,只专注高质量互联网校招面试经验分享。致力于消除互联网校园招聘信息差,帮助所有想通过自己努力改变命运的计算机科班、非科班、想要转行互联网的同学,打破信息壁垒,抓住互联网校招这个机会,拿到心仪的互联网公司offer!!!

同时会输出高质量计算机技术学习,校招求职,工作技术方向选择,保研考研,研究生导师选择,研究生学习规划等方向的绝对干货的内容。欢迎同学们加微来撩。

互联网校招面经 字节跳动猪学长与同事一起创办互联网校招面经平台。致力于消除互联网校园招聘信息差,只专注高质量技术岗位互联网校园招聘面试经验分享! 44篇原创内容 –> 公众号

android学习相关文章