自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【安卓开发】Kotlin入门教程

Kotlin 是一种由 JetBrains 开发的静态类型编程语言,运行在 Java 虚拟机上,也可以编译为 JavaScript 或原生代码。它于 2017 年被 Google 宣布为 Android 官方开发语言。主要特点:简洁:相比 Java 减少约 40% 的样板代码安全:内置空安全机制互操作:100% 兼容 Java工具友好:由 JetBrains 开发,IDE 支持完善。

2025-06-26 21:38:43 1661

原创 【安卓开发】使用LeakCanary进行内存泄漏分析 Analysis in progress, 0% done, 解析堆转储一直卡住

再返回LogCat发现 进度又变了!然后又等待一会儿发现进度好像又卡住了,再次打开终端查看native和java堆信息。但是貌似还是没有用,然后打开终端adb查看下载下的hpro文件,查看我之前几次操作的文件,文件大小时44M,也不大。然后又等待一会儿发现进度依旧不变,打开终端adb查看native和java堆信息。一直卡在0%,查了一下先在Activity的onDestroy中手动GC。再返回LogCat发现解析完成了!猜测可能是得切换一下LogCat窗口。再返回LogCat发现 诶!

2025-06-25 19:54:04 188

原创 【安卓开发】自定义View

实现特殊UI效果封装复杂交互逻辑提高View的复用性优化性能(针对特定场景)继承现有View(如Button、TextView等)继承ViewGroup(实现特殊布局)直接继承View(完全自定义)// 在代码中new时调用init();// 在XML布局中使用时调用init();// 解析自定义属性// 带样式时调用init();init();// 初始化画笔等对象try {// 必须回收// 必须实现的构造方法...@Override。

2025-06-23 18:20:41 835

原创 【安卓开发】帧动画、补间动画、属性动画

帧动画、补间动画、属性动画

2025-06-23 18:11:52 602

原创 【安卓开发】常用第三方组件库的使用

常用第三方组件库的使用:图片加载库、媒体播放库、数据存储、UI组件、刷新组件、事件通信

2025-06-21 21:02:04 470

原创 【安卓开发】网络编程+sqlite

OkHttp 是一个高效的 HTTP 客户端,支持同步和异步请求,自动处理 GZIP 压缩,响应缓存,连接池等功能。Retrofit 是一个类型安全的 HTTP 客户端,可以简化网络请求的创建和处理,自动将响应转换为 Java 对象。SQLite 是 Android 内置的轻量级关系型数据库,适合存储结构化数据。网络请求使用 Retrofit 简化 API 调用在主线程更新 UI,网络请求在后台线程执行添加适当的错误处理和重试机制数据库操作数据库操作应在后台线程执行及时关闭数据库连接和游标。

2025-06-20 20:32:12 295

原创 【安卓开发】四大组件及通信

/ 发送广播// 接收处理@Override// 处理广播。

2025-06-19 20:47:51 345

原创 【安卓开发】常用组件及布局使用方法

ConstraintLayout是最灵活强大的布局,通过约束关系定位视图。RecyclerView是更高级的列表视图,替代了旧的ListView。Tip:修改button的颜色不起作用,这是由于新版本的主题问题导致的。Button是可点击的按钮组件,继承自TextView。TextView是用于显示文本的基本组件。线性布局按照水平或垂直方向排列子视图。ImageView用于显示图片资源。网格布局将子视图排列在网格中。

2025-06-18 21:11:05 925

原创 Git远程和本地文件目录重组教程

目前gitlab仓库里有以下文件:adb命令安装apk到手机.jpg手机运行.jpg模拟器运行.jpg想要创建一个Day01文件,并将四个文件移动到Day01目录下。

2025-06-17 20:39:31 262

原创 【安卓开发】Activity和Fragment

复用已有实例时调用(SingleTop/SingleTask 模式)Fragment → Activity:通过接口回调。Fragment的生命周期受宿主Activity影响。Activity → Fragment:通过。:视图销毁(Fragment仍存在):初始化界面和数据(只调用一次)会先于其内部Fragment的。:创建视图(返回View):界面可交互(获取焦点):关联到Activity。:与Activity解绑。:失去焦点(部分可见):通过Action匹配。:界面可见但不可交互。

