- 博客(131)
- 资源 (2)
- 收藏
- 关注
原创 Java HashMap的介绍和使用
它是基于哈希表(Hash Table)实现的,提供了键值对(key-value pair)的存储方式。HashMap 允许使用 null 作为键或值,并且不保证元素的顺序。HashMap 是一种高效、灵活的键值对存储结构,适用于大多数情况下的快速查找和更新操作。但要注意的是,它不是线程安全的,需要在多线程环境下特别处理。了解 HashMap 的内部工作原理和常见用法,有助于更好地运用这一强大的工具。HashMap 内部通过数组和链表(Java 8 之后使用红黑树优化)相结合的方式来处理哈希冲突。
2024-08-16 10:52:38
295
原创 Java Hashtable【线程安全】的介绍和使用
Hashtable 是一种线程安全的键值对存储结构,适用于需要同步访问的场景。了解 Hashtable 的基本原理和使用方法,有助于在实际开发中选择合适的数据结构。Hashtable 是 Java 集合框架中的一个常用类,属于 java.util 包。它与 HashMap 类似,也是基于哈希表实现的键值对存储结构,但具有一些重要的区别,尤其是在线程安全性和性能方面。Hashtable 的内部工作原理与 HashMap 类似,通过数组加链表(Java 8 之前)或者红黑树(Java 8 之后)来处理冲突。
2024-08-16 10:52:26
443
原创 Java链表LinkedList的基本概念、操作以及使用示例
除了了解 LinkedList 的使用方法,理解链表的基本原理和自己动手实现链表也是非常有益的学习过程。在 Java 中,链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和指向下一个节点的引用。Java 提供了一些内置的链表实现,最常用的是 java.util.LinkedList 类。下面将详细介绍链表的基本概念、操作以及使用示例。LinkedList 是 Java 集合框架中提供的类,实现了 List 和 Deque 接口,因此它既可以作为列表使用,也可以作为双端队列使用。
2024-08-16 09:53:50
847
原创 Java 多种队列的实现及其特定的用途和特点
DelayQueue 是一个无界阻塞队列,用于存储实现 Delayed 接口的元素。PriorityQueue 是一个基于优先级堆的无界优先级队列,默认情况下,元素以自然顺序排序,也可以提供一个比较器来指定排序规则。SynchronousQueue 是一个没有缓冲区的队列,每个插入操作必须等待相应的移除操作。Java 提供了多种队列(Queue)实现,每种队列都有其特定的用途和特点。ConcurrentLinkedQueue 是一个基于链接节点的无界非阻塞队列,适用于高并发环境下的队列操作。
2024-08-16 09:40:33
698
原创 ThreadPoolExecutor 强大的线程池实现类
ThreadPoolExecutor 是 Java 中 java.util.concurrent 包内的一个强大的线程池实现类。它允许你控制线程池的大小、任务队列的类型以及各种管理策略,从而可以高效地管理并发任务。ThreadPoolExecutor 是一个非常灵活且功能强大的工具,用于管理和调度多线程任务。通过理解其构造方法、常用方法以及自定义选项,你可以根据具体需求来有效地利用它。自定义线程工厂和拒绝策略。
2024-08-15 14:01:44
268
原创 CopyOnWriteArrayList 是 Java 中的一个线程安全的 List
CopyOnWriteArrayList 是 Java 中的一个线程安全的 List 实现,属于 java.util.concurrent 包。它是一种支持并发读写操作的线程安全集合,它通过在每次修改操作时创建底层数组的副本来实现线程安全。CopyOnWriteArrayList 是一种非常实用的线程安全集合,特别适合于读操作远多于写操作的场景。2.使用现有集合初始化:使用另一个集合中的元素来初始化。3.使用数组初始化:使用一个数组中的元素来初始化。
2024-08-14 11:33:54
408
原创 LinkedBlockingDeque 双端阻塞队列 (deque)
LinkedBlockingDeque 是 Java 中的一个双端阻塞队列 (deque),实现了 java.util.concurrent.BlockingDeque 接口。它允许在两端进行插入和删除操作,并且这些操作可以是阻塞的,这意味着它们可以等待直到插入或删除操作成功。LinkedBlockingDeque 是一个功能强大的双端阻塞队列,适用于需要在多线程环境中以线程安全方式进行双端插入和删除操作的场景。通过理解其主要特点和常用方法,你可以在实际项目中有效地使用它来解决并发问题。
2024-08-14 11:19:04
808
原创 Android 蓝牙打印Demo
权限问题:如果你的应用是针对 Android 12 或更高版本,还需要动态请求 BLUETOOTH_SCAN 和 BLUETOOTH_CONNECT 权限。在 Android 开发中,通过蓝牙连接打印机进行打印是一种常见的场景。打印机协议:不同的打印机可能使用不同的协议来接收和解析打印数据。确保你有一个简单的布局文件,比如 activity_main.xml,包含一个按钮用于触发打印操作。如果未配对,请先手动在蓝牙设置中进行配对。为了确保应用的健壮性和用户体验,需要处理各种可能的错误和异常情况。
2024-07-29 14:15:01
681
原创 Android 实现一个生产者-消费者模式的循环队列
要实现一个生产者-消费者模式的循环队列,当队列满时等待空闲空间,当队列为空时等待数据,可以使用 Java 的 wait 和 notify 方法来实现线程间的同步和通信。这样,通过使用 wait 和 notify 方法,我们就可以实现一个线程安全的、支持等待和通知机制的循环队列。这适用于生产者-消费者模型,在多线程环境下有效地管理资源。在 Android 应用中测试这个线程安全的循环队列,通过不同的线程模拟生产者和消费者。
2024-07-29 14:11:26
211
原创 Android13 通知栏和设置显示中添加副屏亮度条,调节副屏亮度
由于台式的Android设备,存在着两个屏幕显示的情况,故需要对Android系统开发一个可以调节副屏亮度的功能。
2023-09-18 09:10:47
806
原创 Android13 下拉菜单栏中添加快捷截图按钮
Android 13 原生系统下拉状态栏中是没有快捷截图按钮,现在需要添加快捷截图功能。添加快捷截图功能后的效果图:
2023-09-13 14:15:29
1043
原创 Android13 大屏设备底部显示TaskBar并NavagatonBar居右
Android 13大屏设备时底下显示任务栏以及虚拟按键靠右的问题,当前需求是去掉底部任务栏的显示,并把虚拟按键导航栏居中显示
2023-09-13 11:59:46
1996
原创 在AndroidR user版本的设备上,如何默认打开USB调试,如何去掉USB调试确认弹窗
适用场景:例如自动化测试等场景,需要在开机后可以直接使用USB调试,无需手动打开。修改方案:修改1为默认打开usb调试,修改2为默认不弹框修改1: build/core/main.mkdiff --git a/core/main.mk b/core/main.mkindex 6b34939…dbae91f 100755— a/core/main.mk+++ b/core/main.mk@@ -270,7 +270,8 @@Target is secure in user builds.A
2023-09-13 09:33:55
1041
原创 Android 13 Framework 添加自定义的系统服务CustomService
目的:添加自定义的系统服务,在自定义的服务中开发定制的API接口和功能,独立于系统核心服务,方便开发和维护。开发环境:Android 13 MTK平台涉及修改的文件如下
2023-08-18 15:14:10
1400
原创 Android 11 添加找回锁屏密码的暗门
前景:由于有些设备在用户的手上,自己设置了锁屏密码,但如果长时间不使用设备,用户容易忘记自己当初设备的密码了。像这种情况,只能强制恢复出厂设置了。但这会导致用户的数据都丢失了。所以我们在锁屏界面做了暗门,可以找回锁屏密码。暗门操作:1.在锁屏界面连续点击锁屏图标10次,即在锁屏图标下方显示设置的密码。2.或在密码输入界面连续点击锁屏图标10次,即在锁屏图标下方显示设置的密码。功能实现:1.在锁屏图标下方添加个textview,用于密码的显示
2023-08-16 17:50:20
794
原创 Android 13 添加自定义分区,恢复出厂设置不被清除
客户有些文件或数据,需要做得恢复出厂设置还存在,故需新增一个分区存储客户数据。a) 分区大小为50Mb) 应用层可读可写c) 恢复出厂设置后不会被清除d) 不需要打包.imge) 不影响OTA升级1).通过代码在分区创建目录和文件,会涉及到SeLinux权限的修改 【影响GMS验证】2).在现有软件版本上,需要格式化下载
2023-08-16 16:58:34
2164
1
原创 Android 11 修改Launcher3安装应用从第一页开始安装
【代码】Android 11 修改Launcher3安装应用从第一页开始安装。
2023-08-16 16:04:42
313
原创 Android13 修复清除U盘通知后,重新插拔U盘通知不显示的问题
【代码】Android13 修复清除U盘通知后,重新插拔U盘通知不显示的问题。
2023-08-15 20:18:45
324
1
原创 Android13 设备连接PC端,下拉状态栏,删除提示“正在通过USB为此设备充电”
【代码】Android13 设备连接PC端,下拉状态栏,删除提示“正在通过USB为此设备充电”
2023-08-15 20:13:27
519
原创 Android11 修复文件管理器无法拷贝文件到Android data目录问题
【代码】Android11 修复文件管理器无法拷贝文件到Android data目录问题。
2023-08-14 15:47:30
3039
1
原创 Android11 修复设置中通知声设置为静音时图标显示为振动的问题
【代码】Android11 修复设置中通知声设置为静音时图标显示为振动的问题。
2023-08-14 15:37:21
291
原创 Android11 修改连接aruba路由器,输入错误的密码不会报错问题
【代码】Android11 修改连接aruba路由器,输入错误的密码不会报错问题。
2023-08-14 15:31:26
251
原创 Android 修改原生动画的背景颜色
--- a/frameworks/base/cmds/bootanimation/BootAnimation.cpp+++ b/frameworks/base/cmds/bootanimation/BootAnimation.cpp@@ -695,7 +695,7 @@ bool BootAnimation::parseAnimationDesc(Animation& animation) int count = 0; int pause = 0;
2021-04-12 17:16:56
549
原创 Android 修改PID,VID
VID PID 修改device/mediatek/mt8167/init.mt8167.usb.rc1.VID 修改:setprop vendor.usb.vid “0x0E8D”2.MTP模式PID修改2.1 MTP(未打开USB Debug开关)### main function : mtp ### on property:sys.usb.config=mtp && property:vendor.usb.acm_cnt=0 && \ property:
2020-10-30 15:09:55
2316
原创 Android 屏蔽系统所有通知信息及通知栏
1.frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.javavoid enqueueNotificationInternal(final String pkg, final String opPkg, final int callingUid, final int callingPid, final String tag, final int
2020-09-28 11:44:48
4180
1
原创 Android P 禁用OTG U盘使用
public void disableOTG() {// TODO Auto-generated method stubLog.v(TAG, “disableOTG<>” + android.os.Environment.getExternalStorageDirectory().toString());SystemProperties.set(“persist.sys.disa...
2020-08-13 11:34:08
2134
1
原创 Android P 竖屏横用(只通过上层修改)并固定横屏
1.修改动画横屏显示--- a/mt8788/frameworks/base/cmds/bootanimation/BootAnimation.cpp+++ b/mt8788/frameworks/base/cmds/bootanimation/BootAnimation.cpp@@ -261,13 +261,13 @@ status_t BootAnimation::readyToRun(...
2020-08-11 17:48:50
1003
原创 Android Q 合入GMS包配置
1.添加GMS包到vendor/google/2.添加mainline到vendor/partner_modules/ (mainline需要联系google释放)3.device/mediatek/system/common/device.mk+$(call inherit-product-if-exists, vendor/google/products/gms.mk)4.device/mediateksample/项目名/ProjectConfig.mk+AUTO_ADD_GLOBAL_
2020-07-24 11:11:48
1373
原创 Android P sensor对某个APP方向做旋转
--- a/mt8788/frameworks/base/core/java/android/hardware/SystemSensorManager.java+++ b/mt8788/frameworks/base/core/java/android/hardware/SystemSensorManager.java@@ -803,7 +803,16 @@ public class Syst...
2020-07-24 11:05:12
328
原创 Linux crontab 定时任务设置
参考链接:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/crontab.htmlcrontab 定时任务通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常适合周期性的日志分析或数据备份等工作。19.1. 命令格式crontab [-u user] file crontab [-u user] [ -e | -
2020-06-04 15:18:29
252
原创 Android 使用Camera2 打开预览Demo
camera.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextureView android:i
2020-06-01 16:00:15
775
1
原创 Android 使用Camera 打开预览Demo
camera.xml<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextureView android:i
2020-06-01 15:59:57
928
原创 Android 数据之间转换
Hex字符串转intstatic public int HexToInt(String inHex){ return Integer.parseInt(inHex, 16);}Hex字符串转bytestatic public byte HexToByte(String inHex) { return (byte)Integer.parseInt(inHex,16); }1字节转2个Hex字符static public String Byte2H
2020-05-22 10:28:30
644
原创 Android O Camera 扫描方向适配
--- a/mt8765/frameworks/av/services/camera/libcameraservice/api1/CameraClient.cpp+++ b/mt8765/frameworks/av/services/camera/libcameraservice/api1/CameraClient.cpp@@ -767,11 +767,15 @@ status_t Camer...
2020-05-22 09:48:16
368
Android13 通知栏和设置显示中添加副屏亮度条,调节副屏亮度.patch
2023-09-13
Android13 下拉菜单栏中添加快捷截图按钮.patch
2023-09-13
Android13 大屏设备底部显示TaskBar并NavagatonBar居右.patch
2023-09-13
Android 取消系统默认 launcher3的home属性,保证第三方的launcher正常使用.patch
2023-09-08
Android 13 Framework 添加自定义的系统服务CustomService.patch
2023-09-04
Android11 修复user版本,按电源键+音量减键进入recovery模式会进入no command 界面问题.patch
2023-08-22
Android13 增加开机状态下,长按音量加键,弹出进入恢复出厂设置的对话框.patch
2023-08-16
Android13 连接蓝牙,设备蓝牙图标显示为耳机设备,应显示为台式设备图标.patch
2023-08-15
Android13 删除SystemUI状态栏中的电池图标&删除长按设置图标中电池快捷图标
2023-08-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人