- 博客(67)
- 收藏
- 关注
原创 Android 13 - 对讲app后台休眠后无法录音
在AppOpsService中,RECORD_AUDIO操作需要PROCESS_CAPABILITY_FOREGROUND_MICROPHONE能力。PROCESS_CAPABILITY_FOREGROUND_MICROPHONE是通过前台服务类型FOREGROUND_SERVICE_TYPE_MICROPHONE来设置的。这个问题是客户要求预置的一个app,反馈的现象视频是录音进程并未启动,本地还无法复现。我查了下,日志提到的 capability 为 8,在源码中的定义是。
2026-01-28 18:17:46
386
原创 Android 4.4 - APN类型扩展(二)
系统设计上,同一时间只有一个“默认”的蜂窝数据APN(通常是default类型)处于活动状态,用于承载几乎所有互联网流量。mms、supl等特殊类型APN仅在需要时临时建立连接,用完即断,无法长期并存。这是实现真正“多路并发”在系统框架层面的根本障碍。当路由规则创建成功后,访问指定的ip即可使用绑定的网络接口。上篇文章解决了APN创建的问题,接下来介绍网络绑定问题。我直接尝试了最简单的方式,添加路由规则。
2026-01-15 13:17:02
582
原创 ubuntu - 搭建TR069平台问题(Open ACS)
由于客户测试使用的就是 openACS,为了环境统一尝试在Ubuntu搭建相同的平台。可以根据https://www.cnblogs.com/roverq/p/18342747 步骤操作,这里记录我遇到的问题。这个找到了一篇帖子对应当前问题,把jboss-4.2.3.GA/server/default/lib/jboss-saaj.jar拷贝到/jboss-4.2.3.GA/lib/endorsed/jboss-saaj.jar对应网站https://sourceforge.net/p/librea
2026-01-14 11:00:53
133
转载 Android 12 - 编译问题uses-library
此项报错主要是构建系统在Android.bp或Android.mk文件中的信息与Manifest清单之间进行构建时一致性检查,要求声明请求使用的libraries跟AndroidManifest.xml中声明的一致,否则将报错。它与PRODUCT_BROKEN_VERIFY_USES_LIBRARIES具有相同的效果,但旨在用于命令行。(A)产品范围的临时修复:在MK当中配置PRODUCT_BROKEN_VERIFY_USES_LIBRARIES := true;(1)安装或编译出现的错误。
2025-12-29 17:53:52
73
原创 Android13 - 网络模式默认 NR only(仅5G)
摘要:本文分析了Android设备无法稳定工作在5G-only模式的问题。研究发现,尽管系统定义了NETWORK_MODE_NR_ONLY=23常量,但展讯平台的RIL层实现未处理该模式。通过修改ril_network.c文件,添加对5G-only模式的支持,将其转换为有效的NR_ONLY=128 RAF值传递给调制解调器,最终解决了该问题。修复后的系统能够正确识别并处理5G-only模式请求,确保设备稳定工作在5G网络。
2025-12-26 17:50:36
1449
原创 Android12 - 替换系统签名
实现过程,根据“Android 12 IDH包编译使用指南”中的6.3.2小节操作即可。步骤如下:1. 替换和user版本:使用新生成的密钥替换下的和。userdebug版本:使用新生成的密钥替换和。2. .mk/.bp文件配置.mk 中配置:.bp 中配置cerificate字段:根据配置完后,需要执行clean清除上一次的缓存,并且在新的编译过程中使用替换的key对文件签名。可以使用make installclean 会快捷一点。重新编译后成功出现异常。
2025-09-30 10:18:42
795
原创 GIT - missing Change-Id in message footer
在使用gerrit,通过git提交代码时经常遇到缺少Change-Id 问题,再次记录方法。以上是我遇到的情况,在两次正常中夹杂着异常提交。结束,下面给出详细示例。
2025-08-15 14:16:24
271
原创 Android 12 - 部分相机横屏显示方案
摘要:文章主要记录了Android相机应用界面优化过程中的三项关键修改:1) 调整相机过渡界面的旋转角度,通过Bitmap旋转处理实现90度过渡效果;2)修正相机图标居中显示问题,修改ModeTransitionView的布局计算逻辑;3)优化预览画面居中显示,重新计算4:3比例下的预览区域位置,使用屏幕宽高动态计算边距。这些修改涉及CameraActivity、CameraUtil、CameraAppUI等多个核心类,通过日志输出验证了修改效果,解决了过渡动画方向、图标位置偏移和预览画面居中等显示问题。
2025-07-09 15:10:14
415
原创 C++ 高级特性
C++ 的高级特性包括模板元编程、智能指针、移动语义、多线程、Lambda 表达式等,这些特性有助于提升代码的灵活性、性能和可维护性。
2025-07-09 09:26:53
514
原创 C++中的std::vector和Java中的List<Integer>区别
C++的直接管理连续内存,存储元素的实际值(或对象)。Java的存储的是对象的引用(为包装类),元素分散在堆内存中,通过引用访问。的随机访问效率高(O(1)),因内存连续;插入/删除可能触发内存重分配。Java的(的常用实现)同样为O(1)随机访问,但涉及装箱/拆箱开销;插入/删除为O(1),但随机访问为O(n)。支持模板,编译时类型检查;Java的因类型擦除,运行时泛型信息丢失,需显式处理类型转换。需手动预留容量或依赖自动扩容(通常翻倍);Java的自动扩容(增长因子为1.5),无需手动干预。C++示例:
2025-07-09 09:26:44
308
原创 C++基础
C++ 是一种静态类型、编译式、通用的编程语言,支持过程化编程、面向对象编程和泛型编程。以下是一些基础语法和概念。数组用于存储相同类型的多个元素,字符串可以用字符数组或。函数是代码复用的基本单元,可以接受参数并返回值。C++ 支持类和对象,是面向对象编程的核心。指针存储内存地址,引用是变量的别名。STL 提供了常用数据结构和算法。
2025-07-01 09:48:10
265
原创 Android 12 - 重复播放按键音(上下左右、OK)
或者其实从 framework/base/core/res/res/xml/audio_assets.xml 也可以看到有方向键等音频资源,可以通过检索直接定位到位置。xml文件是为了替换默认声音资源,并且可以看到很多需要的如上下左右都在这里定义了,并且播放的都是Effect_Tick。目前已经确定了播放按键提示音的调用方法。自定义按键音播放,在Launcher上按 上下左右和OK 按键发现会播放两次按键提示音,其他的都是正常的。补充,由于是自定义按键音播放的,因此需要实现原生的按键音开关功能,增加条件。
2025-06-13 20:03:36
1182
原创 Android 12 - 恢复部分应用安装
首先日志检索 DeskClock 发现只有这么三行,很好定位到源码。使用展锐提供的代码编译出来的固件,不包含DeskClock等应用。然后检索一下 customized-restricted-app。之前也遇到过这个情况,只是时间太久忘记了,在这里再次记录!
2025-06-12 16:43:02
554
原创 Android - lock/unlock bootloader
在执行 adb remount 时高版本经常会提示失败此时就需要对设备的进行解锁操作。记录两个部分,Google解锁和展锐解锁。
2024-08-23 15:25:01
4942
1
原创 Android - 音频参数合入
相关工程师调试后会提供 xxx.nv 文件,需要使用 NVEditor ,打开对应的 modem 工程,然后 import 导入该文件,保存后获取对应的 xxxxx_nvitem.nv 即可 (注:对应 modem_bins 文件也需替换)相关工程师调试后会提供 audio_para 文件,将该文件替换至对应工程下的文件编译即可。
2024-08-23 13:03:40
857
原创 Android - failed to set system property
进程将解析init.rc和启动属性服务。一旦收到设置“ ctrl.start ”属性的请求,属性服务将使用该属性值作为服务。如果属性名称以“net.”开头,当设置这个属性时,“net.change”属性将会自动设置,以加入到最后修改的属性名。如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。如果属性名称以“ro.”开头,那么这个属性被视为只读属性。发现确实不好使,然后意识到这个 ro开头的貌似是只读属性的,去网上确认了下,确实如此。
2024-05-27 11:48:27
1818
原创 Android - 3段式耳机和4段式耳机
之前对此不太理解,误打误撞看到耳机硬件上的区别正好补充上这块的理解了。四节插头,也可以对应某些hifi播放器,做平衡接口,对应线路,左声道+,左声道-,右声道+,右声道-,把左右声道负极独立分离出来,不像前两种是共地的;四节插头,主要用于带线控或麦克风的耳机,对应线路,左声道+,右声道+,地-,麦克风+,耳机可以听歌,也可以使用线控或麦克风。常规三节插头,对应线路,左声道+,右声道+,地-,耳机主要用于版听歌,没有线控麦权;四节插头能听,也能说,在此功能上,区分两种接口排序。这篇博客介绍的很详细。
2024-05-14 18:17:31
801
原创 Android 10 - 音频通路调试
这里记录一下正常情况下的配置文件吧speaker->喇叭,headphone->耳机,earpiece->听筒ReturnOKParameter::cmd0 DISABLE1 EABLE2 SETMODE:0handhold 11 ear2 spk4 hp1 mic_02 mic_1。
2024-05-14 18:13:29
2361
原创 ubuntu - 编译 linphone-sdk
业务需求需要定制sdk,首先声明我们需要的是在Android4.4上跑的sdk,因此本次编译的sdk最低支持为19(不同版本需要的环境不一致),编译过程较容易,难点在于环境配置。
2024-03-22 02:19:50
1752
原创 ubuntu - 安装cmake
大概意思就是编译使用cmake的最低版本是 3.22,我自己的是3.10.2。这里记录的是编译cmake替换成3.22的步骤。1、下载 cmake 3.22。
2024-03-18 20:45:00
1856
原创 Android 10 - 应用保活记录(展锐平台)
有其他同事改过这方面的问题,仅在此作个记录,方便查阅。貌似就这三个地方,以后有其他再更新。
2024-03-06 18:15:00
1090
3
原创 Sip - Ubuntu 配置 miniSIPServer 服务器(测试用)
客户提供的账号过期了,简单搭建 SIP 服务器,以便测试使用。个人认为这个配置起来最为简单,且测试功能足够。官网miniSIPServer 可能是最容易使用的 VoIP(SIP) 服务器软件,VoIP 领域专家可以轻松部署丰富的企业通信业务,例如、随我来、连选组、队列、IPv6 等。即使您在 VoIP 方面没有经验,也不用担心!仅需要就可以搭建自己的 VoIP 系统,请参考了解更多细节。开发环境 ubuntu 16.04 LTS。
2024-01-12 16:15:51
2299
4
原创 Android - 串口通讯(SerialPort)
最早的博客里就是用过 Google 提供的 demo,最近想再写个其他的demo发现用起来有点麻烦,还需要导入其他 module,因此在网上找到了也是自Google开源的Android串口通信Demo。话不多说,直接开搞。demo地址放在了最后。
2024-01-10 15:36:22
5424
3
原创 Android - CrashHandler 全局异常捕获器
用于线程因未捕获异常而突然终止时调用的处理程序接口。当线程由于未捕获异常而即将终止时,Java虚拟机将使用thread . getuncaughtexceptionhandler()查询该线程的UncaughtExceptionHandler,并调用该处理程序的uncaughtException方法,将线程和异常作为参数传递。如果一个线程没有显式设置它的UncaughtExceptionHandler,那么它的ThreadGroup对象充当它的UncaughtExceptionHandler。
2024-01-09 10:45:57
2070
原创 Android - app实现 A/B 升级
官网介绍如下:A/B 系统更新(也称为无缝更新)的目标是确保在期间在磁盘上保留一个可正常启动和使用的系统。采用这种方式可以降低更新之后设备无法启动的可能性,这意味着用户需要将设备送到维修和保修中心进行更换和刷机的情况将会减少。
2023-12-29 09:07:17
2828
22
原创 Android 12 - 重新生成 ro.build.display.id 属性
测试过程中发现删除 out/target/product/project/system/build.prop 后执行 make 编译也并不会重新生成,但是执行 clean 操作后就会重新生成,怀疑是在 build/ 下里定义的。一般编译后的可以在 out/target/product/project/system/build.prop 下找到属性值,或者通过 adb shell getprop ro.build.display.id 打印出来。(注:部分内容已做屏蔽)可以看到就是这里实际生成的,
2023-12-28 09:09:15
1787
原创 Android Studio - 新版 logcat 过滤使用记录
由于 as 在每次升级都有很多问题,因此去年升级到Dolphin就一直未升级,Dolphin版本就可以在设置中打开新版的 logcat 过滤功能,觉得不太习惯又关掉了。这次刚好 asfp 的下载重新学习下新版的功能。在此简单记录下。我们可以在输入框输入 "p" 然后就会有提示 p 开头的过滤名称。旧版的只能在过滤包名的条件下再过滤一个名称,新版的可以自行创建过滤规则。输入包名也会有提示的。
2023-11-16 18:11:11
14015
2
原创 Android - adb shell (查找文件 find )
我这里的设备是执行过 root 和 remount 过的,否则可能在 push 后执行 chmod 755 busybox 赋予权限。
2023-11-16 10:04:13
7323
原创 Android Studio - 初识asfp(平台版 Android Studio)
这个就是官网了。使用环境需要再 Linux 下,我是在 ubuntu 环境中运行的。
2023-11-15 09:06:33
1387
原创 Android 12 - 运营商NV配置,广电
首先尝试了展锐合并delta_nv.bin的方式,结果没有生效,依旧无法识卡,根据Android 12 NV配置指南验证生效,记录下操作步骤
2023-11-10 13:31:32
860
2
原创 Sipdroid - 内存泄漏问题
根据场景确定使用Activity的Context还是Application的Context,因为二者生命周期不同,对于不必须使用Activity的Context的场景(Dialog),一律采用Application的Context,单例模式是最常见的发生此泄漏的场景,比如传入一个Activity的Context被静态类引用,导致无法回收。尽量避免 static 成员变量引用资源耗费过多的实例(如 Context),若需引用 Context,则尽量使用Applicaiton的 Context。
2023-11-10 12:03:54
120
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