Volley加载网络图片
Volley加载网络图片通过前面几篇关于Volley的博客,对Volley框架算是比较熟悉了。Volley虽然小巧,应对Android开发中常见的图片加载也是丝毫不逊于专门的图片加载框架(不能显示动态GIF、不支持生命周期管理、不能动态监听网络状态 ... ...)。Volley图片加载三兄弟:ImageRequest、ImageLoader、NetworkImageView。1、ImageReq
2026年以前手搓博客一千多篇。如今 Claw、Cursor、Claude 等 AI Agent 横空出世。只需一句话,AI 就能生成文章、调整格式、润色语言,并一键自动发布。欢迎来到 AI 驱动博客时代 🚀
Volley加载网络图片通过前面几篇关于Volley的博客,对Volley框架算是比较熟悉了。Volley虽然小巧,应对Android开发中常见的图片加载也是丝毫不逊于专门的图片加载框架(不能显示动态GIF、不支持生命周期管理、不能动态监听网络状态 ... ...)。Volley图片加载三兄弟:ImageRequest、ImageLoader、NetworkImageView。1、ImageReq

Activity启动流程全新版本(基于API 30)最新的AOSP源码对Activity的启动流程进行了非常大的改动,更好的支持Lifecycle。现在基于API 30源码熟悉一下全新的Activity启动流程。一年前阅读老版本AOSP写的博客仍然保留,传送门:Activity启动流程源码分析。1、从startActivity开始构造启动的Intent,一般通过Activity或者Context的

AndroidStudio 4.1代码不高亮问题AndroidStudio作为Android开发工具,用起来很方便,结束了Eclipse + ADT时代。Google一直在推陈出新,但是也比较坑,几乎每次升级都会出幺蛾子,浪费时间解决新版本各种奇怪问题。从官网下载最新的稳定版本AndroidStudio 4.1.2覆盖安装升级之后打开AS发现所有的.java文件代码都不能正常语法高亮显示,.kt语
小巧的对象池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类提供的静
Volley使用介绍安卓开发要对几个网络开源库非常熟悉:OkHttp、Volley、Retrofit。先从轻量级的网络请求库Volley学习,它的源码不到1万行,麻雀虽小五脏俱全。1、Volley介绍Volley是Google官方2013年发布的Android平台的网络通信库。该开源框架目前看来已经非常稳定,大部分代码提交记录定格在3年前(不是没人维护了,而是不需要再修改)。GitHub:goog

Activity的组成结构开发中我们重写Activity的onCreate()方法,调用setContentView(int layoutResID)方法给当前Activity设置布局,其实设置的就是ContentView。从setContentView(int layoutResID)开始通过源码来了解一下Activity界面的组成结构(在理解Window中也提到过):1、ActivityAnd

AndroidStudio创建Library并打包aar开发中常常使用第三方的库,Java开发常常使用 .jar包,而Android使用的是aar包。看看如何创建Library项目如何创建,以及aar是如何打包。不同于普通的App项目,aar是Android中的Library。1、创建Android Library项目 File > New > New Project新建项目,由于没有Androi
“本地广播”LocalBroadcastManager源码解析在BroadcastReceiver:广播的使用一文中总结了关于广播的基础知识,关于本地广播和普通广播的区别总结如下:①BroadcastReceiver一般用于应用间消息;LocalBroadcastManager应用内消息传递。②BroadcastReceiver是Binder进程间通信;LocalBroadcastManager内

代码统计插件 Statistic推荐一个代码统计插件:Statistic,项目代码统计,更精确的统计可以使用Git统计提交代码数据。两年前刚工作时的第一个月,定下每天码一千行代码的目标,找了这个插件统计每天的代码量练习量。再之前就是上学时期曾用Qt写了一个文本行数统计小工具,不过已经遗失。在Settings > Plugins中搜索Statistic,点击下载量最多的那个安装 (此插件需要Java

git中的四个工作区开发者日常使用最多的工具之一就是Git,如果是PPT那就不叫开发。对Git的几个工作区要有一个基本的概念。1、四个工作区Git本地有四个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)、git仓库(Remote Directory)。1.1、工作区 简言之就是工作的区域。对于g

API调试工具:Postman互联网应用离开网络或服务端就趴窝了。客户端常常需要和服务端联调某些接口,打Log嫌磨蹭,找到一个强大的API调试工具:Postman,直观的调试服务端提供的API接口。1、安装Postman推荐浏览器插件或PC客户端两种使用方式。1.1、Chrome插件Postman最早是用作chrome浏览器插件存在的,所以,可以直接在chrome商店搜索下载安装:1.2、PC客户