年度归档: 2022 年

39 篇文章

Android-小点记录
1. Fragment状态保存和恢复 可以参考ViewPager的FragmentStatePagerAdapter适配器中的处理 // 保存 FragmentManager.saveFragmentInstanceState(fragment) // 还原 Fragment.setInitialSavedState(SavedState) 2. App 黑白化引申 父 View 的 Canvas 和 Paint 是往下分发的.所以修改父View即可(DecorView) //新建一支画笔 va…
Android-View可见性检测
fun View.onVisibilityChange( viewGroups: List<ViewGroup> = emptyList(), // 会被插入 Fragment 的容器集合 needScrollListener: Boolean = true, block: (view: View, isVisible: Boolean) -> Unit ) { val KEY_VISIBILITY = "KEY_VISIBILITY".hashCode() val KEY_H…
Android-混淆
1. 混淆设置参数 -optimizationpasses 5 # 代码混淆的压缩比例,值介于0-7,默认5 -verbose # 混淆时记录日志 -dontoptimize # 不优化输入的类文件 -dontshrink # 关闭压缩 -dontpreverify # 关闭预校验(作用于Java平台,Android不需要,去掉可加快混淆) -dontoptimize # 关闭代码优化 -dontobfuscate # 关闭混淆 -ignorewarnings # 忽略警告 -dontwarn …
Android-Gradle打包上传到蒲公英并提醒到钉钉
1. 新建dingding.gradle 未开启签名认证,如需签名按照钉钉文档来即可 import groovy.json.JsonBuilder import groovy.json.JsonOutput def dingDingUrl = "https://oapi.dingtalk.com/robot/send?access_token=344de308d49322348c1356de11cac6bbbf6f75ca610b801b1b4bd3f2a079b61c" ext.postDin…
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 { /** * 获取无参构造函数 * @param className * @return */ public static Object createObject(String cla…
Android-MutableContextWrapper和IdleHandler
MutableContextWrapper 可以初始预加载使用其他Context,真正使用传入对应的Activity的context WebSettings webSettings = myWebView.getSettings(); webSettings.setCacheMode(WebSettings.LOAD_DEFAULT); webSettings.setDomStorageEnabled(true); webSettings.setDatabaseEnabled(true); fi…
Android-5.0以下MultiDex加载时间优化
1. 思路 将MultiDex加载多dex合并的耗时操作放在一个新的进程进行加载。新建进程创建一个临时文件tempFile,加载完成后删除这个文件并结束当前新建进程。主进程轮询判断tempFile是否存在-不存在说明加载完成,进行后续的步骤。 MultiDex 会将apk转为zip,并遍历zip获取每个dex 并也转为zip (根据DexPathList源码 文件后缀判断,这些转换并无必要。) private static final class V19 { private V19() { } …
Android-图片加载开源库比较
引用类型 被垃圾回收时间 用途 生存时间 强引用 从来不会 对象的一般状态 JVM停止运行时终止 软引用 当内存不足时 对象缓存 内存不足时终止 弱引用 正常垃圾回收时 对象缓存 垃圾回收后终止 虚引用 正常垃圾回收时 跟踪对象的垃圾回收 垃圾回收后终止