Framwork
文章平均质量分 91
暮冬一十四
这个作者很懒,什么都没留下…
展开
-
Android Framework源码-IMS
Linux事件机制:事件都是储存在文件中;如触摸屏幕事件:存储在etc/input/event0的文件中,每次触摸都会以16进制数据储存;INotify:监听文件状态,有变化则产生FD值epoll机制:epoll_create:注册监听事件类型epoll_ctl:监听FD值,FD改变则唤醒epoll_wait()epoll_wait:没事件则阻塞,有事件则分发;将INotify和epoll封装为一个对象EventHub;SystemServer进程启动时,创建了Inp原创 2022-01-26 14:30:31 · 807 阅读 · 0 评论 -
Android WMS及绘制流程
Android Handler_暮冬一十四的博客-CSDN博客Android Binder_暮冬一十四的博客-CSDN博客Android Zygote_暮冬一十四的博客-CSDN博客Android Framework源码-PMS_暮冬一十四的博客-CSDN博客Android Framework源码-AMS在activity.attach()时创建一个窗体对象PhoneWindow获取到wms服务的IBinder,再去创建了一个WMS的代理类WindowMana原创 2022-01-24 15:56:50 · 1771 阅读 · 0 评论 -
Android Framework源码-AMS
Android Handler随记_暮冬一十四的博客-CSDN博客Android Binder随记_暮冬一十四的博客-CSDN博客Android Zygote随记_暮冬一十四的博客-CSDN博客Android Framwork源码-PMS随记_暮冬一十四的博客-CSDN博客AMS(ActivityManagerService)在SystemServer的进程中,是SystemServer中的一个对象;作用:管理activity的生命周期 启动activity 与PMS进行原创 2022-01-23 16:49:45 · 645 阅读 · 0 评论 -
Android Zygote
init进程由pid为0的Linux内核进程启动 启动系统关键进程: 执行init.rc脚本,执行脚本中一行一行的Linux命令来启动进程 守护系统关键进程:如蓝牙、铃声、接打电话、安装应用等进程名结尾带“d”的系统进程 当守护的进程被杀死时,重启被杀死的进程 当守护的进程无法被重启时,重启手机:如ZygoteZygote由init进程执行zygote.rc脚本启动的 最开始启动的时候名字并不是叫Zygote,而是app_process 在app_main.cpp中当解析到命令中有原创 2022-01-23 14:29:54 · 1155 阅读 · 0 评论 -
Android Binder
为什么要用Binder?Android系统内核是Linux内核 Linux内核进程通信有:管道、内存共享、Socket、File; 对比:管道 效率低;两次拷贝; 数据从应用A拷贝到内核的管道中,管道再拷贝到应用B; 安全 1v1 内存共享 效率最高;无需拷贝,A、B、C...共享一块内存; 不安全 N v N Socket 效率最低;两次拷贝;用户和CPU内核状态切换; 安全 C/S模型 File 文原创 2022-01-21 23:23:54 · 1044 阅读 · 0 评论 -
Android Handler
为什么要有handler?主要目的是要解决线程切换问题,handler里的Message机制解决了线程间通信原创 2022-01-21 16:47:15 · 626 阅读 · 0 评论 -
Android Framework源码-PMS
1、PMS(PackageManagerService):作用:手机开机时启动PMS进程,会扫描所有系统app和用户安装的app中的AndroidMnifest.xml;所以开机很慢 使用工具类PackageParse解析AndroidMnifest 解析出对应App中的四大组件标签,放入各自的List中:activites、services、revicers、providers,这四个ArrayList是在package缓存中,每个APP对应一个package;2、AMS(ActivityM原创 2022-01-19 16:11:06 · 666 阅读 · 0 评论