工作出现瓶颈,学习效率下降?通学这份Android进阶知识体系,从入门到高级只是时间问题!

工作出现瓶颈,学习效率下降?通学这份Android进阶知识体系,从入门到高级只是时间问题!,第1张

概述 前言工作一段时间一般都会出现一个瓶颈,这个时候学习的效率就会大打折扣,如果找不到好的方式,花的时间就会很长,然而进步的空间却很小。那么好的方式是什么呢?答案就是知识体系的思维导图。构建自己的知识体系尤为重要,每个人都应该构建自己的知识体系,那么如何构建自己的知识体

 

前言

工作一段时间一般都会出现一个瓶颈,这个时候学习的效率就会大打折扣,如果找不到好的方式,花的时间就会很长,然而进步的空间却很小。那么好的方式是什么呢?答案就是知识体系的思维导图。

构建自己的知识体系尤为重要,每个人都应该构建自己的知识体系,那么如何构建自己的知识体系呢?对于我来说,我是做 AndroID 开发的,从毕业到现在,大概六年多的时间,小公司呆过,大公司也呆过,自己独立开发过产品,同时也跟大团队一起开发过。因此基本上能经历的都会经历过,在这几年的开发时间里,我基本都会有学习总结的习惯,有的是工作上用到的,有的是平常想到的 IDea ,我都会总结下来,然后抽空整理一下,写成博客。

这几天一直在准备构成大纲,前天后后大概花了四天时间来完成大纲思维导图。今天我就将它分享出来,欢迎大伙一起学习。

总纲

计算基础

数据结构与算法 *** 作系统计算机网络组成原理

编程语言

JavaReactNativeFlutter

AndroID学习

基础入门进阶高级推荐书籍

面试总结

学习思维大纲主要由以上几大部分组成,基础部分,语言部分,还有其他方面的内容,不管工作还是生活都会涉及到,由于我是做 AndroID 开发的,因此主要会涉及 AndroID 开发的内容。接下来,我们就依次展开各个部分的详细大纲进行描述:

计算机基础

在计算机基础部分中,最重要的当然属于数据结构与算法,这部分在我们实际的工作中,用到的比较多,因此本公众号会着重总结所用到的各种数据结构以及算法。

数据结构

复杂度分析

时间复杂度空间复杂度

线性表

数组链表 单链表双向链表循环链表静态链表队列 顺序存储链式存储栈 顺序栈链式栈

散列表

散列函数冲突解决

二叉树 平衡二叉树二叉查找树平衡二叉树(AVL树,红黑树)多路查找树 B树B+树2-3树2-3-4树堆 小顶堆大顶堆二项堆裴波那契堆遍历 深度优先官渡优先

存储 邻接矩阵邻接表十字链表最小生成树遍历最短路径拓扑排序算法

基本算法思想

贪心算法分治算法动态规划回溯算法枚举算法

排序

O(n^2) 冒泡排序插入排序选择排序希尔排序

查找

线性表查找散列表查找树结构查找图查找

搜索

广度优先深度优先

字串符

存储模式匹配编程语言

由于 AndroID 开发主要使用 Java 语言,因此对于 Java 的学习显得尤为重要,因此本公众号也会着重学习 Java 各方面的知识点,对于 AndroID 开发,Google 目前也主推 kotlin ,因此也会涉及到 kotlin 相关的内容。对于跨平台开发的内容,RN 和 Flutter 我们也会涉及到的。

基础JDK/JRE区别数据类型自动装包拆包重载和重写区别接口多态继承内部类高阶

集合框架

Collection List(ArrayLlst,linkedList,Vector)set(Treeset,HashSet)Map HahsMapHashtableTreeMapArrayMap多线程容器 copyonwrteArrayLlstConCurrencyHashMap

多线程/井发锁

生命周期启动方式线程安全/锁线程池

进程/通信方式

Socket消息队列管道内存共享AIDL信号量

反射
泛型
动态代理

垃圾回收和GC

分代回收回收算法垃圾回收机制可达性分析引用类型

JVM虚拟机

classLoaderJVM内存模型GC回收机制

注解

AndroID

接下来就是我们的重头戏 AndroID 部分的知识点,AndroID 部分的知识点多而且杂,因此做一个学习大纲很重要,将重要的知识点都以大纲的形式列出来,这对于我们学习 AndroID 开发帮助很大。

入门

Androld studio安装及插件使用

安装常用插件 GsonFormatAndroID Parcelable code generatorlifecycle sorterAdb WIFIECTranslation

四大组件

Actlvity Activty启动过程启动模式生命周期taskAtfinityintentonNewIntentService startServicebindServiceIntentServiceContentProvIDerbroadCaseReceiver 注册方式(动态,静态)传递方式(有序,无序)事件种类(自定义,系统)范围(全局,本地)

组件持有的Context和Appllcation区别

fragment

懒加载与Activity/fragment通信

vIEw的基础知识

工作原理 onMeasureonDraw(palnt,Bltmap,Canvas,Matrix,PorterDuftXtermode)onL ayout基础 查看工具(GestureDetector,VelootyTracker,VlewConfiguration)监听(ontouch,ontouchEvent,onCllck,执行顺序)滑动 事件分发(dispatchtouchEvent,onIntercepttouchEvent,ontouchEvent)滑动冲突解决

常用控件/布局

