![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
framework
droidDing
千里之行,始于足下
展开
-
android事件分发机制
基础知识MotionEvent事件简介ACTION_DOWN按下ACTION_MOVE移动ACTION_UP抬起ACTION_CANCEL事件被上层拦截时触发事件分发、拦截与消费类型相关方法ActivityViewGroupView事件分发dispatchTouchEvent☑️☑️☑️事件拦...原创 2019-06-05 14:01:00 · 1281 阅读 · 1 评论 -
android应用程序进程启动过程简析
简述在安卓系统中,当我们点击一个图标后,系统是如何一步步启动app并显示出来页面的呢?接下来我们做一下宏观流程的分析步骤Launcher进程收到用户的点击后,向AMS请求启动根ActivityAMS在判断该app进程不存在后,向Zygote进程请求创建应用程序进程Zygote进程,创建并启动应用程序进程应用程序做一些准备工作后,向AMS请求启动根ActivityAMS启动根Act...原创 2019-06-05 15:09:33 · 532 阅读 · 0 评论 -
ClassLoader类加载源码解析
Java类加载器BootClassLoader: 用于加载Android Framework层class文件。PathClassLoader: 用于Android应用程序类加载器。可以加载指定的dex,jar、zip、zpk中的classes.dexDexClassLoader:加载指定的dex,以及jar、zip、apk中的classes.dex源码解析ClassLoader中...原创 2019-06-14 08:52:03 · 1880 阅读 · 0 评论 -
如何阅读android的framework层源码
如何阅读framework层源码我们先提出4个问题来分解“如何阅读framework层源码”这个问题源码从哪里可以看到?阅读源码需要哪些基础?阅读源码需要哪些工具?如何有效地阅读源码?一、源码从哪里可以看到?阅读源码可以通过在线阅读和离线阅读两种方式在线阅读https://www.androidos.net.cn/http://androidxref.com/离线阅读...原创 2019-06-14 10:29:29 · 3330 阅读 · 3 评论 -
RecyclerView源码分析之四级缓存机制
众所周知,RecyclerView在android中实现列表是性能非常好的,那么性能好的原因在哪里呢?关键还是在它在处理view时的回收和复用。列表在滑动的时候,会进行itemView的回收和复用,那么我们就从滑动回调即onTouchEvent来入手分析。滑动时函数调用链四级缓存机制mChangeScrap与 mAttachedScrap : 显示在屏幕上和不显示在屏幕上的mCache...原创 2019-06-17 16:00:26 · 2243 阅读 · 2 评论 -
多线程、线程池及AsyncTask
基本概念进程和线程进程:资源分配的最小单位线程:独立运行的最小单位并行和并发并行:同时执行,举例子来说,就是高速公路上4辆车可以并排着跑,双核四线程的并行度是4,可以同时运行4个线程并发:单位时间内,能执行的个数,举例来说,单位时间内可以通过的车的数量线程实现方式继承Thread实现Runnable接口实现Callable接口:线程执行结束后有返回值...原创 2019-06-12 11:27:57 · 359 阅读 · 0 评论 -
android进程间通信:aidl使用及原理
android中,应用与应用、应用内不同进程之间需要做数据传递时,就需要用到进程间通信,常用的进程间通信有7种,而使用最多的便是aidl,aidl是基于binder来实现的。原创 2019-08-29 14:44:34 · 771 阅读 · 1 评论 -
android的ANR原理剖析及图解(基于android9.0)
android中如果在主线程执行耗时操作,那么将会弹出系统弹窗ANR,那么framework层是如何实现超时的判定、都有哪些情况会产生ANR呢?经过分析framework源码发现,有以下四种场景会引起ANRInputDispatching Timeout: 输入事件分发超时5s,包括按键分发事件的超时Service Timeout:服务在20s内未执行完成BroadcastQueue T...原创 2019-09-19 11:19:40 · 1045 阅读 · 0 评论