释然的年终总结 | 暗黑2020 前言 我正在参加掘金2020年度人气作者打榜 为 释然小师弟投票的小伙伴均可获赠Android高开面试全攻略及Android内参:源码学习的道与术小专栏一份 请联系微信Yahahaltd领取 回顾2020大家好,我是释然,一个平平无奇的Android开发者 2020年,我经历了这些 2020年是艰难的一年,被无端指责抄袭,因疫情停发工资,因团队解散被迫离职 2020年是荒废的一年,有大半年 2021-01-23 技术漫谈
重学面向对象:到底什么是多态? 前言接触Java这么久,我们一定都知道,作为面向对象阵营的典型代表,封装、继承、多态 (其实还应该包含抽象)是其三大基本特征 但是到底什么是多态,它的底层又是如何实现的,又有什么优缺点,可能就没那么容易说清楚 今天我们从它的近亲 C++ 语言来重新审视下,到底什么是多态 下面,正文开始! 什么是多态多态(Polymorphism)是面向对象的三大基本特征之一,多态是在 面向对象 的语境下,将数据模 2021-01-18 面向对象
线程锁事:从ReentraientLock看锁的正确使用姿势 前言前面我们对并发容器和线程协作工具进行了相关源码分析,今天我们将从使用出发,并继续深入源码,看看ReentraientLock是如何对锁的使用进行封装和优化的 下面,正文开始 使用ReentraientLock实现顺序打印在篇一:为什么CountDownlatch能保证执行顺序?中,我们使用CountdownLatch实现了顺序打印的需求,并且分析了其原理其实是线程间的通知和唤醒 Reentra 2021-01-18 并发编程
线程锁事:并发容器为什么能实现高效并发? 前言前篇文章介绍了CountdownLatch的使用及原理,而在并发中,除了多线程协作,我们还需要考虑如何实现高效并发 今天继续从源码的角度出发,聊一聊并发容器是如何实现高效并发的 下面,正文开始! 为什么Hashtable并发效率低?在提高效并发前,我们先讲一讲HashMap和Hashtable Hashmap是面试中的高频考点,也是实现hash表的重要的数据结构,可以用来存储键值对信息,可以根 2021-01-18 并发编程
线程锁事:为什么CountDownlatch能保证执行顺序? 前言不同的线程之间需要协作,最原始的做法就是通过等待通知机制来实现,通过Object中的wait(),notify,notifyAll()进行处理 CountDownLatch 是用来控制线程执行顺序的工具类,也可以说是处理线程协作的工具类 今天我们从CountDownLatch为切入点,看看它是如何支持线程协作的,以及内部是如何实现的 另外,我们也会列举一些其他的线程协作工具及用法 下面,正文开 2021-01-18 并发编程
Android11源码分析:静态广播是如何收到通知的? 前言 经过前面Activity,Service的分析,相信大家一定发现了,四大组件最大的特性就是支持跨进程 作为四大组件之一的广播,使用起来相当方便,可以通过注册广播接收系统消息,也可以方便的跨进程传递消息 今天我们就来分析下,广播是如何实现跨进程传递消息,以及静态广播,动态广播是如何注册和收发消息的 下面,正文开始! 注: 文章分析源码基于android11.0.0-r8,为方便阅读,部分源 2021-01-18 源码分析
Android11源码分析: UI到底为什么会卡顿? 前言 前几年,Android经常被吐槽不如IOS系统流畅,给人的感觉就是一卡一卡的 直到近一两年Android高刷屏开始普及,才从体验上真正有了一个质的提升 针对UI刷新的优化,系统层也一直在做相关的工作 今天我们从应用层的是使用出发,去深挖下源码,看看UI卡顿的根源到底是什么 下面,正文开始! 注: 本文源码基于android11.0.0-r2,保证逻辑清晰,部分源码有删减 UI是怎么刷 2021-01-17 源码分析
插件化探索:插件Activity是如何启动的 前言 分析完了Android四大组件的源码,接下来我们来聊一个相关性很强的话题:插件化! 插件化复杂的地方在于,如果一个完整的apk想要用插件的方式去加载到另一个Apk去,需要完成三个核心的需求 对插件中的代码(即class类)进行加载 对插件中的资源(即resource)进行加载 实现对四大组件的调用的支持 今天我们将围绕这三个核心的需求进行分析讲解 如何实现对插件类的加载?插件类的加载 2021-01-17 插件化
Android11源码分析:Activity是怎么启动的? 前言上一篇文章简单介绍了activity的启动流程,但只提及了与进程启动相关的部分,今天我们完整的看一看,activity是怎么被创建出来,又是如何与生命周期相绑定的 在今后的文章中,我们也将从插件化的角度来介绍,如何hook系统服务来达到加载插件activity的功能 温馨提示 别忘了点赞支持下,点赞越多更新越快哦~! 有任何建议也欢迎在评论区中交流! Activity启动流程分析启动a 2021-01-17 源码分析
Android11源码分析:应用是如何启动的? 前言众所周知,四大组件都是可以跑在单独的进程中的 在Android中,一个Application(应用)对应着一个或多个进程 对于应用开发者层来说,开启进程往往是被动开启 所谓的“被动开启”,即通过应用的组件,比如Activity,Service来启动对应的进程 今天我们通过Activity和Service的启动流程,来分析下在组件的启动过程中是如何将进程启动起来的 从Activity看如何开启一 2021-01-17 源码分析