android系统
岩之有理kkk
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SELINUX:Systemproperties.set Unable to set property “xx“ to “xx“: error code: 0x18
1.问题framework增加setprop功能失败2.解决在system_server.te文件中allow system_server { *_prop }:property_service set;其中*_prop是在property_contexts中定义persist.ivi. u:object_r:*_prop:s0原创 2022-04-26 17:46:31 · 3105 阅读 · 1 评论 -
Android显示架构
一.术语二.显示机制2.1 水平和垂直同步信号在早期的CRT显示器,电子枪从上到下逐行扫描,扫描完成后显示器就呈现一帧画面。然后电子枪回到初始位置进行下一次扫描。为了同步显示器的显示过程和系统的视频控制器,显示器会用硬件时钟产生一系列的定时信号。当电子枪换行进行扫描时,显示器会发出一个水平同步信号(horizonal synchronization),简称 HSync当一帧画面绘制完成后,电子枪回复到原位,准备画下一帧前,显示器会发出一个垂直同步信号(vertical synchronizat原创 2021-12-13 14:01:58 · 1053 阅读 · 0 评论 -
卡顿、死锁、ANR原理分析
https://www.jianshu.com/p/df257ff1bfec原创 2021-12-09 13:38:52 · 401 阅读 · 0 评论 -
Android 底层知识-SMMU
MMU简介MMU是Memory Management Unit的缩写,中文名是内存管理单元。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)、内存保护、中央处理器高速缓存的控制。在linux中,用户态使用的内存是虚拟地址(Virtual Address,VA),实际硬件内存称为物理地址(Physical Address,PA)。用户访问内存看到的是VA,内核转化成PA操作实际物理地址。这里要提一下,实际MMU硬件支持2层转化,PA-&原创 2021-11-29 16:28:08 · 5287 阅读 · 0 评论 -
Android 底层知识-PMEM
最近研究android hypervisor通信,buffer的传输最底层都是调用的PMEM,现整理相关资料。PMEM 基本原理Android Pmem是为了实现共享大尺寸连续物理内存而开发的一种机制,该机制对dsp,gpu等部件非常有用。Pmem相当于把系统内存划分出一部分单独管理,即不被linux mm管理,实际上linux mm根本看不到这段内存。Pmem与Ashmem的区别Pmem和Ashmem都通过mmap来实现共享内存,其区别在于Pmem的共享区域是一段连续的物理内存,而Ashmem的共原创 2021-11-27 16:47:47 · 2931 阅读 · 0 评论 -
android获取时间戳接口
1.时间单位秒:second毫秒:Millisecond微妙:Microsecond纳秒:nanosecond1秒 = 1000毫秒;1毫秒=1000微秒, 1微秒=1000纳秒,2.获取时间戳native层 nsecs_t now = systemTime(SYSTEM_TIME_MONOTONIC); txt:这里返回的就是纳秒java层long now = SystemClock.uptimeMillis();kernel层s64 time = ktime原创 2021-11-26 14:21:06 · 2781 阅读 · 0 评论 -
Android 内存管理类GraphicBuffer Gralloc ION
首先介绍下相关概念:GraphicBufferGraphicBuffer是Surface系统中一个高层次的显示内存管理类,它封装了和硬件相关的一些细节,简化了应用层的处理逻辑。Surface是Andorid窗口的描述,是ANativeWindow的实现;同样GraphicBuffer是Android中图形Buffer的描述,是ANativeWindowBuffer的实现。而一个窗口,可以有几个Buffer。GraphicBuffer的左膀右臂,GraphicBufferAllocator和Grap原创 2021-08-10 18:23:02 · 2282 阅读 · 0 评论 -
repo 相关
1.error: .repo/manifests/: contains uncommitted changes 解决办法出现这个问题的原因是本地代码发生变化,但未commit试着通过 git reset --hard来恢复所有变化的文件之后,依然存在上述问题,最后通过cd .repo/manifests 切换到 .repo/manifests目录下执行git stash命令,并通过git clean -f -d命令删除变化记录目录,然后使用repo sync就可以通过了。2.repo sync [原创 2021-07-26 12:33:17 · 614 阅读 · 0 评论 -
androidQ input子系统
Android dumpsys input详解Android 输入系统之EventHub篇系统性介绍:Android 中input event的分析原创 2021-07-23 13:30:06 · 253 阅读 · 1 评论 -
如何使用am命令启动Android应用
主要介绍使用am命令启动应用的方法一、使用am命令启动一般的Android App命令格式为:adb shell am start -n package/launch_activity示例:打开设置App命令:adb shell am start -n com.android.settings/com.android.settings.Settings命令的关键在于获取package和launch_activity。有很多种方法,这里列举两种,更多的方法请参考“如何获取Android App的pa原创 2021-06-08 09:43:31 · 6075 阅读 · 0 评论 -
HIDL服务死亡通知实例 hidl_death_recipient
//申请hidl_death_recipient的子类struct CameraPolicyServiceClient: virtual public hardware::hidl_death_recipient { CameraPolicyServiceClient(sp<hardware::camera::device::V1_0::ICameraDevice> &interface); ~CameraPolicyServi原创 2021-05-19 11:37:01 · 2105 阅读 · 2 评论 -
Android.bp 介绍
概述Android.bp的出现就是为了替换Android.mk文件。bp跟mk文件不同,它是纯粹的配置,没有分支、循环等流程控制,不能做算数逻辑运算。如果需要控制逻辑,那么只能通过Go语言编写。Android 7.0引入ninja和katiAndroid 8.0使用Android.bp来替换Android.mk,引入SoongAndroid 9.0强制使用Android.bp1.语法讲解cc_binary { //编译成可执行文件,cc_library_shared编译原创 2021-05-11 13:28:06 · 2260 阅读 · 0 评论 -
Android 10编译报错整理
编译Android 10遇到以下不同报错,没有给出明显的错误信息,最后验证出是电脑内存不足导致编译被杀掉,增大电脑内存和Swap分区之后解决。注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。[ 91% 123644/134926] //vendor/qcom/proprietary/interfaces/voiceprint/1.0:vendor.qti.voiceprint-V1.0-java javac [common]注: 某些输入文件使用了未经检查或不安全的操作。注原创 2021-05-10 09:28:05 · 4439 阅读 · 1 评论 -
android binder 基础实例(可运行)
实例:https://download.youkuaiyun.com/download/KLYAZWS/17844927参考文章:https://blog.youkuaiyun.com/newchenxf/article/details/49359283#insertcode原创 2021-04-25 15:05:43 · 182 阅读 · 0 评论 -
adb 常用命令-持续更新
install安装命令 adb install [-lrtsdg] <file> - push this package file to the device and install it app installation: install [-lrtsdg] PACKAGE -l: forward lock application -r: replace existing application -t: allow test packages原创 2020-11-11 10:54:41 · 329 阅读 · 0 评论 -
init.rc中添加脚本服务相关报错总结,持续更新
错误1:init: init.target.rc: 121: invalid service name 'sshservice_enable'原因:init.rc service name 过长,正确的命名:1.service name 长度不能超出16个字符2.service name 命名时可以使用的字符只能是字母数字(0-9a-zA-Z),’_'和 ‘-’参考:https://blog.youkuaiyun.com/shijie19930806/article/details/72834824?u原创 2020-11-05 18:41:10 · 558 阅读 · 0 评论
分享