![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
HopCoder
这个作者很懒,什么都没留下…
展开
-
Android面试框架源码-EventBus源码初探
本来以为我自己很懂EventBus源码,其实我只是对EventBus的实现原理很了解,但是框架源码内部的代码逻辑,并不是很了解,因为今天面试的时候并没有回答出来,所以特意补一下。 总的来看缓存是根据 eventType作为key 的。原创 2020-04-08 22:39:57 · 197 阅读 · 0 评论 -
面试必问框架之Retrofit源码解析
[retrofit](https://github.com/square/retrofit)是目前Android移动端领域最火的框架,相比我们之前使用的HttpClient 、XUtils、Volley等拥有非常方便的API、丰富的注解,帮助开发者轻松实现网络请求,并且遵从RESTFUL接口的场景。众所周知这个框架是对OKhttp的封装,意思就是说它本身不具备网络请求的功能,它只是把我们需要请求的URL、参数以及请求类型封装起来,然后告诉底层的OkHttp发送请求,并把请求结果返回回来。原创 2020-03-07 17:39:52 · 830 阅读 · 1 评论 -
面试必问框架之OkHttp源码解析
OkHttp是目前应用最广泛的网络底层框架,网络访问效率相比其他框架要快很多,归结于它底层使用的Okio访问服务器,相比于传统IO 它使用的叫做NIO与传统IO结合,是一种非阻塞式IO。我们今天想介绍的是基于此做的上层封装, 介绍它是如何把请求发送给服务器。原创 2020-03-06 22:15:16 · 446 阅读 · 0 评论 -
面试必问框架之ARouter源码解析
关于ARouter如何使用我们这里不做解释,主要针对两个问题1、初始化做了什么事;2、如何启动Activity或者Fragment的1、初始化做了什么事ARouter.init(this) 在使用ARouter时这句话是必须调用的。 protected static synchronized boolean init(Application application) { ...原创 2020-03-06 19:07:25 · 2575 阅读 · 0 评论 -
结合源码了解RecyclerView工作机制详解
RecyclerView 众所周知有四级缓存是目前性能最好的ListView控件,官方也是推荐使用这个控件,同时支持LayoutManager 以及 ItemDecoration 自定义元素的摆放以及分线线。接下来我们结合RecyclerView的源码来了解下它的工作机制, 只有了解了工作机制以后我们才更容易方便我们来使用它。首先我们来一个简单使用RecyclerView recycler_v...原创 2020-03-01 13:54:35 · 313 阅读 · 0 评论 -
UI绘制过程(一) -- APP如何启动的
源代码是28版本,使用的软件是AS入口是ActivityThread.main()方法attachApplication在main()方法中会调用一个attach方法在这个方法里面会使用一个IActivityMannager去调用一个attachApplication方法,IActivityMannager实际是ActivityManagerService(AMS)的代理类。Activit...原创 2019-10-27 18:24:30 · 794 阅读 · 0 评论 -
UI绘制流程(二)-- 测量、布局、绘制方法
上一篇中 ActivityThread 的handleResumeActivity 执行了Activity的onResume方法大概的路径是performResumeActivity() -> activity.performResume -> mInstrumentation.callActivityOnResume -> activity.onResume() @...原创 2019-10-26 17:45:51 · 206 阅读 · 0 评论 -
详解Rxjava原理,其实没有那么难
一、基础知识RxJavaPlugins.onAssembly(new SingleJust<T>(item));这个方法的作用设什么呢,其实它的作用就是一个转换作用。使用的hook技术,这里原理比较难懂 暂时理解成会转换成 new出来的对象吧。/** * Calls the associated hook function. * @param <T> the va...原创 2019-08-18 16:17:23 · 1012 阅读 · 0 评论 -
自己动手实现一个简易版本的ButterKnife
上一篇 ButterKnife源码分析- 涉及元注解和AbstractProcessor和javapoet 我们已经了解了Butterknife的源码,总体来讲这个框架理解起来并不难, 思路很清晰,基本就是一条线没有很绕的地方。接下来我们结合源码的实现,我们实现一个自己的简易版本的带有findViewById功能的Knife。第一步 创建项目 引入依赖新建一个annotations 的j...原创 2018-11-21 15:12:27 · 336 阅读 · 0 评论 -
ButterKnife源码分析- 涉及元注解和AbstractProcessor和javapoet
一 、 从调用端分析为了方便理解我们从最简单最常用的findViewById入手,通常我们只需要写下这样一份代码就可以替代繁琐的findViewById方法。@BindView(R.id.toolbar)Toolbar toolbar;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCr...原创 2018-11-20 17:33:54 · 524 阅读 · 0 评论 -
最全面的AsyncTask源码解析,解决你的面试疑惑
AsyncTask相信大家并不陌生,它是android官方给我们提供的处理异步任务更新UI的API,使用它可以非常灵活的在子线程中执行任务,然后在UI线程中更新UI。一、简单使用1、继承AsyncTask抽象类实现doInBackground方法public class DownloadAsyncTask extends AsyncTask { private stati...原创 2018-08-09 11:03:16 · 234 阅读 · 1 评论 -
IntentService源码解析
IntentService 介绍IntentService 源码IntentService使用1、定义IntentService2、注册Service3、开启ServiceIntentService 介绍IntentService是一个专门处理后台异步任务的服务。官方的介绍是 IntentService is a base class for {@li...原创 2018-05-03 12:44:17 · 227 阅读 · 0 评论 -
从源码角度看handler 消息机制
Message 消息对象1、 属性MessageQueue 消息队列1、 主要方法Looper 消息泵1、Looper.prepare()2、Looper.loop()Handler 消息处理者涉及的类主要有这四个 Message MessageQueue Looper HandlerMessage 消息对象1、 属性主要属性...原创 2018-05-03 10:14:10 · 249 阅读 · 0 评论 -
HandlerThread源码解析
HandlerThread源码1、 run()HandlerThread应用1、HandlerThread的用处2、如何使用呢?HandlerThread源码它是一个Thread的子类,源码很简单,只有100多行代码1、 run()@Overridepublic void run() { mTid = Process.myTid();...原创 2018-05-03 10:12:29 · 191 阅读 · 0 评论 -
【adb】常用命令使用
自己以前不知道如何使用adb,现在知道了,记录备案 adb是Android Debug Bridge,开发当中我们难免会遇到很多关于adb的东西,adb是android sdk目录下的一个工具软件 adb.exe,通常我们在使用的时候会出现”adb不是内部或外部命令,也不是可运行的程序或批量文件”,原因是你们配置环境变量造成的 配置方法是 win7 计算机右键->属性->高级系统设置->选择环原创 2016-03-09 15:21:08 · 478 阅读 · 0 评论