深入理解AndroidⅠ和Ⅱ
文章平均质量分 87
学习笔记
Snasph
show me the money.
展开
-
深入理解Audio系统
根据“frameworks/av/services/audiopolicy/common/include/policy.h”中定义,API调用的采样率的范围是。AudioTrack的构造用了“建造者模式”的方法,创建了一个AudioTrack实例;原创 2024-05-30 14:50:33 · 163 阅读 · 0 评论 -
init、zygote、system_server、watchdog分析
① --nice-name=system_server, 这个参数将在handleSystemServerProcess(parsedArgs)时设置新folk出来的进程名为:“而这个函数会调用RuntimeInit::applicationInit()方法,并通过反射调用com.android.server.SystemServer的main()方法;从1.3.3可知,action.cpp中的 RunBuiltinFunction()接口将会调用“class_start main”,并。原创 2023-11-27 17:56:59 · 838 阅读 · 0 评论 -
Android中的智能指针
Java和C/C++的一个重大区别,就是它没有“指针”的概念。这并不代表Java不需要使用指针,而是这个“超级武器”被隐藏了起来。“水能载舟,亦能覆舟”,如果读者曾使用C/C++开发过一些大型项目,就会知道开发人员最头疼的事情莫过于概率性极低(Once)的死机问题——而造成系统宕机的根源,往往就是指针异常。所以Java以其他更“安全”的形式向开发人员提供了隐性的“指针”,使得用户既能享受到指针的强大功能,又能尽量避免指针带来的灾难。C/C++项目中常见的指针问题可以归纳为:指针没有初始化;原创 2023-02-17 20:15:10 · 267 阅读 · 0 评论 -
Binder进程间通讯
以frameworks/av/media/mediaserver/main_mediaserver.cpp为例来说明Binder通讯机制;原创 2023-02-24 00:26:15 · 554 阅读 · 0 评论 -
Handler、Looper、HandleThread、ActivityThread简介
1 Thread类open class Thread : Runnable线程是程序中的执行线程。 Java 虚拟机允许应用程序同时运行多个执行线程。每个线程都有一个优先级。 具有较高优先级的线程优先于具有较低优先级的线程执行。 每个线程可能会,也可能不会被标记为守护进程。 当在某个线程中运行的代码创建一个新的 Thread 对象时,新线程的优先级最初设置为等于创建线程的优先级,并且当且仅当创建线程是守护进程时,它才是守护线程。有两种方法可以...原创 2022-04-19 09:20:38 · 3697 阅读 · 0 评论 -
Android 12中配置Selinux相关权限问题
从avc信息看,需要配置:但如上规则,放在系统里依然无法编译。原因是Google定义了相关规则,不允许按上述方法配置;处理方案是:①. 在文件中新增label,如下图所示;②. 在*.te文件中,通过set_propget_prop方法来配置;编辑/添加策略和file_contexts后,更新 /device/manufacturer/device-name/BoardConfig.mk 以引用 sepolicy 子目录和每个新策略文件。原创 2024-03-29 17:43:06 · 677 阅读 · 0 评论 -
Android中多个Sensor客户端注册“First flush Pending”问题
引言:近期在项目上遇到一个“FLP”问题。本文借此问题来分析:同一个sensor被多个App监听SensorEventListener事件时,app client被"First flush Pending"问题;原创 2024-01-12 15:44:41 · 903 阅读 · 0 评论