簡介 刪除集合中的元素,有兩種刪除的形式,一種是刪除特定元素,一種是刪除特定索引的元素。 刪除的方式有:使用Java API (java 8)、從后往前的循環(huán)、使用迭代器、使...
簡介 刪除集合中的元素,有兩種刪除的形式,一種是刪除特定元素,一種是刪除特定索引的元素。 刪除的方式有:使用Java API (java 8)、從后往前的循環(huán)、使用迭代器、使...
@合并 設(shè)置的周期是7,從100算起,應(yīng)該在107過期,所以有問題
Glide動(dòng)態(tài)URL處理及過期設(shè)置場景描述 之前做項(xiàng)目時(shí)遇到這樣的場景,我們的用戶頭像保存在阿里云OSS上,涉及到動(dòng)態(tài)URL以及過期處理的問題。 上傳頭像的邏輯 首先從APP服務(wù)端獲取Token 通過Toke...
1、內(nèi)存了解 在Android App的性能優(yōu)化的各個(gè)部分里,內(nèi)存方面的知識(shí)較多且不易理解,內(nèi)存的問題絕對是最令人頭疼的一部分,需要對內(nèi)存基礎(chǔ)知識(shí)、內(nèi)存分配、內(nèi)存管理機(jī)制等非...
前序 Dagger2神器入門(一)Dagger2神器入門(二)Dagger2神器入門(三)在上面的一系列文章中,我們了解了1)什么是依賴注入?2)如何使用Dagger2進(jìn)行依...
文章已經(jīng)添加了這方面的說明
Glide動(dòng)態(tài)URL處理及過期設(shè)置場景描述 之前做項(xiàng)目時(shí)遇到這樣的場景,我們的用戶頭像保存在阿里云OSS上,涉及到動(dòng)態(tài)URL以及過期處理的問題。 上傳頭像的邏輯 首先從APP服務(wù)端獲取Token 通過Toke...
多謝提醒。我的的緩存刷新時(shí)間的確不是嚴(yán)格的,但你的算法也是不能得到預(yù)期的的結(jié)果的:
for (i in 100..150) {
println("$i, key->${(i - i % 7) / 7}")
}
結(jié)果:
//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動(dòng)態(tài)URL處理及過期設(shè)置場景描述 之前做項(xiàng)目時(shí)遇到這樣的場景,我們的用戶頭像保存在阿里云OSS上,涉及到動(dòng)態(tài)URL以及過期處理的問題。 上傳頭像的邏輯 首先從APP服務(wù)端獲取Token 通過Toke...
實(shí)際上要經(jīng)過嚴(yán)格失效時(shí)間后才更新緩存,必須要保留第一次計(jì)算key時(shí)的時(shí)間firstCalcTime,然后通過如下公式計(jì)算:
val key = (System.currentTimeMillis() - (firstCalcTime % INVALID_TIME) / INVALID_TIME
緩存第一次計(jì)算時(shí)的時(shí)間,是可以做到的,比如以url作為key,firstCalcTime作為value保存在本地磁盤。這樣做會(huì)增加額外的工作量,是否有價(jià)值,根據(jù)你們的需求來吧。
Glide動(dòng)態(tài)URL處理及過期設(shè)置場景描述 之前做項(xiàng)目時(shí)遇到這樣的場景,我們的用戶頭像保存在阿里云OSS上,涉及到動(dòng)態(tài)URL以及過期處理的問題。 上傳頭像的邏輯 首先從APP服務(wù)端獲取Token 通過Toke...
前言 本文介紹如何使用Bintray官方的Gradle插件gradle-bintray-plugin發(fā)布項(xiàng)目到Bintray平臺(tái),并最終發(fā)布到JCenter。 主要參考官方的...
前言 使用Gradle插件上傳Android項(xiàng)目到Bintray平臺(tái)是目前通用的做法,很方便。目前常用的Gradle插件有兩個(gè),一個(gè)是官方的gradle-bintray-pl...
前言 本文主要說明如何生成項(xiàng)目構(gòu)件,并手動(dòng)上傳構(gòu)件文件到Bintray平臺(tái),最后發(fā)布到JCenter倉庫這一流程。 發(fā)布流程。參考上一篇文章,完整發(fā)布流程如下: 準(zhǔn)備工作。定...
區(qū)別 在apk安裝的時(shí)候,mipmap-xxx/下的所有分辨率的圖片都會(huì)保留,而drawablexxx/下的圖片只有保留適配設(shè)備分辨率的圖片,其余圖片會(huì)丟棄掉,減少了APP安...
問題 定義了不同的drawable-***dpi的文件夾,但只在其中某些里面放置了圖片,比如在drawable-xhdpi里放置了圖片,其他的文件夾里沒有放置圖片,那么非xh...
@我一定會(huì)學(xué)會(huì) 不知道你是怎么移除的?我用Adapter維護(hù)item內(nèi)容列表,每次移除一項(xiàng)內(nèi)容后,刷新布局,并沒有出現(xiàn)任何問題。其實(shí)每次移除后的刷新布局邏輯,與第一次初始化布局是一樣的,并沒有什么區(qū)別。
開發(fā)筆記-GridLayoutManager實(shí)現(xiàn)Item均勻分布背景描述 最近開發(fā)中遇到需求,需要實(shí)現(xiàn)圖片的格子分布效果,如下圖所示 其中要求: 圖片與圖片的間隔,圖片與屏幕的左邊距,以及圖片與屏幕的右邊距,都為固定大小,比如10dp。 ...
前言 發(fā)布項(xiàng)目的定義。發(fā)布項(xiàng)目到遠(yuǎn)程JCenter倉庫,準(zhǔn)確的說是發(fā)布項(xiàng)目構(gòu)件到JCenter倉庫,用英語說是Publishing artifacts to the JCen...
一個(gè)一個(gè)計(jì)算,然后看規(guī)律,每個(gè)span的左間隔計(jì)算如下:
第一列 = space = space * (0 + 1) - spanSpace * 0
之后的左間隔 = space - 前一個(gè)的span的右間隔,而每個(gè)span的右間隔=spanSpace-其左間隔。
第二列 = space - (spanSpace - space) = space * 2 - spanSpace = space * (1 + 1) - spanSpace * 1
第三列 = space - (spanSpace - (space * 2 - spanSpace)) = space * (2 + 1) - spanSpace * 2
依次類推。
---
每個(gè)span的右間隔 = spanSpace - 其左間隔 = spanSpace * (colIndex + 1) - space * (colIndex + 1)
---
開發(fā)筆記-GridLayoutManager實(shí)現(xiàn)Item均勻分布背景描述 最近開發(fā)中遇到需求,需要實(shí)現(xiàn)圖片的格子分布效果,如下圖所示 其中要求: 圖片與圖片的間隔,圖片與屏幕的左邊距,以及圖片與屏幕的右邊距,都為固定大小,比如10dp。 ...
簡介 Android構(gòu)建流程是指將Android源代碼轉(zhuǎn)換成Apk(Android Application Package)這一過程,里面涉及到許多步驟和工具。構(gòu)建流程由Gr...
背景描述 最近開發(fā)中遇到需求,需要實(shí)現(xiàn)圖片的格子分布效果,如下圖所示 其中要求: 圖片與圖片的間隔,圖片與屏幕的左邊距,以及圖片與屏幕的右邊距,都為固定大小,比如10dp。 ...
部分內(nèi)容參考自:[Android]使用Dagger 2依賴注入 - DI介紹(翻譯)[Android]使用Dagger 2依賴注入 - API(翻譯) 為什么網(wǎng)上這么多dag...
1. 概述 Android項(xiàng)目的構(gòu)建過程是由Gradle插件完成的,Gradle 插件是在Gradle框架的基礎(chǔ)上實(shí)現(xiàn)的,Gradle框架是使用Groovy語言實(shí)現(xiàn)的。因此學(xué)...