摘要:
Raw Disk 简单记述磁盘读取数据的过程 当进程想要从磁盘读取数据时它的过程是怎样的? 磁盘结构 我们可以看到磁盘是一个立体结构,并不是我们以为的平面二维结构,我们想要读取磁盘上的具体一块数据肯定要定位到它的具体位置,我们从上图可以看到:磁盘的每一层都有一个磁头这个可以用来定位数据位于哪一个磁盘 阅读全文
摘要:
Retrofit简要分析 retrofit作为Android客户端高频使用库,我们很有必要深入了解它的运行机制。我觉得我们在刚开始使用retrofit的时候都被它那快速简洁的用法所折服,只用写一个接口,写几个抽象方法,添加上注解,就ok了好像代码是自动生成的一样。刚开始的我怀疑retrofit可能使 阅读全文
摘要:
kotlin有哪些很爽的操作 属性代理 && 接口代理 && 运算符重载 先看一段代码 private val a by lazy(LazyThreadSafetyMode.SYNCHRONIZED) { 2 } 官方:属性委托是委托属性的getter/setter方法,它允许委托对象在读取和写入值 阅读全文
摘要:
进程,线程,中断 当初学习8086汇编的时候了解到cpu是不断地提取cs:ip(IP也就是常说的pc)指向的指令然后执行,先来回顾一下cpu相关的知识。 cs:ip经过地址加法器得到指令地址 通过地址总线确定要访问的数据 通过数据总线将指令地址相应的数据送到cpu内部的指令缓冲器 ip的值加上当前读 阅读全文
摘要:
## Android属性动画 ### 动画特性 - 动画时长:默认为300毫秒。 - 时间插值:可以根据动画的当前已播放时间来计算属性值。Interpolator类 - 重复次数跟行为:可以为动画设置监听器,设置动画在不同阶段做出不同反映,也可以直接为其设置重复次数,跟重复播放动画的类型如反向播放。 阅读全文
摘要:
虚拟内存 为什么要有虚拟内存? 一个系统中的进程总是共享着cpu以及主存资源,但是当一个系统同时运行很多程序的时候就存在问题了。 不同的进程可能会不小心修改其他进程正在使用的内存,从而导致意想不到的错误。 当并行程序多的时候每个程序可以使用的内存就会变得很小,程序的性能收到影响,影响用户体验,并且会 阅读全文
摘要:
高速缓存 为了减低成本,增加cpu访问主存的性能,一般都会在主存与cpu之间增加小容量的缓存,可以采用这种方式的一个很主要原因就是程序执行的局部性。 程序的局部性 自我理解程序的局部性就是大多数时候程序都是按照代码一行行的执行可能发生条件转移指令但是程序跳转的范围也不是特别的大。 比如for循环情况 阅读全文
摘要:
认识Activity的LaunchMode 从刚接触Android开始我就了解到了launchMode的四种启动模式,但是我没有去深如了解,哪怕再深入一点点。 这段时间 在准备 面试 复习之前学习的知识我也感觉 要准备的很多。 我们要了解LaunchMode就要了解Activity的回退栈,要明白L 阅读全文
摘要:
重学Android——Lifecycle 首先我们先对Lifecycle有个总体的认识 ↑。 lifecycleObserver通过直接注册观察Lifecycleowner,当lifecycleowner对象生命周期发生变化的时候就可以直接通知observer,Activity以及Fragment都 阅读全文
摘要:
RecyclerView what is recyclerview ? a flexible view for providing a limited window into a large data set Recyclerview: Layout Manager Item Animator Ad 阅读全文