乡野码圣
大龄程序员|科创公司合伙人|副业年入百万
背起电脑,work from anywhere,边旅行、边工作,及时行乐。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android 13.0 双屏时触摸失效问题排查与修复
摘要:本文记录了RK3588 Android12开发板上主屏触摸失效问题的排查与解决过程。通过分析发现,USB触摸设备被错误关联到辅屏(displayId=3)而非主屏(displayId=0)。解决方案是修改TouchInputMapper.cpp,强制触摸设备使用INTERNAL viewport(主屏),并保持设备在viewport不活跃时仍启用。该修改涉及约40行代码,有效解决了多显示器环境下触摸设备错误映射的问题,同时提供了详细的调试方法和注意事项。原创 2025-12-02 21:22:22 · 205 阅读 · 0 评论 -
Android 13.0 MediaProjection 被系统自动停止问题排查与解决
摘要:在Android 13定制ROM上,RTSP直播应用使用MediaProjection进行屏幕录制时,会被H.323视频会议应用意外中断。通过分析发现,根本原因是系统检测到前台服务类型变化后自动停止了MediaProjection。解决方案包括应用层保持FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION前台服务,或系统层添加包名白名单机制修改MediaProjectionManagerService.java。关键词:Android、MediaProjection、RTS原创 2025-11-26 17:10:22 · 363 阅读 · 0 评论 -
Android TV 画中画(PiP)功能完整实现:从启用到触摸交互优化
摘要:本文详细介绍了在AndroidTV智能会议设备上实现画中画(PiP)功能的完整解决方案。针对PiP模式被系统禁用和窗口触摸无响应两大核心问题,提出了系统级修复方案:1)通过修改ActivityClientController.java恢复PiP功能入口;2)采用OverlayView透明拦截层配合PipTouchHandler实现触摸事件处理,通过TYPE_APPLICATION_OVERLAY窗口类型确保事件拦截,并实现60fps的实时位置同步。方案涉及WindowManager配置、坐标转换、物理原创 2025-11-24 09:16:23 · 21 阅读 · 0 评论 -
Android 13.0 系统级签名伪装:解决 MicroG 无法运行 YouTube 的问题
MicroG提供与 GMS 兼容的 API 接口体积更小,隐私保护更好无需 Google 授权即可使用但需要签名伪装才能被应用识别为真正的 GMS机制作用实现方式白名单限制可伪装的包系统资源配置权限检查防止滥用SDK 版本限制兼容性保护资源读取动态签名从 APK 读取 fake_signature通过这次系统级签名伪装的完善,我们成功解决了 MicroG 无法运行 YouTube 的问题。原创 2025-11-23 12:24:40 · 1012 阅读 · 0 评论 -
Android 13.0 USB 麦克风音频采集优化:解决延时、杂音和无声问题
摘要:本文针对Android智能会议设备中USB麦克风存在的三大问题(录音延时、概率性杂音和无声)进行了深入分析和优化。通过预填充静音帧降低90%启动延时,分离采集/播放互斥锁消除杂音,采用持久化配置解决无声问题,并新增状态通知机制提升用户体验。优化后测试显示:录音延时从1200-2000ms降至100-200ms,故障率降至0%,CPU占用降低30%。该方案适用于各类USB音频设备和视频会议系统,为低延时音频采集提供了可靠解决方案。原创 2025-11-22 16:41:31 · 34 阅读 · 0 评论 -
Android 13.0 无线投屏图像拉伸问题的完美解决方案
Android智能会议设备无线投屏画面变形问题的解决方案 摘要:针对Android设备无线投屏时出现的画面拉伸变形问题,本文提出了一种基于Letterbox模式的优化方案。通过分析发现,原有RGA硬件加速模块采用强制填满(Fill)模式导致宽高比失调。新方案采用保持源图像宽高比、居中显示并填充黑边的策略,有效解决了画面变形问题。关键技术包括精确计算显示区域、YUV格式对齐处理、硬件加速优化等。该方案适用于各类需要保持原始比例的图像显示场景,在保证画面完整性的同时提升了用户体验。原创 2025-11-22 16:26:35 · 22 阅读 · 0 评论 -
Android13.0 使用MediaCodec Surface+Camera2时限制编码帧率
在使用MediaCodec Surface+Camera2的方式进行硬编码时,由于没有对编码裸数据进行处理,通常编码的帧率会基于Camera的帧率,有时候会出现帧率超预期的情况。原创 2024-06-07 10:03:15 · 398 阅读 · 0 评论 -
Android13.0 修改应用的屏幕密度
当适配新的系统时,系统的默认dpi可能跟之前开发App时基准屏幕密度不一样,要想APP保持统一显示效果,需要对APP进行屏幕密度配置。如果应用中使用了Fragment和Dialog也进行同样的设置。一般在BaseActivity中进行如下配置。原创 2023-12-23 16:45:54 · 1605 阅读 · 1 评论 -
Android13.0 Ndk崩溃问题定位解决
opt/android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-addr2line,可自己在服务器设置export变量。4、 在服务器上找到jni编译时,生成在对应obj目录的so库文件,如~/media/trunk_media/jni,对应的obj目录是~/media/trunk_media/obj/local/armeabi-v7a。原创 2023-12-20 22:41:33 · 761 阅读 · 0 评论 -
Android13.0 利用arping实现网络冲突检测
1、使用ps -ef |grep root命令找到一个具有root权限的厂商自定义服务,在此服务中开放一个运行命令的接口,APP通过绑定这个服务达到运行root命令的目的。(实际开发中在vendor下面找了一个服务,已具备root权限,发现依然运行不了arping命令,猜测可能是root权限不彻底导致)如果直接在APP端运行这个命令,会发现运行失败,原因是没有root权限,因此首先要解决的是root权限的问题。(2)把服务新增到编译device.mk。至此,完美解决root权限问题。至此服务端便可启动。原创 2023-12-19 20:38:51 · 1147 阅读 · 1 评论 -
Android13.0 强制APP横屏显示的实现
完美解决横屏问题!原创 2023-12-19 19:49:09 · 2090 阅读 · 4 评论
分享