自定义博客皮肤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)
  • 收藏
  • 关注

原创 ConcurrentModifcationException 的 what、why、how

ConcurrentModifcationException、Fast-Fail、快速失败检查机制、List并发操作

2024-04-03 10:43:23 1870

原创 Apk瘦身脚本 - 图片批量压缩

Apk初级瘦身神器 - 图片批量压缩脚本

2024-04-01 17:54:44 301

原创 为什么匿名内部类会持有外部类对象?

发现了吗,java编译器构建了一个名为Outer$1的类去实现、继承匿名内部类对应的类,并构建了一个有参构造器,入参规则是:外部类对象 + 匿名内部类使用到的外部类中的成员变量(上面用到了外部类的字符串,构造的有参构造器就会增加这个String的参数)答案是延时任务对象是通过匿名内部类构建的,其拥有外部类对象,这就让Activity退出后,GC释放不了Activity对象所占用的内存块,引发内存泄漏。可以看到,我们在构建Inner对象时,是通过无参构造器构建的,不会将外部类对象传入静态内部类的情况。

2024-02-23 18:25:50 1664

原创 Handler 泄漏场景、解决方案、深入理解

是的话,结果会是什么,会造成什么问题?手机内存是有限的,供我们应用可使用的对象更是少之又少,那问题就来了,我们平时打开的Activity、Fragment、以及其他new出来的对象,都是需要占用内存的,当这些对象不需要用到时,这些对象占用的内存是怎么回收以便重新分配给新new的对象的?”的跟对象作为起始节点集,以这些节点为开始,根据引用关系向下搜索,搜索走过的路径称为“引用链”,不在引用链内的对象是不可达的,允许被GC回收(此时并不是非死不可,有兴趣的可以度娘查一下GC对象的自救)为什么移除了就可以呢?

2024-02-23 12:30:02 2002

原创 Android GestureDetector支持View拖动、长按拖动

Android 简单实现View拖动、View长按拖动

2024-02-22 19:12:40 1004

原创 ViewModel 唯一性原理解析、生命周期管理解析

ViewModel横竖屏切换、ViewModel生命周期

2023-03-24 12:39:02 1494

原创 使用Ijkplayer播放flv资源

github上jcenter引用方式失效,转而使用阿里镜像依赖

2025-06-13 18:29:02 328

原创 Mac安装jd-gui 保姆级 含问题处理

JAVA_HOME全部成: /Users/makele/workspace/github/jdk1.8.0_451.jdk/Contents/Home。下载jd-gui-osx-1.6.6.tar即可,下载后放到对应位置,解压。解决办法是下载Jdk 1.8 ,让jd-gui使用该版本。两种安装方式都有各自的坑,废话少说,咱们开始吧。即可,下载后找个好点的地方解压,不需要dmg的。解压后,开始让jd-gui使用这个版本。保存,点击打开jd-gui,大功告成!右键应用jd-gui如下。第二种:下载代码安装。

2025-06-13 16:32:35 933

原创 [Adb]-操作命令大全

用于在计算机(Windows、macOS、Linux)和连接的 Android 设备(手机、平板、电视、模拟器等)之间建立通信桥梁。它允许开发者直接与设备交互,执行各种调试、管理、文件传输等操作。是 Android 开发工具包(SDK)中一个功能强大的。

2025-06-11 18:43:06 390

原创 [安卓-Android]-服务端字段混淆

解决安卓马甲包,服务端字段容易被GooglePlay检测出的问题

2025-06-11 12:04:27 590

原创 Kotlin $字符怎么实现字符串拼接

Java中一个String就是一个对象,通过➕拼接会重新构建一个String对象,所以尽量避免在循环中进行String拼接,那怎么进行拼接呢?StringBuilder拼接时不会构建新String对象,平时一般使用StringBuilder进行拼接即可。了解完Java中的String相关,那Kotlin中一般怎么进行字符串拼接的呢?看一下,我们拼上都用$进行字符串拼接,那Kotlin内部怎么实现的?Java 8下,使用的是StringBuilder拼接。Java17下,使用的String拼接。

2025-05-14 11:30:21 386

原创 Apk瘦身脚本 - 无用代码剔除

【代码】Apk瘦身脚本 -

2024-04-03 10:44:53 197

原创 Apk瘦身脚本 - res资源可用性检查

在一些大一点的项目,Lint在执行之后会Run很长时间,且只是给你找出问题点。在瘦身时可能存在一定量的res需要剔除,用Lint检查起来就会相对慢一些,且有些Code删除之后我们也需要重新检查其是否有引用哪些layout、drawable等,这些也是可以一并检查删除的。Lint可以帮我们检索项目中可能存在错误的地方,平时功能代码写完后,也建议大家用其检查一下代码,帮助我们提高代码的健壮性。下面是脚本代码,实现起来相对简单暴力,直接放在Android项目下运行即可。

2024-04-01 18:12:19 281

原创 Android 不同XML相同ID名怎么输出到Apk中

哇唔

2023-08-02 12:13:34 311

原创 Android APK瘦身

Apk瘦身-初级

2023-08-02 10:44:50 124

原创 Android Lifecycle 使用、原理解析

Lifecycle使用及原理

2023-03-28 18:11:57 799

原创 Java设计模式 - 适配器模式

适配器模式

2023-03-28 11:24:21 240

空空如也

空空如也

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

TA关注的人

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