自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Shizuku 源码解读 (自动解锁手机抢购飞天茅台)解决遗留部分问题

双亲委派机制替换android系统方法

2024-06-03 16:03:03 687

原创 Effective Java (第三版) 第二部分

《Effective Java》是Java开发领域的经典之作,由Joshua Bloch撰写,从Java开发的各个方面给出了大量实用的建议和技巧,对于提高Java开发人员的编码水平和代码质量具有重要的指导作用。

2024-04-19 13:57:36 818

原创 Effective Java (第三版) 第一部分

《Effective Java》是Java开发领域的经典之作,由Joshua Bloch撰写,从Java开发的各个方面给出了大量实用的建议和技巧,对于提高Java开发人员的编码水平和代码质量具有重要的指导作用。

2024-04-19 13:54:36 670

原创 Shizuku 源码解读(自动解锁手机抢购飞天茅台)

每天定时抢购飞天茅台实现原理:Shizuku 源码解读

2024-04-01 17:11:41 1346 1

原创 Stable Diffsuion Webui 保姆级教程

Stable Diffusion 入门安装教程文生图教程生成艺术二维码教程让图开口说话教程

2023-10-11 14:49:11 1127 1

原创 SharedPreferences 源码

项目中用DataStore或者MMKV去替换Sp存储,但是作为andoid最基础的数据存储,我们还是应该去了解Sp相关的源码。这样再学习新技术时,才能知道它是通过什么手段解决了什么问题。

2023-04-28 10:34:15 141

原创 Android 中的休眠/唤醒

handler中的休眠/唤醒不用Java中wait和notify呢,而是调用native方法(nativePollOnce/nativeWake)

2023-01-12 17:16:01 1535

原创 Https通信过程初识和Charles抓包流程

https通信和charles抓包过程Netty是一个 NIO 客户端服务器框架,可以快速轻松地开发协议服务器和客户端等网络应用程序。它极大地简化和流线了网络编程。

2022-08-24 09:02:36 934

原创 Android屏幕适配

Android 屏幕适配

2022-04-18 16:22:21 3378

原创 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 9955 2

原创 对PKMS的初步探索

对PKMS的初步探索想做的事总可以找到时间和机会不想做的事也总可以找到借口背景隐私页的背景是启动页所设置的windowBackground的图片。启动页设置windowBackground为了解决启动时白屏,在AndroidManifest.xml,对隐私页所设置的Theme做了更改,发现怎么设置都是不起作用。在代码中发现,隐私页是非正常流程启动的(startActivity),继承Instrumentation,重写newActivity()方法进行启动Activity; publ

2021-09-08 17:43:42 283

原创 ViewAnimator遇到的坑

前言

2021-05-13 15:36:30 294 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 2049 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 204

原创 LeakCanary使用和原理

LeakCanary是一个开源的内存泄漏检测库,极大简化了内存泄漏的检测流程。了解其工作原理,有助于我们更好的理解Android的内存管理机制。

2020-10-09 19:52:11 518

原创 局部刷新神器的使用—— AsyncListDiffer

前言RecyclerView刷新时,无脑mAdapter.notifyDataSetChanged()。一行代码,简单方便;缺点不会触发RecyclerView的动画(删除、新增、位移、change动画)性能较低,毕竟是无脑的刷新了一遍整个RecyclerView , 极端情况下:新老数据集一模一样,效率是最低的。 影响性能; myAdapter.notifyItemRangeChanged(); myAdapter.notifyItemRangeInserted(); m

2020-09-29 11:11:10 2585 2

原创 自定义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 550

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除