Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:HashSet: HashSet类按照哈希算法来存取集合中的对象...
Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:HashSet: HashSet类按照哈希算法来存取集合中的对象...
责任链模式是一种设计模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端...
1.Retrofit的原理是什么 Retrofit是一个基于AOP思想,对RestfulApi注解进行动态代理的网络框架。 2.AOP是什么 Aspect Oriented ...
Butterknife是一个专注于Android系统的View注入框架,可以简化代码,比如findViewById、事件监听、资源绑定等,同时该框架使用了编译时注解,可能大家...
1、Activity生命周期? onCreate() -> onStart() -> onResume() -> onPause() -> onStop() -> onDet...
EventBus原理,主要是通过注解和反射实现,将方法保存在公共队列中供其调用,首先在register()的时候,通过反射把当前类的所有方法遍历,然后把带有@Subscrib...
1.Retrofit的原理是什么 Retrofit是一个基于AOP思想,对RestfulApi注解进行动态代理的网络框架。 2.AOP是什么 Aspect Oriented ...
Glide在加载绑定了Activity的生命周期。 在Activity内新建一个无UI的Fragment,这个特殊的Fragment持有一个Lifecycle。通过Lifec...
res会在R.java生成索引ID,在打包的时候判断资源有没有用到,没用到的时候不会被打包进apk中(res/raw文件夹除外),而assets不会。 res用getReso...
简单的区别为: 1、invalidate和postInvalidate都会使view重绘(即调用onDraw方法),不同的是,invalidate是在UI线程自身中使用,而p...
ViwePager 的缓存机制会默认缓存旁边的页面,是为了让页面更加流畅.在缓存旁边页面的时候会执行到onCreateView方法,如果你两个碎片的onCreateView ...
View和SurfaceView的区别: 1 . View适用于主动更新的情况,而SurfaceView则适用于被动更新的情况,比如频繁刷新界面。 2 . View在主线程中...
public class MyApplication extends Application { } 打开Activity08-16 15:16:27.142: D/CARL...
Fragment的懒加载实现跟fragment的生命周期,getUserVisbleHint(),setUserVisbleHint(boolean isVisibleToU...
ActivityThread在Android中它就代表了Android的主线程,但是并不是一个Thread类。 严格来说,UI主线程不是ActivityThread。Acti...
Binder机制,共享内存实现原理[https://www.jianshu.com/p/b35e0716bce1] Android匿名共享内存是基于Linux共享内存的,都是...