2025-06-17 20:31:00 641

原创 【安卓开发】DAY1:Android 系统发展历程与架构

1.0 - 4.4采用 Just-In-Time 编译,运行时逐条解释字节码。优点:安装快,占用存储空间小。缺点:运行时性能较低。

2025-06-16 18:19:57 562

原创 【安卓开发】环境配置遇到问题及解决总结

项目'hellov1'在运行Gradle时使用以下JDK位置:'D:/Android/Android Studio/jbr'系统环境变量JAVA_HOME是:'D:\Java\jdk-21'如果您不需要使用不同的路径(或者如果JAVA_HOME未定义),您可以通过将JAVA_HOME和JDK位置设置为相同的路径来避免产生多个守护进程。在运行 Gradle 时,项目使用的 JDK 位置是 ‘D:/Android/jbr’,而系统环境变量 JAVA_HOME 设置为 ‘D:\JAVA\jdk21.0.1’。

2025-06-15 15:44:37 1051

原创 【已解决】“GitHub.com拒绝了我们的连接请求”解决办法

然后将C:\Windows\System32\drivers\etc下的hosts文件复制到桌面,打开文件在把下面的粘贴到文件最后(如图)。再将hosts文件复制回C:\Windows\System32\drivers\etc目录,然后打开cmd。科学上网,但还是访问不了GitHub.com。进入这个网站对域名对应的IP地址进行查询。

2025-03-20 10:35:59 3767 2

原创 【Java面试学习】JVM图解

Java Virtual Machine Stack(Java虚拟机栈)虚拟机栈:每个线程运行需要的内存空间每个栈由多个栈帧(Frame)组成,对应着每次方法调用时所占的内润每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法作用:JVM只能运行二进制文件,类加载器的作用是将字节码文件加载到JVM中,从而让Java程序能够启动起来。启动类加载器(BootStrap ClassLoader):该类并不继承ClassLoader类,其是由C++编写实现。

2025-03-18 20:00:21 951

原创 【已解决】SpringBoot3启动Tomcat报错LibraryNotFoundError,Can‘t load library:tcnative-1.dll

Tomcat中的connector为了提高性能,采用了加载与操作系统绑定(非跨平台)的本地库的方式,比如Windows系统中就是.dll动态链接库。上述异常中找不到的.dll库文件,默认会去Tomcat的bin目录下去找(这里我查找了目录下是存在tcnative-1.dll文件),但是由于SpringBoot3的Tomcat是嵌入式的,没有这个.dll。32位直接选择这个文件,64位的进入x64文件夹选择tcnative-1.dll。选择对应的系统,我这里选择windows的。下载后解压进入bin目录。

2025-03-03 21:49:42 565

原创 LeetCode刷题:[34]. 在排序数组中查找元素的第一个和最后一个位置

LeetCode刷题顺序指南:参考代码随想录(),网站整理了leetcode刷题攻略,一个超级详细的刷题顺序,,只要按照顺序刷就可以了,左面的菜单栏就是刷题顺序,每一个专题,挨个刷就可以,不用自己再去题海里选题了!

2025-02-26 19:36:10 1018 1

原创 JAVA多线程进阶:线程池简单图解

目录一、ThreadPoolExecutor应用方式二、ThreadPoolExecutor核心参数三、ThreadPoolExecutor执行流程四、线程池的种类有哪些五、线程池中有哪些常见的阻塞队列六、拒绝策略有哪些 线程池是为了减少频繁的创建线程和销毁线程带来的性能损耗,线程池的工作原理如下图: Executors中的对于线程的控制粒度比较粗,并且如果使用Executors创建线程池的话,它允许的请求队列默认长度是Integer.MAX_VALUE,这样的话

2025-02-25 22:02:43 1206

原创 JAVA多线程基础

记录准备Java面试学习及回顾Java多线程知识笔记。

2025-02-25 19:37:04 1034 1

空空如也

空空如也

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

TA关注的人

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