- 博客(10)
- 资源 (3)
- 收藏
- 关注
原创 Android P出现的编译问题
首先解决这个问题的思路是,将android.mk 转换成对应的android.bp文件 。 android.mk大家都很熟悉了,就是android下编译模块的配置文件,可以理解为android makefile。从android N之后,我们发现好多模块下面没有了android.mk文件,多了一个android.bp文件。这个是google在android N之后新的编译配置文件。...
2018-11-21 10:02:35 2685
原创 binder线程jni找不到java类
在 Binder 线程中使用 JNI 时,由于 JNI 代码运行在原生层,而原生层并没有直接关联 Java 的 ClassLoader,所以需要手动设置 ClassLoader,确保 JNI 能正确加载 Java 类。通常,在主线程或其他业务线程中,ClassLoader 已经被正确设置,而在 Binder 线程中,需要手动指定 ClassLoader,尤其是当 JNI 调用涉及 Java 类的反射或调用方法时。我的jni调用是在binder线程中发起的。我是通过jni的FindClass查找的。
2024-09-11 17:51:57 224
原创 如何使用BitTube进行IPC通信
这是通过 Unix 域套接字提供的读写能力来实现的,使得系统可以高效地响应和处理不同的事件。Binder 的通信机制涉及较多的上下文切换和内核操作,而 BitTube 通过直接的套接字通信,资源消耗较少。:BitTube 的实现比 Binder 更为轻量,尤其是在传输简单数据(如事件通知)时,BitTube 更加合适,避免了 Binder 通信中复杂的数据序列化和反序列化步骤。:BitTube 的协议和机制简洁,特别适合短小频繁的消息传递,如输入事件、显示更新信号等。1.基于 Unix 域套接字的通信。
2024-09-06 19:33:34 295
原创 libc++ not find
libc++.so 是系统提供的 C++ 标准库,通常存在于 Android 系统的 /system/lib 目录中。libc++_shared.so 由应用或库自带,确保库和应用之间的一致性,避免由于系统更新而导致的兼容性问题。libc++_shared.so 是由开发者项目自带的 C++ 标准库实现,通常在应用的 lib 目录中。libc++_shared.so 用于应用程序和库的内部,确保在应用中使用一致的 C++ 标准库实现。编译出来的so叫libc++_shared.so。
2024-08-22 11:44:42 323
原创 绑定cpu核失效问题分析
这种调度策略旨在优化性能和资源利用率,通过将特定任务分配给特定的 CPU 核心,以最大程度地减少 CPU 缓存的切换和通信开销,从而提高系统整体性能。:在软亲和度调度中,操作系统给出了一个建议,但并不强制要求将特定任务绑定到特定的 CPU 核心。操作系统可能会尽力将任务调度到建议的 CPU 上执行,但仍然有可能在不同的 CPU 之间进行迁移,特别是在负载均衡或性能优化的情况下。这意味着操作系统将任务限制在特定的 CPU 上执行,不会在不同的 CPU 之间进行迁移。2、修改cpu簇最小在线数量为cpu数量。
2024-05-11 15:45:28 583
原创 mono转bootTime误差
boottime” 和 “monotime” 是两种不同的时间概念:1.Boottime(引导时间):是指系统启动时间,从计算机开机到操作系统完全加载并可用的时间段。在 Android 系统中,Boottime 通常是指系统启动时的时间戳,以纳秒为单位。这个时间戳可以通过系统调用获取,例如 getBtimerNs 函数。2.Monotime(单调时间):是指计算机运行时间的单调递增计数器,通常用于计算相对时间间隔,而不受系统时间的影响。
2024-05-11 10:05:41 447
原创 pthread 32位兼容问题
我创建了一个匿名共享内存。当我的client用pthread_cond_timedwait 等待信号量,server端用pthread_cond_broadcast通知的时候发现pthread_cond_timedwait每次都超时,也就是说pthread_cond_broadcast无效!我的pthread_cond_t是client初始化的,当client端是32位时,pthread_cond_t的大小就是int32_t __private[1];注意:形参__cond是64位,p1的地址是32位的。
2024-05-07 19:20:01 319
原创 ASharedMemory共享内存
本文将模拟进程间共享内存的实现,用多线程模拟看api描述,他是创建了一个共享的内存区域,并返回一个文件描述符,这个描述符可以被mmap映射我们在mmp的时候可以使用flag: PROT_READ | PROT_WRITE | PROT_EXEC仅支持android26以上/** * Create a shared memory region. * * Create shared memory region and returns an file descriptor. The resul.
2022-05-28 16:07:05 812
原创 Monado结构体
Compositor的主要结构体1、comp_compositor/*! * Main compositor struct tying everything in the compositor together. * * @ingroup comp_main * @implements xrt_compositor_native */struct comp_compositor{ struct comp_base base; //! Renderer helper.渲染帮助类
2022-05-26 17:43:33 414
原创 Android Selinux权限配置
如果直接如上添加到system_server.te文件中,会报一个neverallow;针对neverallow google是允许修改的,强制修改会导致gms测试fail针对如何避免这种情况,需要修改你所设置属性的lable,如下标红的地方。修改方法就是如下▪(1). 定义system property类型. 在property.te•type demo_prop, property...
2018-11-21 11:30:25 29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人