Android
weixin_40437029
这个作者很懒,什么都没留下…
展开
-
Android8.1.0 Camera1 API 录像数据流程
cameraserver进程当中:void CameraClient::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>& dataPtr, void* user) { void Camera::dataCallbackTimestamp(nsecs_t timestamp, int32_t msgType, const sp<IMemory>&.原创 2021-07-31 09:13:31 · 410 阅读 · 0 评论 -
在Android手机的状态栏上显示一个摄像头是否在使用的图标(防止偷拍)
使用下面的接口,看下打开关闭camera是否能得到通知,然后做一个serviceCameraManagerAvailabilityCallbackpublic static abstract class AvailabilityCallback {607608 /**609 * A new camera has become available to use.610 *611 * <p>The default impl原创 2021-07-14 09:25:27 · 1757 阅读 · 0 评论 -
ndk-build jni编译
编译选项ndk-build project=AAA在Application.mk当中使用(infoproject=(info project=(infoproject=(project))ifneq ($(project), AAA)$(info add define for AAA)else$(info add define for Other)endif原创 2021-05-11 08:55:19 · 65 阅读 · 0 评论 -
Android RTSP IPC的使用
RTSP(Real Time Streaming Protocol)简介https://baike.baidu.com/item/RTSP/1276768?fr=aladdinAndroid支持APP Process=>VideoView=>MediaPlayer=>mediaserver Process=>NuPlayerDriver=>NuPlayer=>RTSPSource=>AnotherPacketSourceframeworks\av\med原创 2021-01-11 11:08:55 · 461 阅读 · 0 评论 -
Android10编译慢的问题剖析
Android10 编译慢在配置还不错的ubuntu服务器进行编译,看起来有些阶段CPU/内存都很宽裕,但是进度很慢,尝试找一下原因,至少知道是卡在哪里过程查看out/soong.log这个文件记录了编译阶段的一些log,每一行最前方有时间戳,比如找到其中花费时间最久的部分,看下该命令是做什么的。...原创 2020-11-26 14:45:52 · 634 阅读 · 0 评论 -
Android10 编译错误
错误1error: frameworks/av/media/ndk/Android.bp:41:1: module “libmediandk” variant “android_arm_armv8-a_cortex-a53_core_shared”: links a library “libssl” which isnot LL-NDK, VNDK-SP, or explicitly marked as ‘double_loadable:true’. (dependency: libmediandk -原创 2020-11-09 19:26:29 · 2178 阅读 · 0 评论 -
如何在Android中编译驱动模块 .ko
简介调试驱动比较简单快捷的方式,是将驱动程序编译成模块,方便快速迭代修改/debug,但是编译如果每次都要make bootimages, 会非常影响开发速度,所以需要有一个相对快捷的方法来直接编译出模块。Linux方式Makefile文件写法obj-m = spi_mcu.oKDIR := /lib/modules/`uname -r`/buildPWD := $(shell pwd)all: $(MAKE) -C $(KDIR) M=$(PWD) modulesinstall原创 2020-10-30 18:47:56 · 5395 阅读 · 2 评论 -
ARM交叉编译valgrind
download 编译CC=CROSSCOMPILEgccCPP={CROSS_COMPILE}gcc CPP=CROSSCOMPILEgccCPP={CROSS_COMPILE}cpp CXX=${CROSS_COMPILE}g++ ./configure --host=xxx --prefix=xxxx; makemake install将host和prefix修改为你平台需要的,运行的问题1valgrind: failed to start tool ‘memcheck’ for p原创 2020-09-30 15:54:16 · 1574 阅读 · 3 评论 -
Android adb 代码分析
adb 常用命令adb devicesadb connect 192.168.43.xxadb kill-serveradb push xx /sdcard/adb pull /sdcard/xxadb shell logcatadb 代码分析当输入adb devices的时候,发生了什么?adb.cint main(int argc, char **argv){//ADB_HOST表示是运行 HOST端的,比如PC的commandline#if ADB_HOST adb_原创 2020-08-27 16:28:05 · 297 阅读 · 0 评论 -
从ffmpeg的packet中取得Android需要的csd信息
MP4裸码流获取csd方式int findVOS(void* data, int size){ char* p = (char*)data; int startcode = 0, vosFound = 0; for (int i = 0; (i < 200) && (i < size - 4); i++) { startcode = (startcode << 8) | p[i]; if(startcode原创 2020-08-22 11:35:01 · 180 阅读 · 0 评论 -
Android logcat分析
调用结构以及代码位置关键代码分析各个进程调用ALOGD/ALOGI…的时候,是通过驱动节点/dev/log/main…写入到驱动的循环buffer当中,这里打开了驱动节点static int __write_to_log_init(log_id_t log_id, struct iovec *vec, size_t nr){#ifdef HAVE_PTHREADS pthread_mutex_lock(&log_init_lock);#endif if (write_原创 2020-08-01 14:11:31 · 293 阅读 · 0 评论 -
Android 静态库互相依赖问题
编译依赖关系1 动态库 A 依赖于静态库B 静态库C2 静态库B依赖于静态库C3 静态库C依赖于静态库B编译出错,提示某些符号未定义题外话,在Android.mk/Android.bp当中,如果是静态库没有循环依赖,如果只是B依赖于C,那么static_libs {“B”,“C”}应该将被依赖的库放到后面,编译不会有问题说回循环依赖的问题,参考stackoverflow的方法https://stackoverflow.com/questions/13637450/android-nd原创 2020-07-31 15:20:32 · 1185 阅读 · 0 评论 -
Android如何设置默认的Launcher
问题机器装有多个launcher,第一次开机,系统会弹出让用户选择哪个作为默认launcher的对话框,但是客户不希望看到这个框,默认使用其中的一个launcher涉及代码frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.javaframeworks/base/services/c...原创 2019-10-18 09:50:37 · 2798 阅读 · 0 评论 -
NDK同时编译32/64位的库
使用NDK编译32/64位的库遇到的问题。原创 2019-07-06 14:23:40 · 5260 阅读 · 0 评论 -
Android 9.0 AudioRecord代码分析
简介打算开始写一些Android代码的流程分析,加深一些记忆,理清一些细节,如果刚好能帮助到你,那就更加好了。手头有的最新的Android代码,就是9.0,所以以此为基准。为什么从AudioRecord开始?一是这个接口的修改新旧Android版本的差别不大。二是它要相对简单一些。所以作为一个开始来分析代码,其中也有一些细节,比如IBinder/Sharememory等,后面再单独开一篇...原创 2019-07-07 21:30:26 · 1804 阅读 · 2 评论 -
Android内存泄漏分析
Android系统查找native进程的内存泄漏问题描述在系统运行过程中,使用android自带的procrank工具,查看系统内存情况,例如130|shell@android:# procrank | head warning: could not create process interface for 8695 PID ...原创 2018-08-04 17:34:54 · 2489 阅读 · 2 评论