首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
mtancoder
掘友等级
Android工程师
|
腾讯
本博客专注写有技术深度的文章
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
6
文章 6
沸点 0
赞
6
返回
|
搜索文章
最新
热门
ARouter框架原理剖析之Activity跳转实现原理
可以看到,对于实现Activity跳转,使用起来很简单,思路清晰,代码不多。 这个传进来的atlas就是Warehouse.routes对象,可以看到这里保存了路径和对应Activity的映射关系,当然这个代码是编译时自动生成的,我们只需要写个Route注解就可以。 再回到Lo…
SharedPreferences必须弄清楚的几个问题
只要file name相同,拿到的就是同一个SharedPreferencesImpl对象,内部有缓存机制,首次获取才会创建对象。 在SharedPreferencesImpl构造方法中,会开启子线程把对应的文件key-value全部加载进内存,加载结束后,mLoaded被设置…
通俗易懂弄清Android P非SDK接口限制
1. 三种名单 黑名单:不可使用,否则会抛出异常。 灰名单:如果当前apk的API级别<接口的限制API级别,那么可以用,否则抛出异常。 白名单:受支持的接口,可以使用。 2. 抛出异常 如果使用了黑名单的接口,就会抛出异常,调用getDeclaredField()方法会抛出N…
通俗易懂弄清ThreadLocal内部原理
ThreadLocal是JDK中的一个类,很多基础框架和平时开发中都会使用到,因此有必要弄清其内部原理,才能更好地使用它。 可以看到,一个ThreadLocal只能用来保存一个对象,如果需要保存多个对象,就需要定义多个ThreadLocal。 ThreadLocal的作用就是用…
OkHttp必须弄清楚的几个原理性问题
总结一下,OkHttp支持http2,当然需要你请求的服务端支持才行,针对http1.x,OkHttp采用了连接池降低网络延迟,内部实现gzip透明传输,使用者无需关注,支持http协议上的缓存用于避免重复网络请求。 可以看到,使用起来非常简单,而且支持同步和异步两种方式请求网…
Android Gradle原理分析系列(一):解析Gradle Wrapper
下面会分析Gradle Wrapper的实现原理,解答这几个问题。 调用wrapperProperties方法找到当前目录下的gradle-wrapper.properties文件,该文件是用来指定一些配置信息的,后面会分析,先不管,接着会解析命令行传递过来的参数,最后一步是关…
Android线程死锁检测方案设计
在项目中,使用多线程是很常见的事情,但是如果处理不当,代码写的不好,就可能会导致线程死锁,对于死锁问题,从发现到定位问题都是比较困难的,如果是线上用户发生了线程死锁,那就是难上加难了,因此最好是项目本身有自己一套线程死锁检测机制,能够自动检测,自动上报,然后我们分析上报日志就可…
深入理解Git内部原理
当我们执行git init命令,或者clone网上某个代码仓库后,会看到有一个.git目录,git所有版本控制信息就是放在目录里面,下面对这个.git目录进行分析。 hooks:钩子目录,存放执行指定git命令前或者后触发的脚本,可以看到默认会有几个sample文件,如果要开启…
Android中Cursor内存泄露原理分析
我们知道,Cursor使用结束后,如果没有调用Cursor的close方法,就可能会导致内存泄露,但其原因是什么呢?究竟是什么对象泄露了?下面通过源码分析其原因。 一般我们不会指定CursorFactory,所以factory为null,这种情况下创建的是一个SQLiteCur…
Android内存泄漏检测工具LeakCanary原理分析
LeakCanary是square推出的用于检测Android内存泄漏的开源工具,使用起来十分简单,接入成本低,项目地址:https://github.com/square/leakcanary。 然后运行程序,如果LeakCanary检测到可能存在内存泄露,就会发送一条通知,…
下一页
个人成就
文章被点赞
94
文章被阅读
40,400
掘力值
853
关注了
7
关注者
44
收藏集
6
关注标签
24
加入于
2019-08-27