RecyclervIEwSupportlibrary v4v7v11WebvIEw JsBrIDgeDeeplink首屏加速内存泄漏SurfacevIEwDialogSnackbarNotiticationActlonbar约束布局

基础动画

属性动画帧动画Animation补问动画MaterialDesign动画

MaterialDesign

状态栏/导航栏/沉漫式设计

资源

单位themeLayoutDrawable .9patchEHShape(gradIEnt,size,stroke,padding,corners)selector适配进阶

进程/线程/事件

线程通信 HandlerTimer/TimerTaskThread/ThreadPoolExcutorAsyncTaskIntentServlce进程 优先级(可见进程,服务进程,后台进程,空进程,前台进程)进程间通信(Messager,AIDL,BInder,序列化,匿名共享内存)事件 事件总线应用保活 白色保活黑色保活灰色保活

数据持久化

本地存储 sqlitesharedPreterence文件数据格式 Jsonxml跨进程 SerlalzableParcelable

性能优化

内存优化电量优化数据传输优化网络优化缓存优化其他优化(启动时间优化,布局优化,apk大小优化)

架构设计

MVPMVCMVVMAndrold Architecture ComponentsAndrold Jetpack

开源框架

ORM数据库框架/GreenDao图片缓存框架/GlIDe/Fresco/ulL/picasso文件框架网络框架/RetrofitlVolley/OKhttp注入依赖/ButterKnite/Dagger2序列化(gson/tastJson)路由ARouterRxjava事件总銭EventBus高级

Framework层源码

UI组件 四大组件fragmentcontext/applicationwindowwebvlewrecyclervlew系统服务 ActlvityManagerServiceWindow/WIndowManagerWindowManagerServiceServlceManager流程 Androld系统启动流程应用启动流程apk安装过程apk打包过程Androld系统 内存管理机制任务管理机制消息通信机制安全机制

逆向安全

root原理small字节码dex加固和反加固hookndk混渐签名

虚拟机

Dalvlk虚拟机ART虚拟机

热门技术

插件话原理组件化原理热修复原理

 

结尾

对于其他部分的内容,我将准备部分涉及到,作为平常学习的润滑剂,主要的还是上面的三大部分,如果能将上面三大部分通学一遍,从入门到高级应该只是时间的问题。接来下的文章我们会分篇将对以上部分的大纲进行详细的记录学习总结。

关于程序员系统学习

我们都很渺小,在宇宙中甚至比不上一颗尘埃,可是人为何称之为人,就是因为人懂得思考,知道学习的重要性。并且随时愿意改变自己,重新出发。我们一生都在忙忙碌碌,为自己而活的时间太少太少,努力奔跑不仅仅是为了活着,更多的是实现我们自己的理想与报复。存在即为意义,我希望大家能跟我一样坚持,你不知道下一个黄金浪潮在哪里,但是只要你在里面,总会赶上的啊!下一个AndroID辉煌的时刻可能就在明天呢?

目前我们要做的就是选好自己细分领域深入研究,对基础原理性内容深入理解,尽快向高级水平靠近并达到。当然也要了解新技术,拥有开放的心态去学习一些新技术,不要一开始出来一个新技术就转入学习,这样会导致啥都会一点啥都不会,当然新技术是有一个发展过程的,不会立马流行和大量应用等它稍微成熟点。

这样你会少踩很多坑,也不要排斥它,完全不去理会和了解学习,正确的方式是简单了解这个技术产生是为了解决什么问题,有什么优缺点已经目前发展成熟度和应用范围,我们还是要多抓住技术的本质和基础,这样出现了新技术学起来也会很轻松,当然机会合适了再去学习它。 所以,找准自己的定位及细分领域。

多余的话就不讲了,接下来将分享面试的一个复习路线,如果你也在准备面试但是不知道怎么高效复习,可以参考一下我的复习路线,有任何问题也欢迎一起互相交流,加油吧!

首先是超级详细得不能再详细的AndroID开发学习思维导图,因为图片实在是太大了,所以我就只把二级目录的内容放出来,更加详细的你们可以私信获取。

 

接下来就需要梳理知识,提升储备了!(AndroID移动架构师七大专题学习资源)

架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO

AndroID高级UI与FrameWork源码:高级UI晋升+Framework内核解析+AndroID组件内核+数据持久化

360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化

解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+AndroID架构组件Jetpack

NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发

微信小程序:小程序介绍+UI开发+API *** 作+微信对接

HybrID 开发与Flutter:HTML5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

然后再是通过源码来系统性地学习

只要是程序员,不管是Java还是AndroID,如果不去阅读源码,只看api文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

 

《486页超全面AndroID开发相关源码精编解析》

刷大厂面试题备战,增加大厂通过率

历时半年,整理了这份市面上最全面的安卓面试题解析大全。

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

 

《379页AndroID开发面试宝典》

以上内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。

最后还有耗时一年多整理的一系列AndroID学习资源:AndroID源码解析、AndroID第三方库源码笔记、AndroID进阶架构师七大专题学习、历年BAT面试题解析包、AndroID大佬学习笔记等等,这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。

总结

以上是内存溢出为你收集整理的工作出现瓶颈,学习效率下降?通学这份Android进阶知识体系,从入门到高级只是时间问题!全部内容,希望文章能够帮你解决工作出现瓶颈,学习效率下降?通学这份Android进阶知识体系,从入门到高级只是时间问题!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1043020.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存