Hi~大家好,这里规划一下大三上半年各位都有哪些方向可以深挖,希望各位要打破自己的舒适区。
各位如果想进互联网巨头企业,一定要打好基础(数据结构最重要,操作系统,计算机网络,java基础,Android基础),几乎所有的大公司都会问这些知识,人家就看你的发展潜力,这些就是标准,我入职以来,也深深的感受到基础的重要性,即使工作用不到,可是对于新的东西你能否快速的掌握,基础起着决定性的作用,下面,我主要讲一下Android方向需要注重哪些,其他方向,牛客网里都有,面经一大堆,各位就一个侧重点在哪里了,一定要注意计算机是一门实践学科,数据结构在学习的时候多上手写,总之,第一,要有知识广度,基础要扎实,第二,要有知识深度,什么是深度,要对里面的机制精准记忆!
常用组件:(实践+原理)
Menu theme statusbarbackground ActionBar ContentView...有一个整体的了解
Android视图
自定义View实战、自定义ViewGroup实战
有能力就看View绘制源码(再深入的话研读SurfaceFlinger)
View、ViewGroup事件分发机制 动画机制
RecyclerView ListView源码,各自优缺点,如何优化
ViewPager NevgationView WindowManagerService对窗口管理机制 SurfaceView MaterialDesign
推荐开源项目:VLayout(苹果核博主有介绍)BGARefreshLayout...MaterialViewPager
RxJava
最好读源码,知道RxJava1 RxJava2的异同点,以后写代码会用到很多
Android图片
Glide(郭霖博客很详细) Picasso Fresco源码,对比分析
可以对ImageView实现视图拓展,实现异步下载,缓存图片的能力
Binder
Handler源码 特别是Activity Service启动流程分析 IPC通讯机制 还可以学习AIDL(任主席博客)
四大组件
实践,原理(推荐老罗的博客,非常深入),如创建流程,ActivityThread相关,onNewIntent()执行流程,广播registerReceiver过程等,Activity fragment Seevice生命周期,Activity任务栈和LaunchMode
Dalvik虚拟机,Android内存回收机制,如何解决OOM LruCache DiskLruCache等缓存框架
Android网络编程
要熟练Socket编程,对HTTP,TCP有一个整体的认识,熟悉OkHttp3源码,如消息队列如何处理
AsyncTask使用场景,底层实现,优缺点
推荐开源项目:Retrofit(与RxJava怎么配合的,推荐思言的RxJava博客)
Android多线程
线程同步,死锁问题
实践+源码,HandlerThread,IntentService,深入学习线程池并且应用在项目里面,如newCachedThreadPool等可以加在蓝牙2.0项目里
敏捷开发
Android源码里的设计模式好好总结(如代理模式,反向代理,观察者,责任链,适配器,中介者等等),熟悉各自架构设计,优缺点也要掌握
热更新
推荐研读Tinker(后端C++方向可以看一下Tars),学有余力可以学习阿里AndFix(上手很复杂) 滴滴VirtualAPK
App动态化拓展
阿里的Weex实战,知道Android终端如何实现与JS交互的,Weex如何实现自己的Activity等。
英语
大家争取过英语4级, 否则以后公司会天天让你读Google文档,你会撞墙的
没有任何一个技术会长生不老,但技术的灵魂不会改变,不具备延展性的知识终将被遗弃。