本文记录项目中遇到的一个CTS的问题,然后解决此问题的过程
CtsJniTestCases模块android.jni.cts.JniStaticTest#test_linker_namespaces测试失败
通过run cts -m android.jni.cts.JniStaticTest -t android.jni.cts.JniStaticTest#test_linker_namespaces 运行
失败的log如下:
junit.framework.AssertionFailedError: The library "/vendor/lib64/libdirect-coredump.so" is not a public library but it loaded.
at junit.framework.Assert.fail(Assert.java:50)
at android.jni.cts.JniStaticTest.test_linker_namespaces(JniStaticTest.java:41)
at java.lang.reflect.Method.invoke(Native Method)
at junit.framework.TestCase.runTest(TestCase.java:168)
本文记录在工作中所用到的一些常见的命令使用和Debug方式
mar
在eng下调试Camera时候使用adb logcat出现如下的错误
read: unexpected EOF!
通过使用
$ adb logcat -G 1m
将logcat的缓存从默认256KB提升到1MB
通过-E来过滤多个标签
$ adb logcat | grep -E “tag1|tag2”
既在Terminal输出Log同时保存到文件里面
$ adb logcat | tee a.txt
本文基于Android 7.1
相关源码路径
/framework/base/services/core/jni/com_android_server_PowerManagerService.cpp
/system/core/libsuspend/autosuspend_wakeup_count.c
/system/core/libsuspend/debugger.c
libsuspend的作用是接收JNI的调用,在合适的时候往/sys/power/state节点写mem来控制Android系统进入suspend的状态。
Ubuntu连上Android手机之后,调用adb devices出现如下的错误
lsusb查看usb设备是否已经连上,确定其已经连上ubuntu系统,且挂在在bus 001上且device Id = 095 那么通过ls –al /dev/bus/usb/001/095查看这个设备的使用权限。发现root用户才可以读写,所以在普通用户状态下调用adb devices会出现没有权限的情况
为了提高设备允许的性能,Android O对应用进行了下面三个限制
FD(File Descriptor)文件描述符在形式上是非负整数,它是一个索引值,指向内核为每个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在Linux系统中,一切设备都视作文件,文件描述符为Linux平台设备相关的编程提供了一个统一的方法。