只要接口header中返回了max-age,客户端只需要指定builder.cache(new Cache(new File(path+ "OkHttpCache"), cacheSize))即可支持,不需要addInterceptor
Android okhttp缓存真正正确的实现方式前言 关于okhttp的缓存,网上有大量的文章,或相同,或不同,方式不一,但都八九不离十,原理都是通过CacheControl的设置策略不同来实现的。但是,真正实践过的人会发...
只要接口header中返回了max-age,客户端只需要指定builder.cache(new Cache(new File(path+ "OkHttpCache"), cacheSize))即可支持,不需要addInterceptor
Android okhttp缓存真正正确的实现方式前言 关于okhttp的缓存,网上有大量的文章,或相同,或不同,方式不一,但都八九不离十,原理都是通过CacheControl的设置策略不同来实现的。但是,真正实践过的人会发...
我觉得加Interceptor强行缓存只会给自己带来天坑以及各种数据没更新上的bug,缓存这事要相信服务端的判断,它让你缓存就缓存,不让你缓存就不要自己整。。。
介绍 多渠道打包对于 Android 来说有很多种方式,网络上也有很多相应的文章可以参考,比如 stormzhang 的「Android Studio 系列教程六--Grad...
adbshell adb常用命令 1.模拟点击 2.滑动 3.长按 4.打印所有包名 5.打印制定包的apk路径 6.删除制定包 7.截图 8.获取被点击的位置信息 9.打开...
1、ASM概述 ASM是一个功能比较齐全的java字节码操作与分析框架,通过ASM框架,我们可以动态的生成类或者增强已有类的功能。 ASM可以直接生成二进制.class文件,...
《将博客搬至CSDN》
Android Studio 3.0会在debug apk的manifest文件application标签里自动添加 android:testOnly="true"属性,导致...
之前有简单探索了Activity的生命周期, 也提到, Activity的生命周期实际场景远非那么简单, 诸如launch mode, intent flag, activi...
看了那么多帖子,能和源码对上的也就这一篇。网上粘贴复制的糟粕太多,这篇文章还是很棒的。呈现大量原始数据,即便解读有误,别人也可以从原始数据中看出正确结论。
探索Activity之launchMode之前有简单探索了Activity的生命周期, 也提到, Activity的生命周期实际场景远非那么简单, 诸如launch mode, intent flag, activi...
很显然SINGLE_INSTANCE是stack 唯一的而不是task唯一的。
深入理解Activity启动流程(四)–Activity Task的调度算法本系列博客将详细阐述Activity的启动流程。深入理解Activity启动流程(一)–Activity启动的概要流程深入理解Activity启动流程(二)–Activity...
//查找ActivityRecord栈,看要启动的activity是否已有相关task,
//如果已经有相关task,则不需要创建新的task,可以使用已有的task
//如果要启动的activity的启动模式是LAUNCH_SINGLE_INSTANCE,
//则使用快速查找方法findTaskLocked,否则使用慢速查找方法findActivityLocked
//因为如果启动模式是LAUNCH_SINGLE_INSTANCE,则这个activity只会在一个单独的Task里
//故此查找时,可以以task为单位进行查找和比较,这样比较快
//查找得到的结果taskTop是相关task的栈顶的ActivityRecord
// See if there is a task to bring to the front. If this is
// a SINGLE_INSTANCE activity, there can be one and only one
// instance of it in the history, and it is always in its own
// unique task, so we do a special search.
ActivityRecord taskTop = r.launchMode != ActivityInfo.LAUNCH_SINGLE_INSTANCE
? findTaskLocked(intent, r.info)
: findActivityLocked(intent, r.info);
作者你是硬生生地把!=看成了==啊( r.launchMode != ActivityInfo.LAUNCH_SINGLE_INSTANCE)。然后就做出了错误地解读,可惜了。
深入理解Activity启动流程(四)–Activity Task的调度算法本系列博客将详细阐述Activity的启动流程。深入理解Activity启动流程(一)–Activity启动的概要流程深入理解Activity启动流程(二)–Activity...
这里讲三种 Android Studio 2.2版本以上的APK Analyzer Android-classyshark dex2jar & jd-gui & apktoo...
关于显著加快gradle打包速度的7点建议,仅用于开发阶段打包配置,正式发布时打包配置有些建议不适用。 1. 使用最新的gradle插件 2. 避免在老版本系统上使用mult...
![
Activity中放置了多个的EditText的时候(比如Recyclerview 的item中有edittext),进入该activity的时候第一个EditText会接收...
前段时间读了一片文章Instant Run工作原理及用法,文章写的不错,我很受启发。引用其中一段 如果应用的minSdkVersion小于21,可能多数的Instant Ru...