安卓-源码分析
文章平均质量分 89
android源码探究-从源码角度进行讲解
失落夏天
安卓领域开发者,擅长解决安卓的各种性能问题,以及打造插件化,效率等框架。
横向对后台/IOS/前端等领域都有涉及。
展开
-
ANR系列之八:疑难ANR问题处理记录
本文仅是记录作者自身处理过的ANR问题,以及帮助他人解决过的ANR问题。本文中所介绍的ANR处理记录仅供参考,并不适用所有场景。并且最终结论和分析并不一定就是绝对正确的。原创 2023-10-21 19:38:05 · 1089 阅读 · 0 评论 -
APM系列之二-原理篇-监听整个系统的anr和crash
本篇是APM系列文章的第二篇,主要介绍如何通过一个第三方应用,去监控整个系统中的异常事件,比如Crash或者anr。原创 2023-11-13 09:56:23 · 446 阅读 · 0 评论 -
ANR系列之六:ANR时采集的堆栈为什么会出现漂移
为什么会出现堆栈漂移的原理讲解原创 2023-06-08 10:56:13 · 1199 阅读 · 0 评论 -
安卓页面绘制流程(3)Window注册
主要介绍Window和DecorView等涉及到页面展示的关键对象是如何创建的,这些主要发生在create Activity的流程中。原创 2023-08-09 19:57:37 · 1166 阅读 · 0 评论 -
android四大组件之一-Activity实现原理分析
关于Activity启动流程中最详细和完整的文章,并且结合实际项目中的问题进行讲解。本篇文章主要会讲以下内容:1.Activity启动流程的基本介绍;2.APP侧启动Activity的流程;3.系统侧处理请求启动Activity的流程;4.APP收到系统通知后生成Activity和执行其生命周期的完整流程;生命和唤起Activity的流程;5.一些关于Activity的扩展性问题;原创 2023-05-04 09:30:30 · 2014 阅读 · 2 评论 -
Activity中startForResult的原理分析
本文会介绍以下内容:1.startActivityForResult简单实用;2.startActivityForResult的实现原理;3.startActivityForResult的一些扩展性问题。原创 2023-04-26 10:05:30 · 2200 阅读 · 0 评论 -
ANR系列之五:Service类型ANR原理讲解
本篇是ANR系列文章的第五篇,本文主要讲解service类型的ANR类型是如何发生的。本文主要讲解内容如下:1.Service类型的ANR介绍;2.两种Service类型下不同reason的ANR原理介绍;3.六种Service类型的ANR举例说明,覆盖全部场景。原创 2023-03-31 14:23:27 · 3435 阅读 · 3 评论 -
android四大组件之二-service实现原理分析
安卓中service的实现原理原创 2023-01-01 07:00:00 · 1534 阅读 · 1 评论 -
Activity事务管理讲解(ClientLifecycleManager)
安卓9开始,Activity的启动流程中,不再是系统侧直接通知APP去执行相应的生命周期,而是通过ClientLifecycleManager事务管理来替代,即系统侧构造一些事务对象,一次性传递给APP,由APP完成最终的执行。本文就带你一起了解一下Activity事务管理的实现原理。原创 2023-03-03 07:00:00 · 1196 阅读 · 1 评论 -
android14预览版介绍及解读
android14预览版详细解读和介绍原创 2023-02-10 11:13:19 · 3658 阅读 · 2 评论 -
android四大组件之四-BroadCast实现原理分析
本篇文章主要会讲以下内容:1.广播的基本介绍,以及广播流程中涉及到的核心类介绍;2.动态广播接收者的注册流程;3.APP侧发送广播事件及系统侧接收;4.无序广播的发送流程;5.有序广播的发送流程;6.静态广播的发送流程;7.一些关于广播的扩展性问题;原创 2023-01-14 07:00:00 · 2697 阅读 · 1 评论 -
DropBox系列-安卓DropBox介绍
DropBox实现原理原创 2022-12-17 07:00:00 · 3234 阅读 · 0 评论 -
ANR系列之四:ContentProvider类型ANR产生原理讲解
本文主要会讲解以下内容:1.provider类型的ANR在系统侧的处理流程;2.provider类型的ANR在应用侧如何触发;3.ContentProviderClient的使用;4.什么场景下,可以触发provider类型的ANR。原创 2022-11-28 16:56:22 · 2506 阅读 · 0 评论 -
android四大组件之三-Provider实现原理分析
本篇主要会讲以下内容:1.ContentProvider的一些基本概念和流程2.ContentProvider中具体实现和注册流程。3.使用者拿到ContentProvider的binder引用后执行具体的操作,如quert/insert等等。4.关于ContentProvider的一些扩展性的问题。原创 2022-11-26 07:00:00 · 5716 阅读 · 0 评论 -
ANR系列之三:broadcast类型ANR产生原理讲解
本文会讲内容如下:1.讲解有序广播的传递流程。2.普通有序广播的ANR机制。3.静态广播的ANR机制。4.一些扩展性的问题。原创 2022-10-24 19:44:51 · 4746 阅读 · 2 评论 -
ANR系列之二:Input类型ANR产生原理讲解
本文主要分四大块进行介绍:1.介绍ANR的判定逻辑(以输入事件为例)。2.介绍发生ANR之后,ANR相关的信息是如何采集的。3.介绍ANR的logcat和trace文件在系统中是何时记录生成,以及如何解读。4.一些围绕ANR的扩展性问题讲解。原创 2022-10-13 09:25:34 · 5993 阅读 · 2 评论 -
android源码-事件分发处理机制(下)-从信号源输入到处理完成的完整源码解读
android源码-事件分发处理机制(下)-从信号源输入到处理完成的完整源码解读。1.输入事件到处理完成的完整流程解读,从EventHub到APP侧的完整流程。2.InputDispatcher中是如何分发处理消息的;3.APP侧消费掉输入事件后的流程;4.何时会弹出ANR?原创 2022-10-01 10:12:51 · 2375 阅读 · 0 评论 -
android新版本适配-android12最全适配方案
android12马上就要出了,所以要及时的进行适配,以免出现问题。这篇文章对适配android12遇到的问题做个记录。1.编译器(1.8.0_242-release)中出现异常错误AS问题。我原来的AS是4.1.2的版本,把compileSdkVersion升级到了31,发现编译不过,提示:什么乱七八糟的错误,只能推测有可能和buildtools的版本有关,升级tools.build到4.2.2之后,提示要升级AS。所以下载了一个最新的AS的Preview版本,然后在启动,就可以了原创 2021-10-14 20:20:34 · 4438 阅读 · 0 评论 -
android新版本适配-android13最全适配方案
安卓13最全最新适配方案原创 2022-09-25 09:31:45 · 16516 阅读 · 2 评论 -
View绘制流程3-Vsync信号是如何发送和接受的
安卓中Vsync信号的全流程讲解原创 2022-08-19 12:11:34 · 2325 阅读 · 0 评论 -
android源码学习-android异常处理机制
安卓java层异常处理机制的原理原创 2022-08-18 19:28:23 · 1814 阅读 · 0 评论 -
android源码学习-Toast实现原理讲解
Toast的全流程讲解,包含原生Toast和自定义Toast两种方式。Toast相关的常问的知识点以及使用Toast过程中频繁遇到的问题和解决方案。原创 2022-08-14 20:06:31 · 4564 阅读 · 1 评论 -
BaseDexClassLoader的正确使用方式
BaseDexClassLoader的正确使用方式原创 2022-08-08 16:51:23 · 1070 阅读 · 0 评论 -
阅读android中frameworks层代码的几种方式
查看frameworks层代码的几种方式,比较每一种的优劣,方便跳转最适合读者的方式。原创 2022-08-02 14:36:23 · 2089 阅读 · 0 评论 -
安卓页面绘制流程(2)Window和DecorView的创建
讲解DecorView,ViewRootImpl,Window的关系和创建时机。原创 2022-07-26 12:02:10 · 2046 阅读 · 0 评论 -
安卓中MessageQueue能否被替换为BlockQueue?
安卓中MessageQueue能否被替换为BlockQueue?带你从源码和设计的角度去寻求问题的答案。原创 2022-07-18 19:39:11 · 742 阅读 · 0 评论 -
android中AMS通知Zygote去fork进程为什么使用socket而不使用binder?
android中AMS通知Zygote去fork进程为什么使用socket而不使用binder?通过综合各种文章的原理描述,加之源码的阅读以及实际的尝试,得出一个目前最为准确的答案。本篇文章中给出的答案,一定和你看到的任何一个版本都不一样。.........原创 2022-07-14 10:14:53 · 5491 阅读 · 11 评论 -
android源码学习- APP启动流程(android12源码)
百度一搜能找到很多讲APP启动流程的,但是往往要么就是太老旧(还是基于android6去分析的),要么就是不全(往往只讲了整个流程的一小部分)。所以我结合网上现有的文章,以及源码的阅读和调试,力求写出一篇最完整,最详细,最通俗易懂的文章,来讲清楚在android上,APP是如何启动的。.........原创 2022-07-09 19:36:58 · 8285 阅读 · 9 评论 -
android源码学习-Handler机制及其六个核心点
安卓Handler源码全面讲解原创 2022-02-28 18:20:14 · 65369 阅读 · 11 评论 -
ANR系列之一:ANR显示和日志生成原理讲解
序言 前几天有人问我,什么时候会触发ANR?随口回答,主线程卡顿并且有输入操作未被响应的时候,会触发ANR,这应该也是网上标准的答案了。但是仔细想一想,好像debug调试的时候没有点击也会出现应用没有响应的问题。好吧,那我们就带着这个问题,去一步一步的看一下,安卓什么时候会触发ANR。一.程序无响应Dialog的入口排查这个问题,我们首先要找到排查问题的入口。造一个程序无响应的场景,然后打开uiautomatorviewer工具查看布局。首先我们看到的是下面这样一个场...原创 2021-10-12 15:37:57 · 5721 阅读 · 0 评论 -
android源码学习-Looper机制
Looper是android当中处理子线程和主线程通信的一个机制,我们顺着源码看一下这种机制是如何工作的。一.Looper如何启动我们知道,android里面,每一个app都是一个单独的进程,具有独立的内存空间。java中,一个进程启动的入口就是main方法。所以在android中,一个应用的启动,入口就是ActvitiyThread的main()方法。 public st...原创 2019-08-05 16:01:18 · 519 阅读 · 0 评论 -
View绘制流程2-安卓是如何执行measure/layout/draw三个绘制流程
讲解安卓是如何执行到measure/layout/draw这三个绘制流程的原创 2019-07-05 18:20:44 · 1456 阅读 · 3 评论 -
android源码学习-View如何显示到屏幕上
View如何关联到Window等待完善。原创 2019-07-09 10:58:59 · 1067 阅读 · 0 评论 -
android四大组件之一-activity实现原理分析(已废弃)
整理下,这样写还是不太好的。先总体分为几个流程,activity,Instrumentation,ActivityManagerService,ActivityStarter,ActivityThread这几大部分。其中activity,Instrumentation,ActivityThread属于用户进程,其余的属于系统进程。一Activity部分无论何种方式调用startActi...原创 2019-07-01 15:15:30 · 1297 阅读 · 0 评论 -
android源码-事件分发处理机制(上)- java层事件分发流程
首先来一张图镇楼,说明一下方法的依次调用顺序:这张图囊括了,从native回调java,一直到ViewGroup处理的所有方法堆栈调用。我把事件分发分为4个部分:第一部分:InputEventReceiver1、当用户点击了屏幕上的某个位置之后,native层会接收到。会通过方法回调通知java层这个点击事件。方法位于InputEventReceiver类中的dispathIn...原创 2016-11-06 18:43:41 · 1909 阅读 · 0 评论 -
android源码学习-源码学习目录推荐
适合每一名安卓开发者的源码技术文章清单,强烈建议按照文章中的顺序和建议来阅读。清单会持续更新。原创 2016-11-06 16:52:31 · 15153 阅读 · 0 评论