Android System
文章平均质量分 70
对安卓系统源代码的一些分析
Super Jang
300字以内
展开
-
Android12 SystemUI记录
之后就如下流程图创建了NotificationPanelViewController,这里主管通知栏的一些显示。StatusBar在start函数中createAndAddWindows(result);然后调用了 makeStatusBarView(result);StatusBar的一些流程。原创 2023-03-09 16:50:16 · 197 阅读 · 0 评论 -
芯片设计厂商与开源OS(Linux及Android)的兼容及优化
当前主流的开源操作系统当属Linux与Android了,Android同时又基于Linux来实现,芯片厂商再推出兼容这些操作系统的芯片的时候,需要符合开源OS的设计标准,比如谷歌推出Android的treble概念的时候,芯片厂商不得不去遵循这些标准,在软件上去实现HIDL等这些标准,当然谷歌在推出这些标准的时候应该会跟芯片厂商交互。Linux平台对芯片的硬件设计也会产生影响,同时每个芯片厂商也会针对这个硬件进行相应的优化。原创 2023-03-03 11:42:37 · 266 阅读 · 0 评论 -
Android开机全解析
执行Bootloader程序过程中,如果镜像验证失败、BootLinux (&Info) 函数启动失败或者接收到启动至 fastboot 的命令(比如使用 adb reboot bootloader进行重启、在启动时按下了电源键+下音量键组合)时,会进入到Fastboot模式(Fastboot 是一种电脑通过USB数据线对手机固件进行刷写、擦除/格式化、调试、传输各种指令的固件通信协议, 俗称线刷模式或快速引导模式)。通过查看某个服务A与下一个服务的日志时间,可以计算出启动服务A的耗时。转载 2022-12-27 16:10:33 · 1082 阅读 · 0 评论 -
Android HIDL 介绍学习之客户端调用
通过编译以后会在out的vendor/bin目录生成本次的bin文件,如果想要开机正常使用需要添加bin文件的selinux权限,本次我们测试通过adb root & adb shell setenforce 0的方式强制关闭seliunx权限检查。hidl的客户端调用相比服务端的实现要简单很多,本次我们通过一个bin程序直接来调用客户端。当我们程序中传入的Type type = static_cast(0);这两个参数时,根据我们上一篇的逻辑判断此时会返回UNKNOW的错误。原创 2022-11-08 16:45:09 · 2634 阅读 · 0 评论 -
Android源码阅读记录
记录阅读源码过程中的一些个人理解原创 2022-05-03 00:53:22 · 1536 阅读 · 1 评论 -
安卓开发常用网站记录
常用网站原创 2022-03-07 18:40:49 · 252 阅读 · 0 评论 -
SurfaceFlinger记录
在systemserver启动之前我们的SurfaceFlinger通过init已经提前起来,这时候显示相关的硬件初始化已经提前开始。SurfaceFlinger的main函数是在frameworks\native\services\surfaceflinger\main_surfaceflinger.cpp文件中定义的,还是老一套的native server启动流程,创建ProcessState,然后创建sp<SurfaceFlinger> flinger = surfacefling..原创 2022-01-24 19:07:40 · 2339 阅读 · 0 评论 -
Android 10 WindowManagerService addWindow分析
1、检查权限mPolice.checkAddPermission(attrs,appOP);//PhoneWindowManager2、获取或者创建DisplayContent,Activity启动的过程中会创建,但是如果等不及这里先创建。后期WMS所有的appToken由其统一管理,旧版本mTokenMap存在这个类中。3、mRoot RootWindowContainer,在构造函数中实例化,继承自WindowContainer,开机就被实例化,作为设备的根窗口容器。DisplayContent原创 2022-01-13 09:07:41 · 438 阅读 · 0 评论 -
Android PooledLambda记录
首先需要弄清楚Pool,这个接口的定义位于frameworks/base/core/java/android/util/Pools.java是一个工具类,内容如下:public static interface Pool<T> { /** * @return An instance from the pool if such, null otherwise. */ @UnsupportedAppUsage public T acquire(原创 2021-12-27 19:55:46 · 2568 阅读 · 0 评论 -
Android 的 fdsan 文件描述符相关介绍
fdsan is a file descriptor sanitizer added to Android in API level 29.Android 的 fdsan(file descriptor sanitizer) 文件描述符排错程序有助于捕获包含 use-after-close 和 double-close 等文件描述符的常见错误。错误示例如下:pid: 32315, tid: 32315, name: crasher64 >>> crasher6...原创 2021-09-28 10:08:57 · 3418 阅读 · 0 评论 -
Android10 Launcher3的一些总结
由于最近解决Launcher3所有应用界面,一个区域图标闪烁的问题,故将Launcher3这部分代码梳理了一编,做个总结归纳一下。 Launcher3的主入口是Launcher.java这个Activity文件,并且他的布局文件的入口在luancher.xml,从这个入口开始延申很多东西出来,如果深入研究,你会发现这套代码非常庞大,并且运用了很多设计模式在里面,并且后续为了完善又出了quickstep这种版本。 本次需要研究的范围主要为AllApps这个模块,这也是我们上拉之后...原创 2021-05-21 11:40:43 · 1388 阅读 · 1 评论 -
Android HIDL 介绍学习和实战应用
什么是HIDL?官方回答:HAL 接口定义语言(简称 HIDL,发音为“hide-l”)是用于指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。HIDL 允许指定类型和方法调用(会汇集到接口和软件包中)。从更广泛的意义上来说,HIDL 是用于在可以独立编译的代码库之间进行通信的系统。HIDL 旨在用于进程间通信 (IPC)。进程之间的通信采用Binder机制。对于必须与进程相关联的代码库,还可以使用直通模式(在 Java 中不受支持)。HIDL 可指定数据结构和方法签名,这..原创 2020-12-10 15:15:41 · 7842 阅读 · 22 评论 -
Android将系统属性作为 API 实现
在Android10源码分析的过程中发现了一种后缀名为sysprop的文件,充满疑惑,故记录本文来探索这种系统属性作为API的实现方法,当然这种文件的编译还是依赖于build目录下的编译脚本,安卓10好像使用go语言来构建这种编译方式,安卓真是成为了各种语言的杂合体,看来以后又要对go语言进行一定的学习了。接下里开始正文分析。先摘抄一大段安卓官方的解释系统属性是在系统范围内共享信息(通常是配置)的一种便捷方式。每个分区都可以在内部使用自己的系统属性。跨分区访问属性(例如,/vendor访问...原创 2020-12-08 21:18:07 · 741 阅读 · 0 评论 -
Android 10 SurfaceFlinger
Andorid 10 SurfaceFlinger 模块介绍 SurfaceFlinger 接受来自多个源的数据缓冲区,然后将它们进行合成并发送到显示屏。WindowManager 为 SurfaceFlinger 提供缓冲区和窗口元数据,而 SurfaceFlinger 可使用这些信息将 Surf...原创 2020-12-07 17:31:59 · 1572 阅读 · 0 评论