
Android_OS
文章平均质量分 77
基于Android平台上OS的相关学习
上电失败
个人学习笔记
展开
-
Android unique_ptr与unique_lock的回收机制
高通SSE架构HAL要与底层ADSP Sensor通信,必须获取对应的SUID, 通过构造suid_lookup以及request_suid来建立连接,request成功后会调用callback,callback与主线程是异步的,若主线程结束的早时,构造的资源被回收就会导致callback异常。下面的demo强行造了一个多线程问题,当智能指针unique_ptr会被系统回收,出现值不对,当然真实的比这个复杂的多。原创 2022-11-28 10:40:21 · 366 阅读 · 0 评论 -
Android Qcom board-id加载镜像学习
很早就听说过board-id能用来区分项目,没负责过这个,也一直没有时间去了解。board-id的可以通过gpio或者eeprom来存放,board-id也就是CDT中的部分内容,如果时gpio的方式,可配置的项目有些而且在主板上的都是hardcode,这样不利于维护。原创 2022-07-11 22:09:10 · 2954 阅读 · 0 评论 -
Linux Kernel ccflags/Android 12 GKI
外部模块头文件的检索:当编译的目标模块依赖多个头文件时,kbuild对头文件的搜索位置有这样的规定:(1) 直接放置在 Makefile 同在的目录下,在编译时当前目录会被添加到头文件搜索目录。(2) 放置在系统目录,这个系统目录是源代码目录中的 include,注意是源代码目录而不是系统目录的。原创 2022-04-26 16:07:14 · 4267 阅读 · 2 评论 -
Android ION 用户空间与内核共享内存
Android 系统中,SurfaceFlinger分配buf 或 CameraService拿到出的图像buf都是通过ION的机制;Android中通过Binder实现 IonFd跨进程共享,IonFd方便应用程序 user space 以及各驱动模块间零拷贝访问buf。测试用例项目中使用到的一段代码,部分不完整,但记录下的基本流程以及使用的API还是很清晰的用户空间int test::open(){ int rc = -1; mFd = ::open("/dev/test", O_RDWR原创 2022-04-06 20:27:47 · 3966 阅读 · 0 评论 -
Android rc文件启动services
Android系统启动 init.rc解析最近跟着同事做一个功能,中间有一段很值得我学习,通过property去触发service再去注册所需要的功能,看着好像挺简单的,debug的过程中不免会有很多问题吧,但最重要的首先要有这种思想,然后才能下手一步步去填坑(1)添加我们自己的rc,以及所需要的services执行文件其实不外乎就是两步(一)是需要把我们编写的内容编出来 (二)是需要把编出的内容放在系统的位置中vendor_product.mkPRODUCT_PACKAGES += test_s原创 2022-06-04 17:22:59 · 4457 阅读 · 0 评论 -
Android JNI HIDL 简单实例学习
突然看到一篇文章Android HIDL学习,跟这位大神是有一面之缘的,正好也想学习Android是怎么从 APP → JNI Client → HIDL代码我已经上传到了CSND的资源,首先我们看一下结构图和代码目录吧HIDL接口按着开头提到的博客,常规的创建hidl文件的方法,这里也可以不用make hidl-gen,使用out目录中已经生成的一样可以用这里要注意大神博客上提到INaruto.hal的位置可以随便放,但实际上是不可以的,必须按结构目录来放置,不然无法使用hidl-gen生成c+原创 2022-06-27 21:15:36 · 2124 阅读 · 0 评论 -
Android MTK Selinux机制学习
https://blog.youkuaiyun.com/m0_52481422/article/details/109812319如何选择Selinux目录Google Original:alps/system/sepolicyMTK Plaform:alps/device/mediatek/common/sepolicy/bsp alps/device/mediatek/common/sepolicy/basic alps/device/xxx/ProjectConfig.mk 查看版本定义的MTK_原创 2021-09-06 19:38:04 · 1974 阅读 · 0 评论 -
Android 系统功耗分析工具
在测量功耗的时候,通常是使用Power Monitor去拆分,或者对单一模块进行测量。今天突然在网上发现一个神奇的工具BatteryHistorian,跟Systrace很像,能很好的展示记录的过程中系统中各模块的耗电状态。Android电池功耗BatteryHistorian数据分析bugreport.txtbugreport.txt中记录了从系统中拉出来zip文件名称接下来就是要使用BatteryHistorian,这个网上有很多教程如何搭建,这边找到了一个公开的网站能更省事一点,如下Uplo原创 2022-06-27 21:18:19 · 4836 阅读 · 0 评论 -
Android 系统性能分析工具
(1)需要安装的软件 :python-2.7.18.amd64.msi pywin32-227.win-amd64-py2.7.exeSystrace_Tool_since_R(Official)_ALPS (2)刷机版本的选择:userdebug的信息太多,可能会导致抓取的trace无法解析所以选择user版本,mtk工具刷机的时候boot选择 boot-debug.img (user + root)(3)开始抓取:先执行 Systrace_Tool_since_R(Official)_A原创 2021-05-21 19:38:40 · 1191 阅读 · 0 评论 -
Android.mk与Makefile基础用法
CFLAGS + = -DG_DEBUG # 在源码中可以使用 # ifdef G_DEBUG XXXX。LOCAL_PATH := $(call my-dir) #定义当前mk文件的目录include $(CLEAR_VARS) #清除全局变量LOCAL_MODULE := hello #生成目标的so文件 名LOCAL_SRC_FILES := hello.c #需要编译的源文件LOCAL_C_INCLUDES :=原创 2021-01-07 13:27:55 · 3091 阅读 · 0 评论