- 博客(14)
- 收藏
- 关注
原创 Java虚拟机(JVM)详解
简介:以“GC Roots”对象作为起点,从这些起点开始往下搜索,搜索所走过的路径称为引用链(Reference Chain)。当一个对象没有和任何引用链相连时,即称为该对象不可达,即可以认为该对象死亡。简介:给对象添加一个引用计数器,每当有一个地方引用它时,计数器 +1,引用失效则 -1。简介:双亲委派模型的核心思想是当一个类加载器接收到类加载请求时,它不会立即自己加载,而是将请求委派给父类加载器。简介:加载 -> 验证 -> 准备 -> 解析 -> 初始化。简介:编译期(由编译器决定调用目标方法)
2025-03-29 11:18:37
1113
原创 android的ble蓝牙详解
BLE蓝牙技术是一种低功耗的蓝牙通信协议,在蓝牙4.0版本中引入的。与传统的经典蓝牙相比,BLE蓝牙技术在功耗、传输速度和传输距离等方面进行了优化,使其更适合用于物联网(IoT)等需要低功耗、低延迟和少量数据传输的应用场景。
2025-03-15 23:53:38
1041
原创 android13系统适配注意点
由于用户很难将位置信息权限与 Wi-Fi 功能相关联,因此 Android 13(API 级别 33)在 NEARBY_DEVICES 权限组中引入了运行时权限,适用于管理设备与附近 Wi-Fi 接入点连接情况的应用。如果您的应用以 Android 13 为目标平台,并且在后台运行时需要访问身体传感器信息,那么除了现有的 BODY_SENSORS 权限外,您还必须声明新的 BODY_SENSORS_BACKGROUND 权限。设备所有者应用、资料所有者应用、系统应用。
2025-03-13 01:34:53
604
原创 H.264基本原理
在一个GOP内,I帧解码不依赖任何其他帧,P帧解码依赖前面的I帧或P帧,而B帧解码则依赖前面的I帧或P帧及其后最近的一个P帧。GOP是适当范围内越大,说明B帧和P帧数量越多,画面越清晰,但是也不能过大,因为画面的开头是I帧,如果中间某一个数据错乱会导致这整段画面错乱,需要等到下一个I帧到来才能纠正。IDR帧一定是一个I帧,但I帧不一定是IDR帧。引入IDR帧机制是为了避免解码错误,当解码器解码到IDR帧时,它会立即清空参考帧队列,将已解码的数据全部输出或抛弃,并重新查找参数集开始一个新的序列。
2025-03-12 00:16:06
761
原创 Android的MediaCodec详解
应用程序对音频和视频数据进行编码(压缩)和解码(解压缩)。通过MediaCodec,开发者可以直接访问底层的编解码器,实现更高效的音视频处理,并支持硬件加速,从而提高编解码的性能。
2025-03-06 16:47:52
376
原创 Android的Service详解
是Android的四大组件之一,与Activity一样都是Context的子类,但它没有UI界面,是在后台运行的组件。
2025-02-21 20:26:35
956
原创 Android的Activity详解
横竖屏的切换,会发生Activty销毁重建的过程:onPause()->onSaveInstanceState()-> onStop()->onDestroy()->onCreate()->onStart()->onRestoreInstanceState->onResume()当前有ActivtyB,按Home进入桌面后再在后台返回ActivtyB:onPause()->onStop()->onRestart()->onStart()->onResume()
2025-02-21 00:23:25
1130
原创 Android线程池的解析
线程池可以看作是存放和管理多个线程的池子。在多任务情况下,多个线程的频繁创建和销毁会占用大量的资源,并影响性能。而线程池通过复用线程,避免了这种频繁的创建和销毁操作,从而提高了资源使用效率。线程池的优势包括:1.对线程进行统一管理,避免资源浪费。2.复用线程,减少线程的创建和销毁开销。3.有效控制线程池的最大并发数,避免线程之间因相互抢占系统资源而导致的阻塞现象。
2024-12-28 19:17:11
1130
原创 OKHttp的源码解读
在RealCall文件里面,允许开发者在HTTP请求的生命周期中的不同阶段进行干预,以实现自定义的行为。6.Dispatcher主要作用是维护请求的状态,管理请求队列,并确保在任何时间内并发请求数不超过设定的限制。2.Request:封装了请求所需要的请求方法(method),请求地址(url),请求头(header),请求体(body)4.RealCall:RealCall是Call的实现类,连接了应用端与网络层的,负责请求的调度和内部逻辑的组织。
2024-12-16 23:28:07
435
原创 Android 系统启动之 Init 进程分析
简介:内核完成启动后,会通过 run_init_process 函数,启动用户空间的首个进程 init。路径:/system/core/init/first_stage_init.cpp。init执行文件的路径:/system/core/init/main.cpp。路径:system/core/init/reboot_utils.cpp。InitLogging是一个文件日记log。简介:主要是创建和挂载一些文件系统。
2024-11-29 00:13:28
452
原创 Android系统启动过程
App的进程都是由Zygote进程fork出来,子进程和父进程共享这些资源,不需要重新加载,加快了应用程序的启动时间。3.kernel:实际上是Linux kernel,只是移动端会有优化和修改,主要工作有硬件环境的检查,初始化进程管理以及内存管理等基础模块,查找并启动init进程等。2,BootLoader:工作只要是初始化硬件设备,建立内存空间映射图,是硬件启动到启动操作系统的一个过渡,主流的有redBoot,uboot,armBoot等。4.init:进入用户空间的第一个进程,进程号为1。
2024-11-09 21:39:33
330
原创 Android蓝牙各个版本需要申请的权限
我们在进行android蓝牙Ble开发的时候,时常会以为系统版本特性的差异,导致没有按照引导动态申请对应的权限,以下是各个版本使用蓝牙时需要申请的权限:一:android13以上:二:android12-android12L:三:其余:
2024-10-30 22:11:42
804
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人