小巧的对象池Pools
小巧的对象池PoolsAndroidX的核心库中有一个util工具包,里面有一个用于创建对象池的帮助类:Pools。简短的一百行代码呈现了一个标准对象池的实现。1、Pool<T>接口从源码中看见官方标准的对象池接口定义Pool<T>。2、实现对象池基于上面定义的Pool接口,实现对象池,这对于程序员来说是基本功。看看框架的是怎么实现的。2.1、SimplePool最简单的对象池实现SimplePo
加入于 2019-10-06
不忘初心的阿甘
598
文章
41
评论
小巧的对象池PoolsAndroidX的核心库中有一个util工具包,里面有一个用于创建对象池的帮助类:Pools。简短的一百行代码呈现了一个标准对象池的实现。1、Pool<T>接口从源码中看见官方标准的对象池接口定义Pool<T>。2、实现对象池基于上面定义的Pool接口,实现对象池,这对于程序员来说是基本功。看看框架的是怎么实现的。2.1、SimplePool最简单的对象池实现SimplePo
AsyncLayoutInflater源码颇析别看AsyncLayoutInflater源码只有233行,代码质量非常高。二百行左右的代码,值得开发者好好学习。这就是阅读源码的意义,也要写出这样优秀的代码。1、构造AsyncLayoutInflater实例传入Context构造AsyncLayoutInflater实例:初始化AsyncLayoutInflater内部这几个变量:LayoutInf
AsyncLayoutInflater异步加载布局提到应用性能优化,首先就是布局优化:布局臃肿、层级太深等等会导致绘制卡顿,严重的话影响用户体验。在布局优化一文中,提到布局优化相关的知识。如果你的应用布局实在是太复杂加载很耗时,甚至造成应用的卡顿,该如何优化呢?思路就是将耗时的布局加载放到子线程中,加载完毕再回到主线程显示,这就是AsyncLayoutInflater的做法。1、AsyncLayo

OptionsMenu:选项菜单Android中菜单有三种:OptionsMenu、ContextMenu和PopupMenu。后两种见之前写过两篇博客:ContextMenu:上下文菜单和PopupMenu:弹出菜单。1、OptionsMenu简介OptionsMenu是应用的主菜单,另外两种作为菜单的补充。很早之前的旧Android手机中按物理菜单键会弹出OptionsMenu。一般在状态栏上

添加三方依赖的正确方式项目开发中需要使用很多三方库:Json解析使用Gson、图片加载使用Glide、网络访问使用OkHttp和Retrofit等等等。各种各样的开源库,五花八门的版本号,到底用哪个呢?项目中选择合适的三方库很重要。不要再把三方库下载下来拷贝到项目的libs目录下集成,老的项目可能还在用这种方式,项目更新三方库有点麻烦。直接用Maven远程仓库(公开或私有仓库)集成更方便。1、Ma
Monkey:自动化UI压力测试Monkey 是内置在Android系统中的Shell脚本工具,源码在目录/development/cmds/monkey中,用来生成伪随机用户事件(例如点击、轻触或手势)流以及很多系统级事件。测试团队使用 Monkey 对正开发中的应用进行压力测试。一般可以测出空指针异常、内存泄漏等问题,再结合Log、hprof文件进行分析。更高级的UI自动化测试框架可以学习使用

Volley之CacheDispatcher缓存在源码解析Volley请求队列RequestQueue一文最后,我们看了向请求队列添加Request网络请求的逻辑。如果请求开启缓存,那么会先将请求放到缓存队列中处理,缓存队列没有或者缓存过期的话再放到网络请求队列中处理并返回。1、CacheDispatcherCacheDispatcher也是继承自Thread。1.1、CacheDispatche

Volley之网络请求NetworkDispatcher在源码解析Volley请求队列RequestQueue一文最后,我们捋了向请求队列添加Request网络请求的逻辑:对于没有缓存需求的网络请求,sendRequestOverNetwork(Request<T> request)放入网络请求队列mNetworkQueue中等待处理:1、NetworkDispatcherNetworkDispa

代码缩略地图插件CodeGlanceCodeGlance是一款非常好用的代码地图插件,将类似于Sublime中的代码地图嵌入到编辑器窗格中:在代码编辑区的右侧生成一个竖向可拖动的代码缩略区,可以快速定位代码的同时,并且提供放大镜功能。GitHub:github/vektah/CodeGlance打开AndroidStudio的File > Settings > Plugins菜单,搜索CodeGl

Volley请求队列RequestQueueVolley将所有的网络请求通过RequestQueue内部进行管理,这是一个很内敛的设计思想,先从Volley的入口开始颇析。1、创建请求队列通过Volley进行网络请求,首先得获取这个网络请求队列RequestQueue。1.1、通过Volley newRequestQueue(...)方法在Volley使用介绍一文中,我们通过Volley类提供的静