分类:: Android

0

Android动画框架总结

概述 在Android中, 动画分为两种: Animation和Transition. 其中Animation分为View Animation和Property Animation. Transition是用于Activity和Fragment的转场动画. View Animation的作用对象是整个View对象, 它只支持4种动画效果: 平移, 缩放, 旋转和透明度动画. 另外, View

0

Android事件分发机制总结

关于Andorid事件分发机制的解析, 网上一堆文章, 并且写得很详细, 因此这里只写写一些总结, 不涉及原理的解析. 分发对象 在Android中, 点击手势被封装成MotionEvent对象. 因此对于点击事件的分发, 实质上是对MotionEvent对象的分发. 对于单点触控, 有下面两种情况的手势对应MotionEvent的状态: 点击 -> 松开 : ACTION_DOWN

0

SP解析

概述 SharedPreferences是Android中的数据持久化技术中的一种. 它将Key-Value键值对储存在一个XMl文件中. 它比较适用储存小量的数据. 比如一些应用的配置信息. 使用 SharedPreferences的被设计成读写分离的模式, SharedPreferences用来读取数据, SharedPreferences.Editor则是用来写数据. 获取Shar

0

AsyncTask源码浅析

源码浅析 概述AsyncTask是一个执行异步任务的小型框架,里面封装了Handler,使得使用者不必关心线程之间的切换,虽然现在执行异步任务都不会用AsyncTask,用得更多的是Bolt Tasks 和RxJava,但是AsyncTask中的设计思想还是很多值得学习的,比如:内部中,串行运行任务时的队列控制,handler的将结果回调回主线程,以及如何取消正在执行的任务等。。

0

universal-image-loader源码浅读

概述 UIL是一款经典的图片加载框架,该类库的设计运用了多种设计模式,使得它的可拓展性增加,比如缓存的策略,如果默认的缓存策略不能够满足你的需求的话,你完全可以自己定制自己的缓存策略。 使用者不必关心加载图片时会发生OOM,其中发生的概率还是很小的,因为类库中对图片进行了三级缓存,其中的内存缓存使用了双级缓存(强引用和弱引用)。 库中考虑到用户可能会使用ListView,GridView或者RecyclerView来展示图片,因此在库中提供了一个PauseOnScrollListener来控制滑动时是否要加载图片。 这次,简单来分析类库的使用流程

0

Volley--队列控制

Volley之四个队列的配合使用概述在Volley中,存在这四个重要的队列,这次想单独来分析一下这四个队列的配合使用。

0

Volley--网络优化和缓存

概述:volley的特点都大家很清楚,volley适合数据量小且通信频繁的请求,但是不适合数据量大的请求。volley有这样的特点是由其内部网络优化和缓存所决定的,这次分析其中的原理。

0

重拾Dagger2-组织

回顾在上一篇中, 我们从源码的角度分析了Dagger的工作原理, 在这一篇中, 我们来重点讲解Dagger2依赖组织的方式, 在讲解之前, 我们先来理解Component dependencies和SubComponent Component dependencies VS SubComponent为了提高一个Component中代码的复用度, 我们可以利用 Component dependenc

0

CustomView总结

LayoutParams认知 Q: 什么是LayoutParams? 它跟view的关系是什么? 什么是LayoutParams? 我们在XML布局中定义的layout_xx属性,最终都会以Java代码的形式展现出来, 而LayoutParams就是这些layout_xx属性在Java层的映射, 也就是说LayoutParams是view在xml布局中layout_xx的属性容器. 可见,

0

重拾Dagger2

最近项目没什么bug,也没什么新的需求, 闲得有点慌(其实一直很闲…), 既然那么闲, 那就重新深入学习Dagger2吧. 之前虽然有学过Dagger2, 但是并没研究其中的原理, 用起来总感觉很不踏实, 于是借此机会研究了一波Dagger2, 并准备分为三篇来讲, 分别为: 使用篇, 原理篇和组织篇. 本篇的目的就指在介绍Dagger2 Dagger2是什么?Dagger2是之前由Square公

0

重拾Dagger2-理解Dagger2

回顾上一篇我们主要介绍了如何用Dagger2在Android应用中进行依赖注入, 在这一篇中, 我们主要来理解Dagger2中的原理, 毕竟知己知彼后才用得踏实 API关系 Provider: provider是一个接口, 它的作用是包装被依赖的类 Factory: 继承于Provider, 作用是创建依赖的对应实例 MembersInjector: 也是一个接口, 作用是将依赖注入到需要依赖的

0

重拾Dagger2-使用Dagger2

常用注解解释在学习Dagger2之前,我们最好就是将Dagger2中的常用的注解的含义捋清一遍, 这样上手Dagger2就不会显得那么难,所以下面我准备介绍Dagger2中常用的注解的含义,这些注解包括 Inject Provides Module Component Qualifiers Scope InjectInject的中文意思是注射,在Dagger2中它在不同的地方代表不同的含义.当

0

Picasso中值得学习的技巧

Picasso中的线程池 Picasso中的线程池主要是对对网络状态进行了监听,并且包装了一个FutureTask实现请求的优先级比较。 分析: 首先在Picasso中,定义了一个优先级枚举类型: 12345678910/** * The priority of a request. * * @see RequestCreator#priority(Priority) */ public enum Priority { LOW, NORMAL, HIGH }

0

Picasso基本用法及源码浅析

基本用法:加载图片: picasso支持从Resource,MediaStore,content,contacts,url 加载图片。 123Picasso.with(this) .load(uri) .into(mImageView); 以上是最简单的通用加载图片的方法