“Android开发还有什么可以研究的?”
近些年,移动开发市场看似并不乐观,小程序、快应用的崛起,让许多App的增长达到瓶颈,尤其是Android开发。
既然红利期已过,就更需要精炼的技术作为支撑,像现在的中高级招聘要求,除开学历要求、Android基础之外,把JNI/NDK/Framework,甚至JS、Server端开发也作为了提升点,是全栈方向的雏形。
其实,安卓开发的从业者会发现,各大公司中高端职位有明显增加,这也意味着安卓开发已进入技术赋能业务时代,所以增强个人的竞争实力,也就是Android开发能力很有必要。
我之前被朋友拉到了一个Android中高阶技术交流群,群里有很多大神时不时会在群里交流开发经验,并且还会有很多实用的总结经验,我全部都下载私藏了,拿着资料还能听大神培训,爽爆了,我也推荐给大家,有需要的可以点此处免费自取。
因为我本身就是本科院校出生,从事Android开发今年就3年了,在群里通过大神的培训和资料,顺利的让自己的级别和薪资都有上升。
所以,也来和大家总结一下,Android开发人员的发展方向。
第一:横向提升
基于全栈发展的趋势,在自己擅长领域深入钻研的同时,横向扩展,不要关起门闭门造车。
而这里说的横向提升就是向前端转型,在除了要在APP会hybrid开发(web、native、前端交互、硬件交互)之外,还要会web开发,微信小程序,H5。
比如服务端开发,我们做Android开发很多时候,要依赖于服务端接口返回数据,可以自己试着搭建一下,至少要对服务端的结构理论、服务于服务之间通信、聚合是什么样的流程也是需要有所耳闻。
第二:纵向重塑
一直以来,做Android开发有这么两个说法,如果是做应用开发,往应用架构方向发展比较合适;如果是做系统层开发,往往底层驱动比较合适。
那具体应该学习什么呢?
1、移动架构
架构展示层—MVC、MVP、MVVM、Clean、Flux、Android Architecture Components;
架构层—模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似Docker,每个页面都是插件,类似Vue.js中每个页面都是组件。
2、基础进阶
这个方向可能比较多,比如VIEW、Android动画机制、四大组件工作原理、多媒体技术等等。
我们平常在工作中碰到的View滑动冲突问题,其实通过掌握View工作机制和Android触摸时间体系就能轻易解决掉。
还有对于需要开发绚丽的动画效果,那么对于视图动画和属性动画一些特性必须有一定的了解。
Android中的四大组件工作机制其实底层应用的是Binder机制,我们不妨送AIdL这个接口来了解Binder。
JNI和NDK开发也是比较常见的,特别对于一些做NDK项目为主的,这一块开发流程也是需要掌握。
NDK开发也是佣人单位区分应聘者的手段之一,企业不一定要用到,但是可以通过是否掌握NDK来筛选人才。
3、语言学习开发语言
这里要纠正一下学习语言不是跨行业,比如Kotlin可以说是Android世界的头等公民了,再有时下比较火的Python和GO,另外做底层C/C+++是必不可少的。
4、源码
要求能看懂并且能够熟悉源码(自己选几个第三方库的也可以),要做到熟悉源码及其实现原理,并且要能做到自己二次封装(或自己贡献三方库)三方库
这样一来,你就会在维护中慢慢成为这个技术块的专家了,我觉得输出倒逼输入是一个不错的学习方式。
当然文中所有资料都是免费分享给大家的,有需要的朋友可以点此处免费领取。
其实,学习的方向还有很多,这里就不一 一给大家罗列了,因为不同项目需要学习的进阶的技能都不一样,如果说想要360度全发展的话,那肯定是要进行更加系统的学习。
另外附上一份BATJ大厂面试真题:
百度
-
Bitmap 使用时候注意什么?
-
Oom 是否可以try catch ?
-
内存泄露如何产生?
-
适配器模式,装饰者模式,外观模式的异同?
-
ANR 如何产生?
-
String buffer 与string builder 的区别?
-
如何保证线程安全?
-
java四中引用
-
Jni 用过么?
-
多进程场景遇见过么?
-
关于handler,在任何地方new handler 都是什么线程下
-
sqlite升级,增加字段的语句
-
bitmap recycler 相关
-
强引用置为null,会不会被回收?
-
glide 使用什么缓存?
-
Glide 内存缓存如何控制大小?
-
如何保证多线程读写文件的安全?
阿里巴巴
-
LRUCache原理
-
图片加载原理
-
模块化实现(好处,原因)
-
JVM
-
视频加密传输
-
统计启动时长,标准
-
如何保持应用的稳定性
-
ThreadLocal 原理
-
谈谈classloader
-
动态布局
-
热修复,插件化
-
HashMap源码,SpareArray原理
-
性能优化,怎么保证应用启动不卡顿
-
怎么去除重复代码
-
SP是进程同步的吗?有什么方法做到同步
-
介绍下SurfView
-
HashMap实现原理,ConcurrentHashMap 的实现原理
-
BroadcastReceiver,LocalBroadcastReceiver 区别
-
Bundle 机制
-
Handler 机制
-
android 事件传递机制
-
线程间 操作 List
-
App启动流程,从点击桌面开始
-
动态加载
-
类加载器
-
OSGI
-
Https请求慢的解决办法,DNS,携带数据,直接访问IP
-
GC回收策略
-
画出 Android 的大体架构图
-
描述清点击 Android Studio 的 build 按钮后发生了什么,大体说清一个应用程序安装到手机上时发生了什么;
-
对 Dalvik、ART 虚拟机有基本的了解;
-
Android 上的 Inter-Process-Communication 跨进程通信时如何工作的;
-
App 是如何沙箱化,为什么要这么做;
-
权限管理系统(底层的权限是如何进行 grant 的)
-
进程和 Application 的生命周期;
-
系统启动流程 Zygote进程 –> SystemServer进程 –> 各种系统服务 –> 应用进程
-
recycleview listview 的区别,性能
-
排序,快速排序的实现
-
树:B 树的介绍
-
图:有向无环图的解释
-
TCP/UDP的区别
-
synchronized与Lock的区别
-
volatile
-
Java线程池
-
Java中对象的生命周期
-
类加载机制
-
双亲委派模型
-
Android事件分发机制
-
MVP模式
-
RxJava
-
抽象类和接口的区别
-
集合 Set实现 Hash 怎么防止碰撞
-
JVM 内存区域 开线程影响哪块内存
-
垃圾收集机制 对象创建,新生代与老年代
-
二叉树 深度遍历与广度遍历
-
B树、B 树
-
消息机制
-
进程调度
-
进程与线程
-
死锁
-
进程状态
-
JVM内存模型
-
并发集合了解哪些
-
ConCurrentHashMap实现
-
CAS介绍
-
开启线程的三种方式,run()和start()方法区别
-
线程池
-
常用数据结构简介
-
判断环(猜测应该是链表环)
-
排序,堆排序实现
-
链表反转
-
动态权限适配方案,权限组的概念
-
网络请求缓存处理,okhttp如何处理网络缓存的
-
图片加载库相关,bitmap如何处理大图,如一张30M的大图,如何预- - 防OOM
-
进程保活
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
![](https://i-blog.csdnimg.cn/blog_migrate/c5802a164ac6a16bf833692716796b7d.jpeg)
总结:
各行各样都会淘汰一些能力差的,不仅仅是IT这个行业,所以,不要被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。
-
BAT大厂面试题、独家面试工具包,
-
资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
被程序猿是吃青春饭等等这类话题所吓倒,也不要觉得,找到一份工作,就享受安逸的生活,你在安逸的同时,别人正在奋力的向前跑,这样与别人的差距也就会越来越遥远,加油,希望,我们每一个人,成为更好的自己。
-
BAT大厂面试题、独家面试工具包,
-
资料包括 数据结构、Kotlin、计算机网络、Framework源码、数据结构与算法、小程序、NDK、Flutter
[外链图片转存中…(img-1v60T1fE-1711938603156)]