Android
文章平均质量分 90
android-greenhand
这个作者很懒,什么都没留下…
展开
-
Shizuku 源码解读 (自动解锁手机抢购飞天茅台)解决遗留部分问题
双亲委派机制替换android系统方法原创 2024-06-03 16:03:03 · 744 阅读 · 0 评论 -
Android 中的休眠/唤醒
handler中的休眠/唤醒不用Java中wait和notify呢,而是调用native方法(nativePollOnce/nativeWake)原创 2023-01-12 17:16:01 · 1565 阅读 · 0 评论 -
Android屏幕适配
Android 屏幕适配原创 2022-04-18 16:22:21 · 3407 阅读 · 0 评论 -
Android DNS解析的过程
Android DNS解析的过程DNS解析概念DNS的全称是domain name system,即域名系统。DNS是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的去访问互联网而不用去记住能够被机器直接读取的IP地址。通过域名最终得到该域名对应的IP地址的过程则是域名解析的过程。DNS解析过程系统会检查浏览器缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束。Android在Java层和native都有缓存,java层缓存16个,时间为2秒原创 2021-12-27 10:55:01 · 10387 阅读 · 2 评论 -
对PKMS的初步探索
对PKMS的初步探索想做的事总可以找到时间和机会不想做的事也总可以找到借口背景隐私页的背景是启动页所设置的windowBackground的图片。启动页设置windowBackground为了解决启动时白屏,在AndroidManifest.xml,对隐私页所设置的Theme做了更改,发现怎么设置都是不起作用。在代码中发现,隐私页是非正常流程启动的(startActivity),继承Instrumentation,重写newActivity()方法进行启动Activity; publ原创 2021-09-08 17:43:42 · 308 阅读 · 0 评论 -
ViewAnimator遇到的坑
前言原创 2021-05-13 15:36:30 · 343 阅读 · 1 评论 -
属性动画 ValueAnimator.ofInt运行原理
前言 val valueAnimator = ValueAnimator.ofInt(0, 100,300).apply { duration = 1000 interpolator = LinearInterpolator() addUpdateListener { } } valueAnimator.start()问题:0-100 中经过的时间到底是0.5s还是0.3原创 2021-04-19 17:12:28 · 2122 阅读 · 3 评论 -
Square Cycler – RecyclerView API
Square Cycler – RecyclerView API前言Cycler,是Square的开源项目,目的是以简洁的方式使用配置Android RecycleView。将Adapter和ViewHoler,DiffUtil,ItemTouchHelper.Callback等封装起来。使用时,不用创建adapter,viewHoler,方便快捷。Update类维护数据源,且在内部刷新数据时,会去计算数据源的差异,调用不同的adapter 的刷新数据的方法。此外还有一些扩展功能,在使用时,比较原创 2020-12-07 16:19:04 · 236 阅读 · 0 评论 -
自定义Toast,支持自定义动画,自定义布局
public class WbuToast { public static int LENGTH_LONG = 3500; public static int LENGTH_SHORT = 2000; private static boolean SHOWING = false; private static final LinkedList<WbuToast> mToastArrayList = new LinkedList<>(); privat原创 2020-08-14 16:45:10 · 564 阅读 · 0 评论 -
LeakCanary使用和原理
LeakCanary是一个开源的内存泄漏检测库,极大简化了内存泄漏的检测流程。了解其工作原理,有助于我们更好的理解Android的内存管理机制。原创 2020-10-09 19:52:11 · 561 阅读 · 0 评论 -
局部刷新神器的使用—— AsyncListDiffer
前言RecyclerView刷新时,无脑mAdapter.notifyDataSetChanged()。一行代码,简单方便;缺点不会触发RecyclerView的动画(删除、新增、位移、change动画)性能较低,毕竟是无脑的刷新了一遍整个RecyclerView , 极端情况下:新老数据集一模一样,效率是最低的。 影响性能; myAdapter.notifyItemRangeChanged(); myAdapter.notifyItemRangeInserted(); m原创 2020-09-29 11:11:10 · 2701 阅读 · 2 评论