背景 最近项目在进行UI适配 然后我们项目的适配方案是写多个dpi来实现适配然后我整天就在按计算器 我吐了这个插件适合于多dpi文件适配方案 AutoSize方案直接就...
背景 最近项目在进行UI适配 然后我们项目的适配方案是写多个dpi来实现适配然后我整天就在按计算器 我吐了这个插件适合于多dpi文件适配方案 AutoSize方案直接就...
如果有遇到Transform 断点拉不上的情况 可以试一下clean噢
Android调试Plugin创建Debug Configutations 点击Edit Configurations 点击Remote 修改一下名称 然后点击ok 等待Debug 然后我们的任务就创建好...
创建Debug Configutations 点击Edit Configurations 点击Remote 修改一下名称 然后点击ok 等待Debug 然后我们的任务就创建好...
如果`apply plugin`时遇到id找不到 可以反编译一下jar包看一下是否为null 看一下plugin后缀名是否正确
ASM代码插桩监控方法耗时前言 我们会通过ASM+Transform 代码插桩来实现方法耗时监控 另外 用到了一个比较好用的插件ASM Bytecode Outline 这样在不会写操作码的时候 也可...
RecyclerView应该是我们使用非常频繁的一个组件 我们也有必要学习分析一下RecyclerView#onLayout工作流程 对我们日后分析优化RecyclerVie...
前言 我们之前阅读了Request的整体流程 没看过的同学可以参考OkHttp源码流程分析(request篇)[//www.greatytc.com/p/221f2...
OkHttp现在几乎已经占据了所有网络请求 了解其内部原理可以更好的进行扩展、封装和优化我们今天分析一下OkHttp源码 因为流程比较多 所以分为两篇(请求和响应)来分析 O...
在线程运行的过程中 如何正确的停止线程? 是否可以使用volatile来停止线程? 使用Interrupt 对于java而言 最正确的停止线程的方式就是Interrupt,但...
哈哈哈哈哈哈哈哈 我想想怎么加个图解 视频真的讲的很棒啊
LaunchMode启动模式终结篇我们在最开始学习Android的时候 就老是听到四个启动模式 面试的时候也是经常被问到四种启动模式是什么 但是却很少深入的真正的了解过 直到今天看到了扔物线的视频[https...
我们在最开始学习Android的时候 就老是听到四个启动模式 面试的时候也是经常被问到四种启动模式是什么 但是却很少深入的真正的了解过 直到今天看到了扔物线的视频[https...
前言 setContentView应该是我们刚开始使用Android 就使用的Api了 来看一下setContentView具体实现 先看一下setContentView时序...
HashTable和HashMap 我们面试过程中 经常会被问到HashTable和HashMap的区别 我们往往都是按照网上的那一套异同诗朗诵一下 但是不看一下源码总是感觉...
问题 glide是如何进行缓存的? glide是如何多线程加载图片? glide如何进行内存管理? 为何要选择glide? 如何防止内存泄漏? OOM机制? glide流程分...
前言 当我们项目变得庞大的时候 使用单模块 就会变得很臃肿 所以当我们使用组件化架构的时候 有一个需要解决的问题就是跨模块通信问题 我们可以使用阿里的ARouter或者美团的...
序言 这篇文章会分析一下RecyclerView的回收机制 主要讲一下回收结构以及如何选择回收池 Recycler 我们先看一下Recycler类 这个类在缓存机制中起了非常...
前言 我们经常会遇到卡顿问题 而且卡顿问题往往很难解决与复现 非常的依赖卡顿现场 所以我们来深入分析一下卡顿优化 卡顿分析方法与工具 查看CPU性能 我们可以通过/proc/...
718. 最长重复子数组
前言 我们在使用App的过程中 经常会遇到一些跳转页面显示比较慢的情况 今天就深入分析一下布局优化 提高我们的布局加载速度 Activity加载布局过程 我们跟踪一下set...
前言 内存问题很常见 而且经常会因为内存问题引起卡顿问题 在接下来的卡顿分析中 内存也是一个很重要的方向 内存抖动 内存抖动是由频繁gc导致产生 由于内存空间的不足 回导致...
前言 老规矩(Show me the code) Talk is cheap[https://github.com/lyp82nlf/AndroidPerformance] ...