简介 删除集合中的元素,有两种删除的形式,一种是删除特定元素,一种是删除特定索引的元素。 删除的方式有:使用Java API (java 8)、从后往前的循环、使用迭代器、使...
简介 删除集合中的元素,有两种删除的形式,一种是删除特定元素,一种是删除特定索引的元素。 删除的方式有:使用Java API (java 8)、从后往前的循环、使用迭代器、使...
@合并 设置的周期是7,从100算起,应该在107过期,所以有问题
Glide动态URL处理及过期设置场景描述 之前做项目时遇到这样的场景,我们的用户头像保存在阿里云OSS上,涉及到动态URL以及过期处理的问题。 上传头像的逻辑 首先从APP服务端获取Token 通过Toke...
1、内存了解 在Android App的性能优化的各个部分里,内存方面的知识较多且不易理解,内存的问题绝对是最令人头疼的一部分,需要对内存基础知识、内存分配、内存管理机制等非...
前序 Dagger2神器入门(一)Dagger2神器入门(二)Dagger2神器入门(三)在上面的一系列文章中,我们了解了1)什么是依赖注入?2)如何使用Dagger2进行依...
文章已经添加了这方面的说明
Glide动态URL处理及过期设置场景描述 之前做项目时遇到这样的场景,我们的用户头像保存在阿里云OSS上,涉及到动态URL以及过期处理的问题。 上传头像的逻辑 首先从APP服务端获取Token 通过Toke...
多谢提醒。我的的缓存刷新时间的确不是严格的,但你的算法也是不能得到预期的的结果的:
for (i in 100..150) {
println("$i, key->${(i - i % 7) / 7}")
}
结果:
//100, key->14
//101, key->14
//102, key->14
//103, key->14
//104, key->14
//105, key->15
//106, key->15
//107, key->15
Glide动态URL处理及过期设置场景描述 之前做项目时遇到这样的场景,我们的用户头像保存在阿里云OSS上,涉及到动态URL以及过期处理的问题。 上传头像的逻辑 首先从APP服务端获取Token 通过Toke...
实际上要经过严格失效时间后才更新缓存,必须要保留第一次计算key时的时间firstCalcTime,然后通过如下公式计算:
val key = (System.currentTimeMillis() - (firstCalcTime % INVALID_TIME) / INVALID_TIME
缓存第一次计算时的时间,是可以做到的,比如以url作为key,firstCalcTime作为value保存在本地磁盘。这样做会增加额外的工作量,是否有价值,根据你们的需求来吧。
Glide动态URL处理及过期设置场景描述 之前做项目时遇到这样的场景,我们的用户头像保存在阿里云OSS上,涉及到动态URL以及过期处理的问题。 上传头像的逻辑 首先从APP服务端获取Token 通过Toke...
前言 本文介绍如何使用Bintray官方的Gradle插件gradle-bintray-plugin发布项目到Bintray平台,并最终发布到JCenter。 主要参考官方的...
前言 使用Gradle插件上传Android项目到Bintray平台是目前通用的做法,很方便。目前常用的Gradle插件有两个,一个是官方的gradle-bintray-pl...
前言 本文主要说明如何生成项目构件,并手动上传构件文件到Bintray平台,最后发布到JCenter仓库这一流程。 发布流程。参考上一篇文章,完整发布流程如下: 准备工作。定...
区别 在apk安装的时候,mipmap-xxx/下的所有分辨率的图片都会保留,而drawablexxx/下的图片只有保留适配设备分辨率的图片,其余图片会丢弃掉,减少了APP安...
问题 定义了不同的drawable-***dpi的文件夹,但只在其中某些里面放置了图片,比如在drawable-xhdpi里放置了图片,其他的文件夹里没有放置图片,那么非xh...
@我一定会学会 不知道你是怎么移除的?我用Adapter维护item内容列表,每次移除一项内容后,刷新布局,并没有出现任何问题。其实每次移除后的刷新布局逻辑,与第一次初始化布局是一样的,并没有什么区别。
开发笔记-GridLayoutManager实现Item均匀分布背景描述 最近开发中遇到需求,需要实现图片的格子分布效果,如下图所示 其中要求: 图片与图片的间隔,图片与屏幕的左边距,以及图片与屏幕的右边距,都为固定大小,比如10dp。 ...
前言 发布项目的定义。发布项目到远程JCenter仓库,准确的说是发布项目构件到JCenter仓库,用英语说是Publishing artifacts to the JCen...
一个一个计算,然后看规律,每个span的左间隔计算如下:
第一列 = space = space * (0 + 1) - spanSpace * 0
之后的左间隔 = space - 前一个的span的右间隔,而每个span的右间隔=spanSpace-其左间隔。
第二列 = space - (spanSpace - space) = space * 2 - spanSpace = space * (1 + 1) - spanSpace * 1
第三列 = space - (spanSpace - (space * 2 - spanSpace)) = space * (2 + 1) - spanSpace * 2
依次类推。
---
每个span的右间隔 = spanSpace - 其左间隔 = spanSpace * (colIndex + 1) - space * (colIndex + 1)
---
开发笔记-GridLayoutManager实现Item均匀分布背景描述 最近开发中遇到需求,需要实现图片的格子分布效果,如下图所示 其中要求: 图片与图片的间隔,图片与屏幕的左边距,以及图片与屏幕的右边距,都为固定大小,比如10dp。 ...
简介 Android构建流程是指将Android源代码转换成Apk(Android Application Package)这一过程,里面涉及到许多步骤和工具。构建流程由Gr...
背景描述 最近开发中遇到需求,需要实现图片的格子分布效果,如下图所示 其中要求: 图片与图片的间隔,图片与屏幕的左边距,以及图片与屏幕的右边距,都为固定大小,比如10dp。 ...
部分内容参考自:[Android]使用Dagger 2依赖注入 - DI介绍(翻译)[Android]使用Dagger 2依赖注入 - API(翻译) 为什么网上这么多dag...
1. 概述 Android项目的构建过程是由Gradle插件完成的,Gradle 插件是在Gradle框架的基础上实现的,Gradle框架是使用Groovy语言实现的。因此学...