Android-JavaPoet
1. 添加依赖 dependencies { implementation 'com.squareup:javapoet:1.13.0' } 2. 具体使用 文章地址
Android-反射
package jnidemo.hlq.com.hookdemo; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Reflex { /** * 获取无参构造函数 *…
Android-MutableContextWrapper和IdleHandler
MutableContextWrapper 可以初始预加载使用其他Context,真正使用传入对应的Activity的context WebSettings webSettings = myWebView.getSettings(); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webSe…
Android-5.0以下MultiDex加载时间优化
1. 思路 将MultiDex加载多dex合并的耗时操作放在一个新的进程进行加载。新建进程创建一个临时文件tempFile,加载完成后删除这个文件并结束当前新建进程。主进程轮询判断tempFile是否存在-不存在说明加载完成,进行后续的步骤。 MultiDex 会将apk转为zip,并遍历zip获取每个dex 并也转为zip (根据DexPathL…
Android-图片加载开源库比较
引用类型 被垃圾回收时间 用途 生存时间 强引用 从来不会 对象的一般状态 JVM停止运行时终止 软引用 当内存不足时 对象缓存 内存不足时终止 弱引用 正常垃圾回收时 对象缓存 垃圾回收后终止 虚引用 正常垃圾回收时 跟踪对象的垃圾回收 垃圾回收后终止
Android-LifeCycle原理
1. 注册流程 final LifecycleRegistry mFragmentLifecycleRegistry = new LifecycleRegistry(this); @Override public void addObserver(@NonNull LifecycleObserver observer) { // 可以让刚注册的可以…
Androiod-Bitmap
1. 占用大小 scaledWidth = int( 原图宽度 * (设备的 dpi / 目录对应的 dpi ) + 0.5) scaledHeight = int( 原图高度 * (设备的 dpi / 目录对应的 dpi ) + 0.5) scaledWidth * scaledHeight * 4(具体Bitmap 的格式大小,如:ARGB_8…
Android-Handler、ThreadLocal
1. Handler Handler - ViewRootImpl -> requestLayout -> scheduleTraversals -> 使用到了同步屏障, 绘制时会执行TraversalRunnable任务线程,其中会移除同步屏障 ThreadLocal适合用于在不同线程作用域的数据备份 ThreadLocal机制通过在每个线程维护…