猫侠的小窝

一步一步,盖个大房子……

Android架构面试题

Android架构面试题

为什么会选择MVP模式? 1、分离了视图逻辑和业务逻辑,降低了耦合 2、Presenter被抽象成接口,可以有业务实现和测试实现,方便单元测试 3、把业务逻辑放到Presenter,避免后台线程引用着Activity,导致Activity无法被系统回收,造成内存泄漏 Dragger2在MVP模式中的作用是什么? MVP模式中,Activity依赖着P,P依赖着V。Dragger2起到了依赖...

Android框架层面试题

Android框架层面试题

为什么Binder可以跨进程?

Android优化面试题

Android优化面试题

什么是ANR?如何避免它? Application Not Responding。在Android中,活动管理器和窗口管理器这两个系统服务负责监视应用程序的响应,当用户操作的在5s内应用程序没能做出反应,BroadcastReceiver在10秒内没有执行完毕,就会出现应用程序无响应对话框,这既是ANR。 避免方法:Activity应该在它的关键生命周期方法(如onCreate()和onRe...

Android应用层面试题

Android应用层面试题

四大组件是什么? Activity【活动】:用于表现功能。 Service【服务】:后台运行服务,不提供界面呈现。 BroadcastReceiver【广播接收器】:用来接收广播。 Content Provider【内容提供商】:支持在多个应用中存储和读取数据,相当于数据库。 Activity生命周期? 参看《Activity组件》 Fragment生命周期? 完整:setUserVis...

任务队列

任务队列


适配器模式

适配器模式

定义 创建一个类作为两个不兼容的接口之间的桥梁,使用户在调用1个接口的成员方法时,实质上是在调用另1个接口的方法。 主要构成: 对外接口和对内接口:待适配的两个接口。 桥梁:实现了对外接口,包装了对内接口的实现类对象。把对“对外接口”的成员方法的调用,转换为对“对内接口”的成员方法的调用。 适配器:接收对内接口的实现类对象,创建桥梁。 实现 // 对内接口 publi...

动态代理模式

动态代理模式

定义 在运行时动态地为实现类创建代理对象,以控制对执行者的访问。 主要构成: 功能接口:定义暴露方法。 实现类:实现了功能接口,真正处理逻辑的类。 扩展类:实现InvocationHandler接口,在实现类成员方法调用前后添加处理逻辑的类。 代理类:运行时调用Proxy.newProxyInstance()生成的代理类。 实现 // 功能接口 public in...

责任链模式

责任链模式

定义 使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象能够处理它。 使用场景:当1个对象需要经过多个对象处理时。 主要构成: 1个流程控制接口,其中声明1个方法,用于控制流程; 1个拦截器接口,其中声明1个方法,用于处理对象,参数是流程控制节点; 多个拦截器类,都实现了拦截器接口的“处理”方法...

多线程Lru文件缓存

多线程Lru文件缓存

public abstract class LruFileCache<K, T> { private final LinkedHashMap<String, FileWrapper> lruEntries = new LinkedHashMap<>(0, 0.75f, true); private long maxSize = 100; pri...

EventBus原理与使用

EventBus原理与使用