自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android使用线程池实现多串口同时通讯

在Android中,串口通信是一种与外部设备进行数据交换的常见方式,是一种用于将数据按位传输的通信接口,它可以连接各种外部设备,如传感器、显示器、打印机等.

2023-08-01 22:57:34 503 1

原创 android自定义view可拖动区域

【代码】android自定义view可拖动区域。

2023-07-21 16:22:21 318 1

原创 解决com.bumptech.glide.Registry$NoModelLoaderAvailableException(Failed to find any ModelLoaders for...

解决Android中出现GlideExecutor: Request threw uncaught throwable com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders registered for model class

2023-05-19 10:20:25 1123

原创 面向对象六大原则

单一职责原则是指责任应该分配到单一的类或者模块中,使得这个类或者模块只需要负责单一的职责。这样可以提高代码的可维护性和可重用性

2023-05-09 23:06:11 91

原创 详解设计模式之工厂模式

工厂模式是一种创建型设计模式,它提供了一种将对象的创建过程封装起来的方式,其主要作用是封装对象的创建过程,从而使得系统更加灵活、可扩展和易于维护

2023-05-03 13:46:39 74

原创 2023最新Android面试题(一)

使用bindService()方法启动Service通常用于 Service 与Activity之间的通信,一旦Activity与Service建立绑定关系,它们可以交换信息,同时Service也会随着Activity的生命周期自动启动和停止。:一种基本的补间动画,可以移动、旋转、缩放或透明度变化等操作,可通过xml或Java代码设置动画持续时间、延迟、重复等参数,同时为了提高用户体验,可以设置动画插值器实现多种不同的动画效果。在这个方法中通常进行需要在可见状态下进行的操作,例如打开相机、注册广播等。

2023-04-17 23:45:07 208

原创 kotlin中的let, run, also, apply, with的区别和用法

总体来讲,let和also都是用于针对对象执行某些操作,但返回值不同;run和with都是执行某些操作后返回结果,但调用方式和作用域不同;apply则更多用于创建对象并初始化属性。具体使用哪个函数取决于场景和个人喜好。Kotlin中的let、run、also、apply和with都是Lambda表达式的函数式扩展,可以方便地操作对象。

2023-03-30 16:40:35 900

原创 一文搞懂Android架构MVC、MVP、MVVM该怎么选

MVC架构较简单,学习和上手相对容易,适合快速开发的小型应用。但是在大型复杂应用中,MVC的紧耦合会使代码难以维护。MVP弥补了MVC的不足,通过将Activity中的业务逻辑抽离出来,使得代码简洁、可读性和可维护性更好,而MVVM进一步实现了视图和业务逻辑之间的解耦,能够更好的支持数据双向绑定。选择哪种架构取决于项目的需求、时间和预算等因素,同时需要考虑到项目的规模和开发人员的技术经验等,如果是小型应用,MVC足够简单和实用,如果是大型复杂应用,推荐使用MVP或MVVM并根据具体的需求进行选择。

2023-03-25 15:13:20 595

原创 超全设计模式汇总

为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构;是工厂模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品。

2023-03-08 14:54:13 186

原创 HashMap查找、插入原理(源码分析)

get()方法获取key的hash值,计算(n - 1) & hash得到该链表在数组中的位置first = tab[(n - 1) & hash],判断first的key是否与参数的key相等,如果相等直接返回,不相等判断该节点是不是TreeNode类型,是则调用getTreeNode()方法从二叉树中获取节点,不是的话遍历链表,找到相同的key返回对应的value值。

2023-02-27 21:11:40 202

原创 HashMap详解及与HashTable的区别

增加Hash值的随机性,减少hash冲突HashMap通过( n - 1) & hash公式做与运算来计算元素在数组中的下标,按位与&的计算方式可以提高效率。当HashMap的数组长度是2的幂次方时,(n - 1)的二进制都是1111…1的形式,与添加元素的hash值进行位运算时能够充分的散列,使添加的元素能均匀的分布在HashMap的每个位置上,减少hash碰撞。

2023-02-26 14:26:54 268

原创 Android中的内存泄漏原因和排查方式

Android中如果一个对象不再使用了,本该被回收时被另外其他正在使用的对象持有引用,导致该对象无法被回收。内存泄漏是导致程序OOM的主要原因之一。

2023-02-19 23:02:10 1453

原创 浅谈一下Android中的多线程

线程是程序执行的最小单位,是进程的一个执行流。系统资源分配的基本单位,是程序执行时的一个实例,在程序运行时创建。

2023-02-19 14:19:00 1222

空空如也

空空如也

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

TA关注的人

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