JVM是Java Virtual Machine的简称,也就是Java虚拟机。 什么是虚拟机? 虚拟机指通过软件模拟的具有硬件系统功能的,运行在隔离环境中的完整计算机系统。 JVM与其他虚拟机的区别 VMWare、Virtual Box都是通过软件模拟物理CPU的...
Matisse中主要的模块有Matisse、SelectionCreator、SelectionSpec、MatisseActivity四个类,它们的工作流程如图: 我们先看到Matisse的使用代码,通过使用的代码来解析源码 012345678...
实现多线程的方法 查看Thread类的源码,可以发现它实现了Runnable接口,然后在自己的run方法中调用了Runnable的run方法。这里其实就是静态代理这一设计模式,Thread是代理角色,而Runnable则是真实角色。在Thread的start方法中,会为...
介绍 责任链模式是一种行为模式,它从一个起点发起请求,沿着任务链传递给每个节点的对象,直至有一个节点处理了这个请求。 它使得多个对象都有机会来处理请求,避免了请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并...
介绍 观察者模式是一种使用频率非常高的设计模式,最常用的地方就是订阅-发布系统。 这个模式的重要作用就是将观察者和被观察者解耦,使他们之间的依赖更小甚至没有。 观察者模式又被称作发布/订阅模式,观察者模式定义了一种一对多的...
Retrofit介绍 Retrofit是Square公司基于RESTful风格推出的网络框架封装。既然它与OKHttp都是Square公司推出的,那么它与OKHttp有什么关系呢? 与OKHttp的关系 Retrofit是基于OKHttp框架的二次封装,其本质仍然是OKHttp。只是在OKHttp...
什么是MVC 在维基百科中,MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。 MVC的用途 MVC模式的目的是实现一种动态的程序设计,...
介绍 Volley是Google在2013年发布的一款Android平台上的网络请求库。 它有如下特点: 使得网络通信更快,更简单 GET、POST网络请求及网络图像的高效异步处理请求 可以对网络请求进行排序优先级处理 网络请求的缓存 多级别取消请求 与...
参考文章 https://juejin.im/entry/5917d38dda2f60005de8def4 https://www.jianshu.com/p/a3474f4fee57 面向对象思想设计原则 单一职责原则 其实就是开发人员经常说的“高内聚,低耦合” 也就是说,每个类应该只有一个职责,对外只...
View是什么 首先我们需要理解什么是View。View是安卓中所有控件的基类,无论是简单的TextView、Button,还是复杂的LinearLayout、ListView,它们的共同基类都是View,ViewGroup其实也是继承了View。Button是一个View,而LinearLayout...