自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(578)
  • 资源 (1)
  • 收藏
  • 关注

原创 Android换肤逻辑

换肤逻辑来归纳一下换肤的相关原理吧!有这么一种说法,对于一个成熟的控件,其实核心逻辑代码仅仅占总代码的10%,并且处理了90%的需求,然后剩下的90%的代码,是用于解决剩下的10%的需求的。本文当然也只是为了梳理换肤的核心逻辑,但这绝对是远远不够的,毕竟优化是无止境的。思维导图核心逻辑先来看一看换肤的核心逻辑,我可以打包票,看懂了如下的流程图,换肤的核心的逻辑也已经理解的差不多了。动态换肤的核心逻辑就是维护一份从Activity到其中需要换肤子视图列表的Map,然后在触发换肤操作的时候遍历Map

2021-07-16 15:03:27 67

原创 开发日记 20210311 重新定义未来

The best things in life, they are free!多问问自己为什么!对得起自己每一行代码!技术没有速成的方法!要了解代码里面到底做了一些什么!几年以前,我感觉这个世界太无趣了,人与人直接总感觉隔了一层纱。这两天,我感觉生活中很多事情非常有挑战性,并总是尝试用乐观的一面去看待事物。今天,我感觉到,原来,热情虽然不是能量,但是也是可以传递的。...

2021-03-11 20:43:47 69

原创 《曾国藩传》摘抄

前言前两天去理发,理发店里面有挺多的书,非常多,本来也没有在意,但是无意间看见一本记录曾国藩书信的。对于曾国藩其实有一部分了解,所以还是边理发边细细品味了起来。整本书200多页吧,精装本,我也不是打印机,就简单记录几句让我感触颇深的,我相信,仅仅这几点,就能让我受用终生了。正文敬以持躬,恕以待人。敬则小心翼翼,事无巨细,皆不敢忽。恕则常流余地已处人,功不自居,过不推诿。评:敬,对自己严;恕,对别人宽。为人处世,为此二字。趋时者博无识之喜,损有道之真。评:不要赶时髦。要揣摩不因时间流逝耳

2021-01-07 21:51:35 344

原创 20年总结,21年展望

从我第一次接触键盘到今天,到底经历了多少年的时间呢?事到如今,我已经不会再去关心自己会不会去后悔了,因为所谓的后悔仅仅是浪费自己屈指可数的时间罢了。其实我很开心,我能从事IT这个职业,记得刘慈欣的某一部小说里面有一句话让我记忆深刻,虽然一名优秀的程序员很难成为上帝,但是,上帝一定是一位优秀的程序员。你看,这毫无表情,看似毫无生机的数字世界,是人们赋予了他们上下文,赋予了他们意义。而上帝,就好似程序员一般,将特定的规则赋予这物质的世界,从此这物质的世界诞生了生命,从而被赋予了单纯的规则和定理之外的东西,那

2020-12-31 20:00:36 732 1

转载 (转载)Linux信息资源

摘自Linux系统管理手册(第二版)P.11Web站点说明linux.slashdot.org新闻巨头Slashdot针对Linux的技术支持网站lwn.netLinux开放源代码方面的新闻集散地www.freshmeat.netLinux和UNIX软件的海量索引库www.kernel.orgLinux内核的官方网站www.linux.com...

2019-06-26 18:51:33 1098

原创 2021-09-27 杂想

随便聊聊最近发生的一些事情吧,都这么多年过去了,其实我依然还是那个比较内向的自己。虽然表面尝试去覆盖一层外向的糖衣,但是依然掩盖不了内向的内核。现在想想,人与人之间的沟通和交流之道还真是一门非常让人寻味的学问。我曾经多少次认为,只要自己足够强大,别人就会认可自己,别人就会主动靠近自己。但是事实上却绝不如此,仅仅因为能力而接近自己的无非只是有求于自己的人罢了。人啊,很多时候都不会完全撕去最后那一层窗户纸,都维持着最后的一份体面,因为今天给别人留的一丝体面,就是明天可能给自己留取的一份体面。有一点黑暗森

2021-09-27 17:20:05 2

原创 Android 机型适配之gradient默认渐变方向

