重学Android
ApkCore
重新来过
展开
-
重学Android——消息机制
Android消息机制 本文源码Api28 在Android在主线程的创建时,会自动创建一个looper,不需要我们自己来创建。 那么Android应用启动流程中,会由AMS调用的ActivityThread类,它的main入口方法里: public static void main(String[] args) { ... Looper.prepareMai...原创 2019-06-06 00:22:47 · 287 阅读 · 0 评论 -
重学Android——OkHttp3源码解读
OkHttp3 官网的介绍——An HTTP & HTTP/2 client for Android and Java applications。 它的优点: 支持http2,对一台机器的所有请求共享同一个socket 支持连接池,支持连接复用,减少延迟 支持透明gzip压缩响应体 通过缓存避免重复的请求 请求失败时自动重试主机的其他ip,自动重定向 API调用方便 OkHttp的使用...原创 2019-06-12 22:29:36 · 234 阅读 · 0 评论 -
重学Android——View的事件分发
本文源码Api28 View的事件分发 我们都知道,点击事件最重要的三个方法 //用来进行事件分发 public boolean dispatchTouchEvent(MotionEvent ev); //判断是否拦截某个事件 public boolean onInterceptTouchEvent(MotionEvent ev); //处理touch事件 public boolean onT...原创 2019-06-07 01:04:28 · 219 阅读 · 0 评论 -
重学Android——Glide4.x源码分析(1)
Glide4.x 先来说下世面上常用的三种图片加载框架Picasso,Glide,Fresco Picasso与Glide相比: 相似——api上的调用差不多,都支持内存缓存,glide是picasso的升级,性能有一定的提升 差异 缓存不同,picasso2级缓存,没有磁盘缓存,Glide三级缓存,内存-磁盘-网络的优先级加载黑乎乎。 Picasso默认加载的图片格式是ARGB-8888,G...原创 2019-06-14 01:37:52 · 446 阅读 · 0 评论 -
重学Android——基于Android9.0的Activity启动流程
Activity系统的启动 首先总结了解一下Android系统的启动: 启动电源以及系统启动 引导程序BootLoader——BootLoader是android操作系统开始运行前的一个小程序,它的主要功能就是把系统os拉起来并运行 Linux内核启动——在内核启动后,会在系统文件中找到init.rc文件,并启动init进程 init进程启动——初始化和启动属性服务,并启动zygote进程 Zy...原创 2019-06-09 00:53:08 · 601 阅读 · 0 评论 -
重学Android——Binder运行机制
Binder 昨天从源码角度看了Android9.0下Activity的启动流程,其中关于跨进程的调用,都使用到了Binder进行跨进程通信,那么今天来阅读下Android的FrameWork层怎么实现Binder的吧。 IPC IPC是Inter Process Communication的缩写,意思是进程间通信。在Android系统中,每个应用都运行在一条独立的进程上,具有自己的DVM实例,而...原创 2019-06-09 18:36:04 · 247 阅读 · 0 评论 -
重学Android——Glide4.x源码分析(2)
Glide的加载流程 接上文重学Android——Glide4.x源码分析(1) 执行加载主流程 接上一文,昨天讲到图片加载,最终调用到了onSizeReady的方法,调用了其中的engine.load方法 @Override public synchronized void onSizeReady(int width, int height) { stateVerifier.th...原创 2019-06-14 22:54:33 · 224 阅读 · 0 评论 -
重学Android——Rxjava2.x源码解析
Rxjava的诞生背景 首先要从异步编程说起,最开始的原生的系统中,如果UI系统处理耗时任务,会引发ANR,所以都是放在子线程做耗时任务,比如网络请求或者IO操作,再来更新UI界面,这需要在主线程来完成,这样就涉及到了异步编程。 最开始的异步编程主要有: 使用Java自身提供的Future模型 但这种异步结果获取比较困难,必须调用Future.get(),回去查看异步是否完成,如果完成,就返回...原创 2019-06-12 01:49:19 · 235 阅读 · 0 评论