Android Framework
漫漫朔雪
软件工程师,专注Linux/Android下的音视频和网络互连技术
展开
-
java.io.FileNotFoundException: /storage/emulated/0/Download/xxx: open failed: EACCES (Permission den
问题java.io.FileNotFoundException: /storage/emulated/0/Download/xxx: open failed: EACCES (Permission denied)首先需要说明一下我的这个问题是Android 10才出现的,Android10以下的都没有,这里主要说的不是动态申请访问文件的权限问题。因为我已经动态申请了权限,并且在获得权限后存储文件报的这个错误。解决先说一下解决版本只需要在AndroidManifest.xml文件的applic转载 2021-12-25 13:32:46 · 8520 阅读 · 1 评论 -
AudioServer的系统启动流程
Android 音频源码分析——audioserver启动_奋斗的菜鸟ing-CSDN博客_android audioserver 启动Android系统启动:加载引导程序-》引导程序-》Linux内核启动-》启动init进程-》zygote进程-》SystemServer-》Launcher。init进程对应main函数system/core/init/init.cppint main(int argc, char** argv) { //...... LoadBoot转载 2021-12-19 18:55:51 · 1289 阅读 · 0 评论 -
SdpManager
SdpManager主要用来扫描附近的蓝牙设备并返回蓝牙设备列表。框图sdpSearch序列图原创 2021-10-14 16:04:29 · 135 阅读 · 0 评论 -
DisplayAdapter
调用DisplayManagerService创建各种DisplayDevice之前需要注册,主要有3中类型:registerDefaultDisplayAdapters,针对内置主屏幕/默认屏幕,displayId=0;或者HDMI接口屏幕,displayId=1。创建LocalDisplayAdapter对象,从SurfaceControl和配置文件中获取参数,创建LocalDisplayDevice。 registerOverlayDisplayAdapterLocked, 针对overlay的原创 2021-10-13 21:46:05 · 738 阅读 · 0 评论 -
DisplayManager
顾名思义,DisplayManager把逻辑屏幕或/虚拟屏幕的内容与物理屏幕, Surface关联起来,在Android源码中搜索"Context.DISPLAY_SERVICE", 可以看到MediaProjection,MediaRouter,ViewRootImpl,VrManagerService,WallpaperService等都在使用DisplayManager。对DisplayManager进一步分析,发现它通过BINDER机制在使用DisplayManagerService的接口。资原创 2021-10-12 20:21:05 · 1726 阅读 · 0 评论 -
LogicalDisplay::configureDisplayLocked
这个函数的主要作用是把当前的逻辑主屏幕尺寸,裁剪成入参DisplayDevice device的屏幕大小。 int orientation = Surface.ROTATION_0; if ((displayDeviceInfo.flags & DisplayDeviceInfo.FLAG_ROTATES_WITH_CONTENT) != 0) { orientation = displayInfo.rotation; }原创 2021-10-12 13:12:10 · 575 阅读 · 1 评论 -
DisplayManagerService onStart
原创 2021-10-12 08:20:40 · 91 阅读 · 0 评论