![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
JoggingPig
多读好书、多总结、多扩展、多实践
展开
-
Android的输入系统
JAVA层:https://www.androidos.net.cn/android/10.0.0_r6/xref/frameworks/base/services/core/java/com/android/server/input/InputManagerService.javaNative层:https://www.androidos.net.cn/android/10.0.0_r6/xref/frameworks/base/services/core/jni/com_andr...原创 2020-12-14 16:57:15 · 163 阅读 · 1 评论 -
Android源码中的C库、C++库
https://www.androidos.net.cn/android/10.0.0_r6/xref/bionic原创 2020-12-14 15:18:35 · 368 阅读 · 0 评论 -
ServiceManager(二)构建
Client:发送请求的一方Server:接收请求并提供服务的一方ServiveManager自身也同样是Binder Server;在Android系统中Binder Server另一个常见的称谓是"xxx Service",如Camera Service、MediaPlayer Service;ServiceManager启动的很早,能够保证是系统中第一个向Binder驱动注册成“管家”的程序;http://androidxref.com/9.0.0_r3/xref/fr...原创 2020-11-18 23:16:02 · 125 阅读 · 0 评论 -
ServiceManager(一)简介
C/S(Client/Server)架构的应用在安卓中随处可见;ServiceManager在安卓中承担着管理Server的责任;Client在向Server发起请求之前需要先定位Server;举个形象的例子,工作中需要发邮件,发邮件之前得先在邮箱列表中找到收件人,才可以准确地进行交互;Client如何定位的Server?ServiceManager可类比为"DNS"服务器,该服务器自身的“IP地址为0”;ServiceManager帮助Client路由到Server;..原创 2020-11-18 22:05:06 · 1630 阅读 · 0 评论 -
Binder机制初识
Binder是Android系统中大量使用的IPC(Inter Process Communication,进程间通信)机制;lBinder在Android中的使用情景:应用程序对服务器的请求;应用程序自身提供对外服务;Unix/Linux下传统的IPC机制有哪些?管道、消息队列、共享内存、信号量、Socket等;为什么在Android中会大量使用Binder机制?(传统的IPC ,socket会用)Binder本身是C/S架构的,更符合Android系统架构;...原创 2020-10-27 22:02:14 · 117 阅读 · 0 评论 -
JNI
什么是JNI?JNI---java native interface,java本地调用;JNI这种技术有什么用?Java程序中可以调用Native(C/C++)语言写的函数; Native(C/C++)程序中的函数可以调用Java层的函数;Java通过JNI同Native(C/C++)进行交互;Java->JNI->Native的调用流程?以该目录为例:http://androidxref.com/9.0.0_r3/xref/framew...原创 2020-09-18 00:35:06 · 87 阅读 · 0 评论 -
fstab文件
fstab文件(filesystem table)的作用---让挂载分区永久生效的(挂载点被永久保存,设备重启分区不会失效)cat ./system/etc/vold.fstab | head -n 20第一列;设备名称,要被挂载的分区;第二列:挂载点,挂载到哪个文件路径;第三列:文件系统格式;第四列:文件系统参数---让挂载后的分区有一些特殊功能;第五列:备份参数;参考书籍:运维手册...原创 2020-08-19 13:33:55 · 167 阅读 · 0 评论 -
Android系统中prop详解
转载:https://blog.csdn.net/shift_wwx/article/details/9788451转载 2020-08-10 22:59:41 · 1148 阅读 · 0 评论 -
Android 的init过程详解
转载:https://blog.csdn.net/shift_wwx/article/details/39229439?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159706779519724846406910%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=159706779519724846406910&biz_id=0转载 2020-08-10 22:00:54 · 195 阅读 · 0 评论 -
Android系统中添加一款新的产品
目录结构定制新设备所需的配置文件分类(芯片架构一核心板一设备一产品)1.一般,在device目录下添加一个以厂商名命名的文件夹,如“device/xiaomi”; 接着在厂商名文件夹下,建立一个以产品命名的文件夹,如“device/xiaomi/rose”;2.添加新产品至Android系统中---lunch命令时可选择对应的产品进行编译;一般在产品命名的文件夹下面建立vendorsetup.sh脚本文件,如“device/xiaomi/rose/ven...原创 2020-07-24 08:38:17 · 773 阅读 · 0 评论 -
Acronyms&Terms
ADSP 高级数字信号处理器(Advanced digital signal processor)AOP 实时响应处理器 (Always-on processor)AP 应用处理器(Application Processor)API 应用程序接口(Application Programming Interface)AOSS 实时响应子系统 (Always-on subsystem)BCM 总线时钟管理器 (Bus clock manager)BP...原创 2020-07-24 08:01:54 · 296 阅读 · 0 评论 -
QualComm EDL
1.Android 的刷机启动获取对应刷机方式的镜像包(线刷包、卡刷包、OTA包) 将镜像包中各个镜像刷入UFS(闪存)中已经划分好的对应的分区中 机器启动时,CPU读取UFS中相应的镜像至RAM中运行2.QualComm EDL刷机EDL(emergency download)+ EDL模式:空板(从未刷过机的板子)第一次只能用EDL刷机;Flash设备中xbl不存在或损坏时,只能通过EDL模式进行刷机(板子没烧坏的情况下);通过固化在ROM上的pbl刷机,用prog_uf.原创 2020-07-20 12:44:04 · 1823 阅读 · 0 评论 -
Android的启动流程
1.Android的启动流程图2.基于QualComm SOC的设备启动流程PBL(Primary Boot Loader)→ XBL(eXtensible Boot Loader/Secondary bootloader) → ABL(Application bootloader)→ Kernel→ AndroidPBL:主引导加载程序,固化在ROM上;(类似于PC的BIOS)QualComm bootloader 采用UEFI(Universal Extensib...原创 2020-07-20 12:25:54 · 3361 阅读 · 0 评论 -
Android设备中的KEY
1.RPMB KEYRPMB是闪存UFS/EMMC中的一个具有安全特性的物理分区。全称Replay Protected Memory Block, 重放保护存储块,用于存放一些重要的安全信息。RPMB 可对写入操作进行鉴权,但是读取并不需要鉴权,任何人都可以进行读取的操作,因此存储到 RPMB 的数据通常会进行加密后再存储。RPMB为什么能防重放攻击呢?通过密钥获得访问权限,同时对每一个访问动作进行计数,这个密钥就是RPMB Key。使用 eMMC 的产品,在产线生产时,会为每一.原创 2020-06-24 13:15:18 · 2583 阅读 · 0 评论 -
Android的Hidl接口及Hal层的加载
1.什么是HAL?Hardware abstraction layer (HAL).驱动和上层的接口(1)什么是HIDL?HIDL(HAL Interface Description Language)指定 HAL 和其用户之间的接口的一种接口描述语言 (IDL)。(2)HIDL的作用?HIDL 允许指定收集到接口和软件包的类型和方法调用。HIDL 旨在用于进程间通信 (RPC)。(3)HIDL出现的原因?HIDL 的目标是,可以在无需重新构建 HAL 的情况下替换框原创 2020-06-18 00:07:04 · 2174 阅读 · 0 评论 -
Android初始化语言
什么是init.rc?*.rc文件是安卓初始化语言,用于进行安卓初始化配置。init.rc是Init进程最先解析的.rc文件。init.rc是主要的.rc文件,由init可执行文件在执行开始时加载。它负责系统的初始设置。通过第一阶段挂载机制挂载/system,/vendor的设备会在加载主要/init.rc之后立即加载/{system,vendor,odm}/etc/init/目录中包含的所有文件。Android *初始化语言包含五种主要的语句类:Actions, Commands, Servi原创 2020-05-22 12:10:52 · 724 阅读 · 0 评论 -
添加HIDL接口hash值(解VTS问题)
添加HIDL接口的hash值得:若遇到如下VTS测试报告中的错误,需要自己添加接口hash值到current.txt中:使用二进制工具hidl-gen,执行如下命令即可:将输出的内容放入到软件包根目录中的current.txt文件中即可。具体步骤:1.在软件包中找到需要生成hash接口的hidl位置:2.打开HIDL接口同级目录下的Android.bp文件:name属性后为要生成hash值的软件包名称(hidl接口为软件包的一部分);...原创 2020-05-18 02:22:33 · 1954 阅读 · 0 评论 -
Android.mk用法
什么是Android.mk?Android.mk是Android提供的一种makefile文件,用来指定诸如编译生成so库名、引用的头文件目录、需要编译的==.c/.cpp文件和.a静态库文件==等。要掌握jni,就必须熟练掌握Android.mk的语法规范。1基本格式LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)…LOCAL_xxx := xxxLOCAL_MODULE := hello-jniLOCAL_SRC_F原创 2020-05-15 20:38:14 · 185 阅读 · 0 评论 -
安卓架构
1.简单介绍下安卓架构2.分享一些学习途径原创 2020-05-15 00:36:09 · 260 阅读 · 0 评论