![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
code
总是很累的泡面头
无所畏惧的泡面头
展开
-
SQLite 异常处理
线上crash日志回捞到了这样一条case:SQLiteDiskIOException: disk I/O error (code 266, errno 5):SQLiteConnection.nativeExecuteForCursorWindow(Native Method)SQLiteConnection.executeForCursorWindow(SourceFile:941)SQLiteCursor.moveToPosition(SourceFile:130)看起来是到了sqlite原创 2021-06-22 14:51:22 · 1040 阅读 · 0 评论 -
LruCache的原理和使用
为什么使用LruCache缓存首先看做一个缓存的关键步骤, 存储,读取,清理。存储和读取区别不是很大,Lru算法做缓存和普通的数据结构做缓存相比最大的不同就是对清理策略的处理,由于空间的限制,所有的缓存都需要一个清理策略,最简单的清理策略就是定一个过期时间和一个最大空间,超过最大占用空间了, 需要进入清理流程, 还有超过过期时间的缓存内容被标记为过期,进入清理流程,所以我们需要维护一个时间字段...原创 2020-04-24 14:42:00 · 717 阅读 · 0 评论 -
Handler原理,源码,常见问题,从Java到Kernel解析,面试题详解
导读:本文打算分n步骤来讲解Handler,首先要有一个整体的流程说明,看看他的从Java 到kernel的完整调用过程,由于Handler还算是代码比较简单,逻辑比较清楚,所以这个过程也是相对清晰。第二个步骤是每个重点类的详细解读,包含引用关系,重点方法的解析。第三个步骤就是涉及到Linux操作系统内核的一些知识简单概述,作为科普。第四个步骤就是习题时间,作为训练,解答市面上关于Han...原创 2020-03-13 16:13:31 · 275 阅读 · 2 评论 -
Binder机制原理、源码、AIDL,IBinder,Binder,IInterface,BinderDriver,需要的都在这里了
导读:本文分为三个阶段,第一阶段,原理概述,力争说人话的基础上,讲明白Binder机制在搞什么,为什么这样搞,以及具体是怎么搞的。第二阶段,代码层面描述,主要描述了,AIDL、IBinder、Binder、IInterface、Binder Driver是如何设计和实现第一阶段的构想。第三阶段,实例操作,不使用半自动的AIDL工具,纯手动利用Binder实现一把进程间通信。相信这一套...原创 2020-03-06 04:21:49 · 976 阅读 · 0 评论 -
Jetpack - ViewModel
背景:The Android framework manages the lifecycles of UI controllers, such as activities and fragments.If the system destroys or re-creates a UI controller, any transient UI-related data you store in...原创 2019-03-01 14:49:01 · 270 阅读 · 0 评论