自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 AOSP 13 PiP 源码分析

PiP(Picture-in-Picture,画中画)在 AOSP 13 中采用。

2026-06-30 15:11:21 224

原创 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的启动速度优化

android启动优化详解

2025-03-02 23:51:47 909

原创 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

原创 android组件化方案详解

路径严格要求格式:/…/… 例如:/app/activity...

2024-11-16 17:24:10 1543

空空如也

空空如也

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

TA关注的人

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