Android系统
文章平均质量分 58
运动图像流
一只想飞的小菜鸟
展开
-
ConcurrentModificationException原因和解决方法
ArrayList抛出ConcurrentModificationExecption的源码如下,以AndroidM为例:http://androidxref.com/6.0.0_r1/xref/libcore/luni/src/main/java/java/util/ArrayList.java最常见原因:ArrayList在被遍历时,该ArrayList被修改,导致ArrayList.j...原创 2019-07-11 17:51:50 · 410 阅读 · 0 评论 -
GC日志的关键字
D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>, <External_memory_stats>, <Pause_time><回收原因><回收内存总数><可用内存百分比><外部内存状态><回收占用时间>...原创 2019-07-02 10:27:14 · 241 阅读 · 0 评论 -
虚拟内存与物理内存的关系
操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且这是固定的,如果没有虚拟内存,且每次开启一个进程都给4G的物理内存,就可能会出现很多问题:因为我的物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就...转载 2019-05-25 18:45:35 · 2354 阅读 · 0 评论 -
Linux中open/eventfd出现Too many open files的解决方法
最近在做Android P蓝牙协议栈的适配,由于原生的android系统在关闭蓝牙时,协议栈所在的进程会退出,所以协议栈中的资源释放做的很不完善,项目开发完成后做开关蓝牙的压力测试,100多次就会crash,原因是semaphore_new失败。而semaphore_new失败的原因是Too many open files导致eventfd(...)返回INVALID_FD。event...原创 2019-05-15 22:38:54 · 1233 阅读 · 0 评论 -
[Bluetooth] 下载电话本时OBEX反馈Not_Acceptable的问题分析
最近在调试蓝牙PBAP协议时遇到了一个问题,新写的代码“无法从Android手机下载电话本”,但是iPhone无此问题。无法下载的原因如下图所示,在pull vCard-list时,手机反馈”Not Acceptable”,而且试验了多部主流Android手机都存在此问题。对比了iPhone和Android手机的HCI Log,关键信息(除Connection ID)完全一致,对比了其...原创 2019-04-30 19:34:51 · 402 阅读 · 0 评论 -
BLE的自动连接
已BLE HID为例,Android原生代码bta_hh_le_add_dev_bg_conn按照Spec描述,在加载配对记录后,对已配的BLE HID Device设备执行了Auto connection流程,代码内,会触发中心设备向BLE HID Device设备自动发起连接的情况包括如下三种:配对成功之后; 车机蓝牙(中心设备)启动,加载配对记录之后; 原因是connection t...原创 2018-12-26 10:27:05 · 4389 阅读 · 3 评论 -
通过ADB动态调整Android代码Log级别
Android系统提供了这些原生API用于打印Log,包括Log.v(), Log.d(), Log.i(), Log.w(), Log.e(),而这些方法实现“Log输出的级别控制功能”依赖的API是android.util.Log. isLoggable (String tag, int level)上文中已明确说明可以通过setprop动态调整Log输出级别:setprop lo...原创 2018-12-01 18:20:45 · 11552 阅读 · 0 评论 -
Bluedroid蓝牙协议栈代码SIGABRT NE分析:__stack_chk_fail+6
开机蓝牙启动过程发生NE,相关Log信息如下:10-01 00:01:33.130766 3496 3496 I AEE/AED : Exception Class: Native (NE)10-01 00:01:33.130850 3496 3496 I AEE/AED : Exception Type: SIGABRT10-01 00:01:33.130850 3496 ...原创 2018-09-21 17:12:19 · 547 阅读 · 0 评论 -
通过ADB的方式配置HCI Log开关及file path
Android 6.0及7.0版本,蓝牙HCI Log的开关及Path配置的位置变更,具体如下:配置文件为etc/bluetooth/bt_stack.conf,通过ADB将该文件pull,修改后,再push会系统,开关蓝牙生效;1# Enable BtSnoop logging function2# valid value : true, false3BtSnoopLogOutpu...原创 2018-10-11 20:12:36 · 2466 阅读 · 0 评论 -
飞行模式(AIRPLANE_MODE_RADIOS与AIRPLANE_MODE_TOGGLEABLE_RADIOS)
AIRPLANE_MODE_RADIOS如下面的描述,该值表示在飞行模式打开时,需要关闭的Radios列表,列表内的Items以逗号区分;例如:"bluetooth,wifi"6014 /**6015 * A comma separated list of radios that need to be disabled when airplane mode6016...原创 2018-06-11 14:43:10 · 2079 阅读 · 1 评论