来讲个故事吧,这是我一个朋友最近遇到的一件事情,需求UI稿中有需要为一个视图设置渐变的背景颜色,然后我的这个朋友就屁颠屁颠地去根据UI稿去实现了。与渐变相关的实现如下,仅仅需要设置渐变开始颜色和结束颜色,其余都采用默认值即可。<gradient android:startColor="@color/..." android:endColor="@color/..."/>然后流程就到了UI验收阶段了,借了同事两台机器截图给UI看,UI说:小老弟,不对啊......(哦,

2021-08-20 18:44:08 26

原创 Java文件删除操作File#delete()

Java文件删除操作File#delete()这个算是一个非常通用并且常见的API了,但是其实这个方法在删除文件的时候其实是有一些限制的。如下,我们可以看见这个API返回值代表着删除是否成功:public boolean delete() { SecurityManager security = System.getSecurityManager(); if (security != null) { security.checkDelete(path); }

2021-07-20 22:22:19 76 3

原创 LinearLayout测量原理解析:onMeasure(int,int)

想写这部分内容已经很久了,但是每次写的时候总感觉自己讲的不够清楚,但是感觉这种事情真的不能拖,越拖越解决不了,所以,Let‘s go!好好理一理LinearLayout的measure,也就是测量逻辑吧。 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (mOrientation == VERTICAL) { measureVe...

2021-06-27 21:30:39 72 2

原创 Android三个Version的作用

老生长谈Android三个Version的作用其实感觉这三个Version我已经谈过几次了,但是总感觉每过一段时间都能对这三个Version有全新的认识,真的让人由衷地感慨,人还是需要不断不断地进步的。gradle总共是三个不同的版本字段:compileSdkVersion,targetSdkVersion,minSdkVersion然后再加上两个特殊的版本,当前谷歌发布的最新的安卓版本newSdkVersion和当前运行环境版本runtimeSdkVersion。这两个版本的命名不是官方命名,只是我

2021-05-17 21:17:42 69

原创 git push everything up to date问题解决

解决Everything up to date问题前言前端时间跳槽完毕,我记得我跳槽前给自己定了一个目标,就是在这次的工作期间尽可能地使用命令行来进行日常的开发工作,所以可以想象,git的命令行就是我第一座需要跨越的高山。不过还好,新公司的开发环境是ubuntu,所以我有足够的时间,或者说更多的机会来进行命令行的实践工作。不是说我原来不用git,只是我原来的工作用图形化的git工具更多,像sourcetree。正文有点扯远了,开门见山,本次我所遇到的的Every up to date问题的原因就是

2021-05-13 20:21:39 77

转载 Android 10 中有关限制非 SDK 接口的更新

Android 10 中有关限制非 SDK 接口的更新目录浅灰和深灰列表的命名发生变化非 SDK 接口的代码注释在 Android 10 中授予对非 SDK 接口的访问权限Android 10 的列表更改目前在 Android 10 中受限的灰名单中的非 SDK 接口Android 10 中已列入白名单的非 SDK 接口(这些接口原本列在灰名单中)为了帮助确保应用稳定性和兼容性,Android 平台开始限制您的应用可在 Android 9(API 级别 28)中使用哪些非 S

2021-05-12 20:52:59 218

原创 内网使用ohmyzsh

一、到github上下载ohmyzsh包如果有同学不知道怎么科学上网,那就到国内的镜像上去下或者clone都可以,下载完了,压缩一下,拷到内网里,内外网总有文件传输的方式,内网最让人烦恼的还是不能连接到互联网。二、到https://ohmyz.sh/拿到安装文件$ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"这段命令是官方提供的下载和安装方式,但是在无耻的美国的技术封锁下,我

2021-05-11 00:09:59 87

原创 git基础

正文理清楚git首先需要理清楚git的三个分区,工作区,缓存区和本地仓库。Linus在设计这个代码同步工具的时候就已经考虑到去中心化,估计也是因为当时遇到了SVN的那种蛮横的行为,再加上自己平时对于SVN的操作方式的种种不满,最后才开发出这么一个神器。我们正常编写代码的分区就是工作区。然后每当我们完成一个阶段或者一个步骤的工作的时候,往往就需要经过两个基本的步骤从而将代码维护到一个新的版本里面。说到底,git存在的核心目的之一就是为了能够更好地实现版本的管理,我们从事软件开发行业的目的其实就是为了不断地

2021-05-07 22:57:05 30

原创 我的世界观

前言每次放假我都感觉自己会异常地解放天性,疯狂地浪费时间,疯狂地顺从自己的欲望,但是真的,应该所有人都希望自己能够成为一个靠实力就能让人家放心的人。前段时间去面试,正规的面试,说真的,正紧的面试这还是第一次,所谓的正经貌似本来就和我没有什么关联,我希望自己能够更加更加的不受常规所拘束。这也是为什么腾讯的面试我没有去,虽然感觉去了应该也过不了,毕竟有七面,明明是面试,七面始终还是太让人难受了。说真的,连我自己都不知道自己的博客还能持续到什么时候,毕竟仅仅是自己内心声音的吐露,还有是自己日常生活中的一些开

2021-05-07 09:07:04 62

原创 Android Studio自定义视图无法预览

Android Studio自定义视图没有办法预览我想大家应该都和我一样,如果看到布局的编码的时候如果右边能够非常直观地显示出对应的视图,心里会非常舒心,像官方提供的tools命名空间就是为了这个目的而存在的。而且如果视图能够预览,其实无形中能够提高我们的开发效率。但是,是不是总有一些时候,你会发现右边的预览界面出了问题,怎么也显示不出来?这个时候,在以前我,我也会吐嘈一句,谷歌开发的什么垃圾,连预览这种简单的功能都做不好吗?然而,其实大多数情况下,垃圾的是我自己。尝试来重现这个情况,首先我定一个一个

2021-04-29 19:27:16 83

原创 git清空工作区和暂存区

来理一理,其实git对于文件的管理无非就是三个基本的阶段:创建文件编辑文件git add 添加本次需要修改的文件git commit 提交暂存区的文件更改如果文件已经存在,那么就只需要执行2,3,4三个阶段,因此我们就只需要依次提供这三个阶段的撤销方法就行了:撤销步骤1:创建文件通过以下命令可以清除还没有add和commit的文件git clean -d撤销步骤2:编辑文件通过以下命令可以清空工作区,其实在某个分支进行add操作的意思就是已经打算将这些文件的改动在当前分支上创建新的

2021-04-27 22:57:44 416

原创 awk,sed,cut获取最后一列数据

果然啊,想要在Android进一步玩耍,Linux还是必不可少的,我其实非常喜欢动漫,很多时候我写一些非常尬的独白的灵感其实来自于,我小时候看的部漫画《bleach》,对于一些我认为能震撼到我的启发,则是来源于另外一部著名的动漫《naruto》。现在社会上其实有很多培训机构,有些时候我自己也会稍微看一些视频,但是真的是越看越感觉,这些视频只能保证你知道有这么一个万一,只能让你能大致地了解这个东西是怎么运行的,但是如果继续深入的内容,还是需要每一个人自己进一步深入地去探索。最近进入了新的单位,感觉面临了新的

2021-04-26 18:36:24 220

转载 linux命令:返回上一次目录

返回上一次目录有时候千辛万苦进入了一个很深层的目录,一不小心输入了cd并回车,有什么办法快速回到刚才所在的目录呢?对于bash来说,只需要很管理的一个命令:cd -该命令等同于cd $OLDPWD,关于这一点在bash的手册页(可使用命令man bash访问其手册页)中有介绍:An argument of - is equivalent to $OLDPWD. 1并且它还会返回上一次目录的物理路径。————————————————版权声明:本文为CSDN博主「时光漫步2015」的原创文章

2021-04-25 14:59:36 89

转载 spacevim 添加自动折行

spacevim 非常好用,强烈的安利。但是有一样不好用的地方就是写markdown的时候不会自动的折行,这点体验非常的不好。经过查询我找到了方法。vim ~/.SpaceVim/vimrc 添加一行set wrapcat ~/.SpaceVim/vimrc"=============================================================================" vimrc --- Entry file for vim" Copyright

2021-04-23 15:41:26 82

原创 No field mFactorySet in class问题解决(上)

Caused by: java.lang.NoSuchFieldException: No field mFactorySet in class Landroid/view/LayoutInflater很久之前写了一个插件化换肤的demo,然后最近在实际上的运行过程中出现了闪退问题,问题的具体细节如标题。Caused by: java.lang.NoSuchFieldException: No field mFactorySet in class Landroid/view/LayoutInflater

2021-04-23 15:22:10 111

原创 SubBuilder使用

SubBuilder使用自己开发了一个小工具,这是使用文档。项目地址:https://github.com/FrancisYuric/SubBuilder.git。解决痛点SubBuilder的使用还是相对比较简单不是那么复杂,主要是为了解决并简化如下类型的代码。private void test() { this.setMessageA("A"); this.setMessageB("B"); this.setMessageA("A"); this.setMessa

2021-04-22 10:27:18 35

转载 Markdown使用文档

Markdown使用文档快捷键Markdown快捷键撤销Ctrl /⌘+Z重做Ctrl /⌘+Y加粗Ctrl /⌘+B斜体Ctrl /⌘+I标题Ctrl /⌘+Shift +H有序列表Ctrl /⌘+Shift +O无序列表Ctrl /⌘+Shift +U待办列表Ctrl /⌘+Shift +C插入代码Ctrl /⌘+Shift +K插入链接Ctrl /⌘+Shift +L插入图片Ctrl /⌘+Shi

2021-04-20 09:30:18 30

原创 别做喷子,多去钻研!

别做喷子,多去钻研!以前我感觉,只要我安分守己,别人也不会特意来恶心我,但是今天我发现,我错了,而且是错的离谱!我记得我说过了很多次了,很多时候我写博客仅仅是为了自己进行一些整理,如果能帮助到别人,那也是我的荣幸。而且我写博客单纯是为了兴趣,也从来没有想过来通过基于写博客让自己的知识变现。我的偶像是Linus,我非常敬佩他那高超的设计能力和执行能力,也非常敬佩他对于开源环境所作出的贡献。一般情况下,其实我是不太容易被恶心到的,但是今天我的确是被恶心到了,因为一般挺少有人会对我的博客进行评论,所以每次看到有

2021-04-01 20:39:41 49

原创 Ciruy英雄谭 Chapter 3 杂谈

我始终坚持自己的想法,这和授人以鱼不如授人以渔的想法类似,又要提及自己的往事了。我记得,最初学网络协议的时候,接收到的总是干瘪的文字,就好比TCP协议是运输层,负责将需要传输的数据进行分割和排序。背完这个了,就大学的水平来说,已经能在一些人面前嘚瑟嘚瑟了。这句话的确没多大问题,表达也很精简,但是你看到这句话的时候只能感受到知识,却缺乏了温度,也就是我一直很鄙视的,一些人的不说人话。把复杂的东西讲得既通俗易懂又简单,这才能体现功力不是吗?只是可怜了那些受众,可能本来就比较复杂的知识,经过他们再次加工,啊,完蛋

2021-03-30 20:54:51 43

原创 Ciruy英雄谭 Chapter 2 Web浏览器如何将数据委托出去(一)

其实我也感觉挺好奇的为什么自己会给自己接下来要写的超级长篇取一个这个中二的名字。嘛,虽然自己现在年龄也不小了,但是在有些时候我还是希望自己能够保持一颗童心,尝试去抛开利益的层面,去询问自己到底想要追寻些什么,还是希望自己能够保持那颗好奇心,尽管很多时候他不能转换成白花花的银子。还是打算慢慢来,从科普性质的书籍看起吧,毕竟我始终感觉科普性质的读物往往对于架构本身的掌控,对于这个力道能拿捏地非常不错。在这里我所选择的科普性读物是《网络是怎样连接的》,我感觉这本书的写作风格和我非常相似,虽然说里面讲的大多数内容

2021-03-25 22:07:25 51

原创 Ciruy英雄谭 Chapter 1 序章

好好考虑考虑自己的应该做些什么吧,少看一些那些散播充满浮躁和焦虑的文章。说真的,我常常感觉自己非常的无知,就比如说虽然我知道计算机之间是通过高电平为1,低电平为0的方式进行数据传输的,但是具体到底是怎么进行识别的,我对于此其实一无所知。就比如说虽然我知道java的一些网络连接是基于socket的,但是socket到底是怎么进行连接,怎么进行访问的,我其实也是一无所知。但愿芸芸众生中只有我对于此充满疑惑吧,不然你不觉得很危险吗?你所进行操作着的应用,连它的开发者本身都对其实际的运作方式一无所知。所以这其

2021-03-25 15:10:50 32

原创 开发日记 20210316

其实这两天,发生了挺多的事情,各种各样的层面的。或许以前我会迟疑,会迷茫,会彷徨,但是其实迷茫,彷徨本身就毫无意义。因为无论是迷茫还是彷徨,都不会对当前的现实产生任何的影响不是吗?但是积极主动可以,他真的可以。所以为什么史蒂芬柯维的高效能人士的七个习惯,首当其冲的就是积极主动,这是有道理的。我听说印度将人们分为多个种姓,进而划分出三六九等。而在最底层的人们只能寄托于未来,寄托于来世,而对当世毫无留恋。那请问,如果在当世就能翻身,谁还会去痴痴地去等待来世呢?请问,如果当世就存在着希望,那么谁又会翘首去期盼着

2021-03-16 19:52:34 116

原创 性能分析--视图优化

性能分析/性能优化—视图优化优化概述流畅的操作体验卡顿稳定性内存泄漏,崩溃省电省流量代码质量,逻辑安装包小安装包过大UI优化View层级相同的情况下,尽量使用LinearLayout代替RelativeLayout布局特别复杂的情况下,使用ConstraintLayout,RelativeLayout代替LinearLayout关于LinearLayout和RelativeLayout的性能问题,这点其实还是很容易理解的,Layout隶属于ViewGrou

2021-03-01 21:59:35 77

原创 Json解析不允许子类父类变量重名的原因

之前项目中遇到过当Json遇到子类和父类有同样的变量的时候会直接报错,类似这样。Caused by: java.lang.IllegalArgumentException: class com.bjzc.bluelecomm.Son declares multiple JSON fields named money今天突然想到如果是java本身不支持这样的操作的话,应该在编译的时候就提示报错不是吗?结果尝试了一下,果然,Java原生是支持这样的操作的,并且顺带一提,那个类的方法所使用的就局部变量都是优

2021-02-25 16:42:51 160

原创 WeakReference回收问题

WeakReference回收问题这个类算是一种标记,和C的指针给人的感有点像,但是起的作用可能比指针要大。我们都知道,java虚拟机的垃圾回收算法为可达性分析算法,即在回收垃圾前对垃圾进行分析和标记,然后这个标记的过程就是关键。亲爱的朋友,我们都知道WeakReference是在下一次gc的时候会将WeakReference所指向的内容回收,然后SoftReference则是在full gc的时候才会将指向的内容回收,那么问题就来了。reference真的这么蠢吗?也就是如果不仅仅只有referenc

2021-02-22 18:11:51 217

原创 一行代码快速搞定Flowable断点下载(下)

一行代码快速搞定Flowable断点下载(下)其实这个主题对应的三篇文章真的真的非常难写,首先是感觉非常多人对于函数式编程不太熟悉,然后又有一些人对于kotlin不太熟悉。这就导致了,写这三篇文章的时候,我会非常迷茫,说到一些概念的时候到底应不应该铺开去讲一讲,讲了,又怕篇幅太长,应该阅读体验,不讲,又担心读者看不懂。好吧,我尽力去讲讲看吧。首先,我们通过拓展方法来定义LifeCycleOwner的拓展常量。这里不直接拿Activity而拿LifeCycleOwner的原因是我希望在后续版本中能兼容Fr

2021-02-20 17:27:51 71 1

原创 一行代码快速搞定Flowable断点下载(中)

一行代码快速搞定Flowable断点下载(中)感觉上一篇家常聊了太多,这一篇就直接进入正题,首先来看一下,通过存储化以及方法拓展技术将mComposableDisposable的相关逻辑也从抽象Activity抽离后的代码情况。abstract class BaseDisposableActivity(override var layout: Int?) : BaseActivity(layout) { constructor() : this(null)}没错,代码中disposable

2021-02-20 16:59:13 45

原创 一行代码快速搞定Flowable断点下载(上)

一行代码快速搞定Flowable断点下载(上)之前我们大致讲了讲,到底怎么完全将disposable相关代码完全隐藏。然后到了这里,可能有些杠精就会说了,你那个方式,我们不是完全不能拿到Flowable了吗?那么我想问能不能拿到有什么关系呢?我感觉我们作为开发人员,众多愿景之一就是,希望自己能够尽可能少地进行重复劳动,不是反复拧螺丝钉的问题,如果可以的话,就算是导弹我也希望不要重复地去创造。我们将Flowable的实现细节隐藏起来,就意味着我们对于Flowable的复用已经基本到达了极致,这听起来不是更

2021-02-20 12:35:35 70

原创 如何完美隐藏Disposable的存储和销毁过程(二)

如何完美隐藏Disposable的存储和销毁过程(二)前面一节大致讲了讲,我们的成品到底是怎么样的?那么这一节,我们就来讲讲如何初步地隐藏自己Disposable的存储和销毁。首先说说最常见的方式,在Activity中定义和初始化一个CompositeDisposable,然后在生成需要管理的Disposable后,将其放进这个管理类中,然后在onDestory中直接通过CompositeDisposable对其内管理的Disposable进行统一清除,如下(有些时候实在是不太喜欢专门写博客,就是因为还

2021-02-12 15:31:02 220

原创 如何完美隐藏Disposable的存储和销毁过程(一)

如何完美隐藏Disposable的存储和销毁过程(一)–致敬我目前最喜欢的语言Kt又到了写我最最喜欢的RxJava的时刻了,写点函数式的操作,很多时候都能让我莫名其妙地high的不行!今天来讲讲,在kt环境下,我到底是如何完美隐藏我的Disposable的创建和销毁过程的。相信大家一定在开发的过程中遇到过这样的提示或者警告吧。这个警告的意思就是,RxJava可能造成内存泄漏,你应该对Flowable的管道添加适当的处理,在该销毁的时机就给他销毁了。如果你心大一点,就直接加个@SuppressL

2021-02-11 22:52:13 158

原创 Android插件化换肤

Android插件化换肤前言(废话)今年是大年三十,今年怎么说呢,总体还是让自己感觉到比较满意的,但是有些时候还是感觉自己的自觉性不够。先贤曾经说过,君子慎独,愿明年的我能够铭记于心。我这辈子最崇拜的人或许就是张载了,仅仅因为他的横渠四句:为天地立心,为生民立命,为往圣继绝学,为天下开太平!思维导图正文概要这个属于老生常谈的问题了。比如说,一旦出现了什么非常令人悲痛的事件,每个应用都会把自己的主色调改成黑色,抑或是应用内提供给用户自主选择(像网易云音乐),选择自己喜欢的主题色,再比如,在

2021-02-11 22:15:52 144 1

原创 Android视图绘制逻辑与思想(一):attachToRoot到底有什么作用?

attachToRoot到底有什么作用?前言(唠嗑)前两天在路上瞎逛的时候,一只黄色的小狗突然跑到我身边,绕着我转圈圈。我一瞬间就被这只小狗狗给征服了,脑袋以超光速开始运转,甚至连给小狗狗名字都取号了。然后耳边就传来这样的一段对话:这个毛颜色可以换吗?可以的,等再长大一点,就可以剃光再重新弄。它的尾巴太长了,能弄断一点吗?可以的,尾巴可以减掉的。不知道多少电影动漫里,都有小狗狗对着人开心地摇着尾巴的温馨场景。还是算了吧,我这个人不那么会照顾小动物,况且,少一份买卖就少一份杀戮。多少人号称自己爱

2021-02-01 22:43:13 190

原创 Mockito cannot mock/spy because : - final class 问题

Mockito cannot mock/spy because : - final class 问题现象:出现报错,且报错信息如下Mockito cannot mock/spy because : - final class问题发生的原因:低版本类不支持mockfinal类的,我们尝试反编译一下kt代码就知道了。解决方案:将mockito-core的依赖更改为mockito-inlinetestImplementation 'org.mockito:mockito-inline:3.3

2021-01-21 14:58:00 1350 1

原创 Android Retrofit @Streaming 注解失效

Android Retrofit @Streaming 注解失效问题特征:即使加了@Streaming方法也不能达到逐步加载大文件数据的效果,产生的效果为下载会有长时间的卡顿,卡顿后,会在极端的时间内加载完数据源。如图,将近100M的数据仅仅在3秒内下载完毕,毫无疑问,无论是对于用户体验,还是开发的角度而言,都是灾难。解决方案尝试直接通过OkHttp进行加载,发现下载时间正常并且没有卡顿,这就说明问题出在retrofit上。踩了无数坑后,终于发现问题出在拦截器上。注意日志拦截器的设置,当Le

2021-01-06 10:21:27 211

如何在一个全新模块中注册通用上传功能.pdf

SPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。 这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC中都使用到了SPI机制。

2020-08-14

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除