
Android高级进阶
文章平均质量分 93
我就是马云飞
欢迎来到马云飞的博客,寂寞如风一般的少年。正朝着大牛的方向前行。希望我的博客可以帮助你们向大牛的方向前进。我不信神,但我通过巨人的肩膀凝视神所在的方向。
展开
-
OkHttp源码分析
本文基于OkHttp 4.9.0分析OkHttp是什么?众所周知,OkHttp是一个客户端用来发送HTTP消息并对服务器的响应做出处理的应用层框架。而且现在流行的Retrofit的底层同样也是基于Okhttp的。那么OkHttp有什么优点呢?我们来看下:无缝的支持GZIP减少数据流量缓存响应数据减少重复的网络请求请求失败自动重试主机的其他ip,自动重定向。如果 HTTP/2 不可用, 使用连接池复用减少请求延迟。…使用方式OkHttpClient client = new OkHt.原创 2021-04-10 18:01:35 · 412 阅读 · 0 评论 -
Android的消息机制
概述说到Android的消息机制,我们肯定会想到Handler。是的,Android的消息机制主要是指Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作过程。当我们工作的时候我们只要接触到Handler就可以了。Android的消息机制主要是指handlr的运行机制,handler的运行需要底层的messagequeue和looper来支撑。mess...原创 2018-09-25 16:05:01 · 315 阅读 · 0 评论 -
android的线程和线程池
概述线程中Android中是很重要的一个概念。从用途上来说,线程分为主线程和子线程。主线程主要用于界面上的交互,而子线程主要用于一些耗时操作。除了thread之外,在Android中可以扮演线程角色的还有很多。例如Asnyctask、IntentService以及handlerthread。对于asnyctask,它的底层用了线程池,对于intentservice和handlerthread来说...原创 2018-09-25 16:03:14 · 429 阅读 · 1 评论 -
我们熟悉的Context到底是什么?
Context基本概念先看一下Context源码,代码如下: /** * Interface to global information about an application environment. This is * an abstract class whose implementation is provided by * the Android system. ...原创 2018-09-14 17:44:54 · 512 阅读 · 0 评论 -
彻底理解Window的添加,删除,更新过程
概述Window表示一个窗口,但在日常开发中我们接触的不多。我们常见的如Toast和PopWindow都是属于Window。Window是一个抽象类,而Window的具体实现类是PhoneWindow。如果我们需要创建一个Window,只需要通过WindowManager去实现。而它的具体实现是在WindowManagerService中。我们需要知道Android所有的视图都是附加在Wind...原创 2018-09-17 14:42:23 · 1437 阅读 · 1 评论 -
View的绘制流程源码分析
概述View的绘制流程主要是指测量、布局以及绘制显示,在View中,measure是测量View的宽高,layout是控制View四个顶点的位置,而draw就是将布局直接绘制出来。Measure流程measure的流程氛围View的measure流程以及ViewGroup的measure的流程。之所以把View和ViewGroup分开就是因为ViewGroup不仅仅要测量自身的宽高,而原创 2018-01-16 14:38:26 · 1068 阅读 · 0 评论 -
Android性能优化全方面解析
目的公司的新需求终于解决完了,离测试和发布还有段时间,第一次体验了下没需求没bug的感觉,真是舒爽~然后翻了翻有什么可以学的。无意翻到了Android后期发展的五大趋势。一、性能优化。二、高级UI。三、JNI/NDK开发。四、架构师。五、RN开发。这也许将会是我的进阶趋势。早已知道在瓶颈期的我,似乎看到了突破的希望的。初级进阶中级也好,中级进阶高级也罢,现在的市场无非是根据经验规定的,根据能力的少之原创 2017-05-15 11:47:59 · 7776 阅读 · 6 评论 -
ViewGroup源码解读
本篇文章已授权我的公众号:我就是马云飞 首发 我们之前刚刚分析完事件传递机制和view的源码,如果没有看过的,建议看完View的事件拦截机制浅析以及View的事件源码解析。这次我们来分析下viewgroup的。可能有人会想,怎么又是源码分析,肯定又是一大通。其实没你想的那么复杂。仔细分析一波就行了。解读ViewGroup我们都知道,一个事件完整的流程是从dispatchTouchevent–>onI原创 2017-08-31 11:54:59 · 4654 阅读 · 5 评论 -
View的事件源码解析
上次刚刚分析了view的事件拦截机制,那么这次我们通过源码来分析一波view的事件,如果对view的事件不了解的,可以先看View的事件拦截浅析解析View源码既然是分析源码,那么我们就要找准入手点,不然几万行代码看完在整理完还是很累的。既然是事件的分析,我们就应该知道从哪入手。就是touchevent了。首先,我们先了解下下面几个属性,这肯定是和事件有关的。1.clickable:控制当前view原创 2017-08-28 16:07:49 · 2265 阅读 · 0 评论 -
360插件化Replugin爬坑之路
前言继上次爬完了热修复的坑位,中途爬了各种各样的坑。今天我们来说说插件化Replugin的坑位。Replugin刚出的时候我就看过了。第一次看的时候可能心态不好。没看懂= =第二次重头在看,发现蛮简单的,可能一两个小时就搞定了。但是这玩意出来我就知道了。今天才整理。这就可想而知,坑位多的有点可怕。好了。下面,我们一一整理这些各式各样的坑。主程序接入gradle的依赖在整个项目的build.gradl原创 2017-08-01 10:42:17 · 6036 阅读 · 1 评论 -
百行代码打造高级联动特效
前两天突然看到一个联动效果蛮不错的,虽然不知道具体什么地方会用到。不过也随手鲁了一个。效果如下图: 效果是不是挺好玩的~~。那么让我们接下来一步步的分析一下。思路首先,让我们想象一下如何实现?自定义view?自定义layout?还是什么?首先这是多层布局的嵌套。肯定会发生的就是事件拦截和分发。我们想像一下Coordinatorlayout+Appbarlayout+CollapsingToolba原创 2017-07-12 11:32:38 · 3440 阅读 · 4 评论 -
Tinker爬坑之路
目的热修复去年年底出的时候,变成了今年最火的技术之一。依旧记得去年面试的时候统一的MVP,然而今年却变成了RN,热修复。这不得不导致我们需要随时掌握最新的技术。不然可能随时会被淘汰。记得刚进公司,技术总监就给我们布置了学习RN和热修复的任务。不过因为临时调整去了产品部。学习的时间变少了。最近抽空看了关于热修复。于是,便有了此文。概述关于热修复,说白了就是线上修复,这个基本就不用多解释了。因为如果出了原创 2017-06-06 11:44:34 · 11152 阅读 · 9 评论