
android源码分析
文章平均质量分 75
android系统源码分析
言并肃
一个默默的开发者
展开
-
Android窗口层级(Window Type)分析
车载方案存在倒车等特殊界面需要在较高的窗口层级显示,Android原有的窗口层级不满足车载需求,因此都会自定义车载窗口层级。下图为参考自定义的窗口层级:android自定义窗口层级(自定义车载系统中倒车影像显示层级)自定义窗口层级在不同Android版本中的初始层级值也是不同,因此需要通过系统属性来判断初始值。例如在Android 13平台的默认属性为2401,在Andoid 9等平台为2031。这样做的目的是由于跟Android原生的窗口层级存在冲突,因此需要根据平台来调节初始值。原创 2023-09-11 23:31:49 · 14076 阅读 · 2 评论 -
蓝牙HID——Android手机注册HID时出现 Could not bind to Bluetooth (HID Device) Service with Intent * 的问题分析
在蓝牙HID的开发过程中,使用红米K30手机 MIUI12.5(Android 11) 系统,打算将手机打造成蓝牙外设(键盘、触摸板、游戏手柄等)。出现下面的错误信息上述报错后就不会与系统蓝牙HID服务绑定,从而无法得到进行注册。而使用绑定时则无此问题。原创 2022-11-11 17:20:46 · 3747 阅读 · 5 评论 -
Android 12之启动画面Splash Screens(二) -- framework原理
本篇介绍Splash Screens的framework层原理。原创 2022-09-12 18:51:25 · 5841 阅读 · 2 评论 -
android媒体焦点音量压低/暂停逻辑源码简析
请求焦点的过程中,其他媒体客户端会因媒体焦点丢失进行媒体压低或暂停,下面从framework层简单分析其过程。添加到压低媒体apc(AudioPlaybackConfiguration)列表。以上为媒体焦点音量压低的简单逻辑分析。得到的是IPlayer实例,内部类。进行音量压低,apc即。实现音频音量控制,调用。...原创 2022-07-29 23:14:58 · 2187 阅读 · 1 评论 -
android平台多路摄像头实现方式的简析
采用CameraAPI2HAL3架构,androidP和Q的初始化预览流程无异。流程大概为CameraManager.openCamera打开摄像头设备回调onOpened方法得到CameraDevice,通过CameraDevice创建CaptureRequest预览请求,设置Surface容器同时创建CameraCaptureSession会话,从而实现视频预览。多路摄像头应用MIPICSI2架构,通过MIPICSI2接口结合N4芯片达到多路视频显示的目的。...原创 2022-07-28 22:08:44 · 3932 阅读 · 1 评论 -
android默认授予所有应用权限以及特殊权限处理
services/core/java/com/android/server/pm/DefaultPermissionGrantPolicy.java原创 2022-05-27 09:00:00 · 5995 阅读 · 4 评论 -
SurfaceView/TextureView中不响应点击事件问题以及解决方案
在SurfaceView/TextureView中绘制一个layout界面在SurfaceView/TextureView中dispatchTouchEvent向layout分发事件,同时为其子View设置触摸事件和点击事件但只回调了触摸事件而不回调点击事件。在触摸事件中电泳performClick方法才回调点击事件。证明子View在回调触摸过程中没有调用到performClick导致不回调点击事件。将子View改为自定义View,重写onTouchEvent和performClick方法,发现也on原创 2022-05-23 22:39:55 · 1778 阅读 · 0 评论 -
android使用系统隐藏接口ActivityView实现主界面分窗显示三方应用Activity
android系统隐藏API介绍android.app.ActivityViewframeworks\base\core\java\android\app/packages/apps/Car/Launcher/src/com/android/car/carlauncher/https://source.android.google.cn/devices/automotive?hl=zh-cn原创 2022-05-22 09:00:00 · 11493 阅读 · 25 评论 -
车载USB DVR(行车记录仪)的源码架构浅析(基于AndroiidM)
APP层 path:AndroidM/vendor/mediatek/proprietary/packages/apps/DVR 主要包含 FrontView.java MainActivity.java1、FrontView继承了 SurfaceView用于摄像头视频的预览,把SurfaceView通过调用 JNI 的 DVR 类对象方法SetFrontSurface(SurfaceHolder sh)传入到底层,交给底层来实现在surfaceView上的视频渲染。FrontView在主布局原创 2022-05-19 01:00:00 · 3833 阅读 · 1 评论 -
倒车GPIO触发原理的分析
GPIO触发原创 2022-05-12 16:41:57 · 651 阅读 · 1 评论 -
记录一次获取车载摄像头数量为0同时打开摄像头黑屏的问题分析(基于Android M)
在一次实车测试车载倒车过程中,出现了倒车打开车载摄像头黑屏的现象。分析收集的log,发现初始化Camera前会获取摄像头数量来确定车载摄像头是否连接,当获取的摄像头数量大于2时则认为接入了摄像头。获取的摄像头的代码如下:private static final int CAMERA_TYPE_BACKWARD_COMPATIBLE = 0;private static final int CAMERA_TYPE_ALL = 1;private ICameraService mCameraServi原创 2022-05-01 16:55:30 · 1551 阅读 · 0 评论 -
从源码角度分析View的点击和触摸事件的关系
有这样一个场景,在一个自定义CutomLayout(继承自RelativeLayout)的布局,嵌套了一些View控件,但View并为占据全屏,此时需要监听空白区域的触摸事件来做一些处理,为RelativeLayout设置id后并设置触摸监听事件,但却监听不到RelativeLayout的触摸事件。 View layoutMain = findViewById(R.id.layout_main); layoutMain.setOnTouchListener(new View.OnTo原创 2022-04-18 12:26:07 · 304 阅读 · 0 评论