- 博客(17)
- 收藏
- 关注
原创 AOSP 13 IMS 源码分析
(IMS)是 Android 输入子系统的System Server 核心服务,实现管理输入设备(键盘、触摸屏、鼠标等)协调 Native 输入管线(InputReader / InputDispatcher)向应用和 WindowManager 提供输入相关能力。
2026-07-11 02:58:51
364
原创 AOSP 13 WMS 源码分析
继承/实现作用对外 Binder 接口system_server 死锁检测供 PhoneWindowManager 回调 WMS 能力。
2026-07-02 15:07:15
358
原创 AOSP 13 AMS 源码分析
继承/实现作用对外 Binder 接口,供 App / Framework 调用参与 system_server 死锁检测标记自身为全局锁对象。
2026-07-02 02:06:14
325
原创 AOSP 13 分屏源码分析
AOSP 13 的分屏实现已从传统 SystemUI View 迁移到。SystemUI:托管 Shell 进程、桥接 Launcher,不包含分屏核心 UI 逻辑WM Shell:Stage 管理、分割线、窗口 bounds、过渡动画:分屏选择 UI、动画、跨进程调用 Shell:Task 树、、应用注意:SystemUI 中的是通知栏分屏布局,与多窗口分屏无关。下的属于Activity Embedding(应用内分屏),与系统分屏是两套机制。
2026-07-01 22:39:52
358
原创 Android项目中FFmpeg的.so包使用详情
验证:出现以下结果即是已经导入成功,可以进行需求定制功能的接口调用。新建一个activity,调用displayFFmpegInfo。在AS中选择Native C++创建项目。: 库文件架构与目标架构不匹配。如何生成so包可以 参考。: 链接时出现未定义符号。
2026-03-06 17:41:54
440
原创 macos环境下FFmpeg打包成.so文件
FFmpeg 编译并打包成 Android 可直接使用的 .so 动态库,这是Android音视频开发的核心步骤。我们现在通过在macos环境下编译一个.so文件,以下是完整的流程。
2026-02-12 11:26:16
546
原创 macos的FFmpeg环境搭建
是一套跨平台的开源音视频处理工具库,能完成音视频领域的所有核心操作,覆盖 “编解码→格式转换→剪辑→滤镜→封装 / 解封装” 全流程音视频编解码:支持几乎所有主流编码格式(H.264/H.265/AV1/AAC/MP3 等),能把原始音视频数据编码为压缩格式,也能把压缩格式解码为原始数据;格式转换:比如 MP4 转 MP3、FLV 转 MP4、AVI 转 MKV 等,是最常用的功能;音视频剪辑 / 拼接:剪切指定时间段的音视频、拼接多个音视频文件;
2026-02-12 10:41:30
1174
原创 Android之JNI详解
JNI(Java Native Interface) 是 Java 提供的一种编程框架,用于在 Java 应用程序中调用和与用其他编程语言(如 C、C++ 等)编写的本地代码(Native Code)进行交互。它允许 Java 程序访问操作系统或硬件提供的底层功能。
2025-04-12 16:45:56
1330
1
原创 Java虚拟机(JVM)详解
简介:以“GC Roots”对象作为起点,从这些起点开始往下搜索,搜索所走过的路径称为引用链(Reference Chain)。当一个对象没有和任何引用链相连时,即称为该对象不可达,即可以认为该对象死亡。简介:给对象添加一个引用计数器,每当有一个地方引用它时,计数器 +1,引用失效则 -1。简介:双亲委派模型的核心思想是当一个类加载器接收到类加载请求时,它不会立即自己加载,而是将请求委派给父类加载器。简介:加载 -> 验证 -> 准备 -> 解析 -> 初始化。简介:编译期(由编译器决定调用目标方法)
2025-03-29 11:18:37
1354
原创 android的ble蓝牙详解
BLE蓝牙技术是一种低功耗的蓝牙通信协议,在蓝牙4.0版本中引入的。与传统的经典蓝牙相比,BLE蓝牙技术在功耗、传输速度和传输距离等方面进行了优化,使其更适合用于物联网(IoT)等需要低功耗、低延迟和少量数据传输的应用场景。
2025-03-15 23:53:38
2334
1
原创 android13系统适配注意点
由于用户很难将位置信息权限与 Wi-Fi 功能相关联,因此 Android 13(API 级别 33)在 NEARBY_DEVICES 权限组中引入了运行时权限,适用于管理设备与附近 Wi-Fi 接入点连接情况的应用。如果您的应用以 Android 13 为目标平台,并且在后台运行时需要访问身体传感器信息,那么除了现有的 BODY_SENSORS 权限外,您还必须声明新的 BODY_SENSORS_BACKGROUND 权限。设备所有者应用、资料所有者应用、系统应用。
2025-03-13 01:34:53
895
原创 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
1096
原创 Android线程池的解析
线程池可以看作是存放和管理多个线程的池子。在多任务情况下,多个线程的频繁创建和销毁会占用大量的资源,并影响性能。而线程池通过复用线程,避免了这种频繁的创建和销毁操作,从而提高了资源使用效率。线程池的优势包括:1.对线程进行统一管理,避免资源浪费。2.复用线程,减少线程的创建和销毁开销。3.有效控制线程池的最大并发数,避免线程之间因相互抢占系统资源而导致的阻塞现象。
2024-12-28 19:17:11
1534
原创 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
678
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