- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 Android之WMS篇(六)壁纸窗口的添加和移除过程
对于WMS来说壁纸他也是一个窗口,它也有WindowToken和WindowState,不过壁纸的WindowToken是WallpaperWindowToken.切换壁纸的场景:(1)开机的时候由SystemServer设置壁纸07-28 21:05:04.311 565 565 I Gary : java.lang.Exception07-28 21:05:04.311 565 565 I Gary : at com.android.server.wallpaper
2024-07-28 23:31:16
496
原创 Android之WMS篇(五)窗口绘制的过程
WindowSurfaceController才是用来绘制的的SurfaceControl.前边的博客中讲过在addChild的过程中Window会创建对应的SurfaceControll这些SurfaceControl都是CONTAINER类型,只有这里的WindowSurfaceController它是BLAST用于绘制的。在上篇博客中提到WMS的addWindow方法中将Window对应的WindowToken和WindowState挂载到窗口层级树上,它们只是内存中的对象并没有做窗口绘制的动作。
2024-07-22 21:50:30
1454
1
原创 Android之WMS篇(四) App端窗口添加和移除过程
其中App进程中调用WindowManager的addView方法后经过Session跨进程调用后到WMS中将需要添加的Window的WindowToken和WindowState挂载到窗口层级树中对应的层级上.我们添加的是一个系统级别的窗口,Window的token=null,需要new 一个WindowToken,在WindowToken build的过程会根据。到此,Window对应的WindowToken和WindowState已经成功的挂载到窗口层级树对应的层级上。
2024-07-17 22:29:18
1060
原创 Android之WMS篇(三)窗口层级结构树挂载Child
RootWindowContainer中的setWindowManager方法执行完成整个窗口层级树只是大体结构完成,我们平时看到的Activity,StatusBar,NavigationBar及应用中执行WindoManager.addView方法过程的addWidow都还没有添加到窗口层级树中setWindowManager方法执行完成后App端在运行过程中add的Window具体有以下几个:Task,ActivityRecord,WindowToken,WindowState等等1.RootTa
2024-07-16 22:43:14
1010
原创 Android之WMS篇(二)窗口层级结构树构建
每个Feature都会有一个nName,mId和mLayer,mLayer是个boolean的数组,在Featuer build之前都会设置通过mLayer设置为true标记出该Feature可以涉及到layer。遍历5个Feature,并通过创建Feature时设置的每个Feature可以管理的层级,最后构成了下图的PendingArea树。使用Feature的原因是每个Feature都是代表一种特定的功能,这样便于对不同功能的窗口进行管理。
2024-07-15 22:15:00
889
原创 Android之WMS篇(一)窗口层级结构树
在Android系统中,TopBar,NavigationBar属于SystemUI应用,HomeActivity属于Launcher应用,这些不同应用的Window是怎么样正确的显示和管理的,这里就需要引入窗口层级树这个概念。这里打印了一堆看不懂的东西,其实他就是Android模拟器启动后的窗口层级结构,他显示出来就是下图。2.dumpsys 命令转化成窗口层级树。
2024-07-15 22:14:43
636
原创 Android Studio导入系统源码
1、pull source code,全部编译完成2、build/envsetup.sh3、“lunch”,并选择要编译的项目4、编译idegen:mmm development/tools/idegen/5、development/tools/idegen/idegen.sh执行成功之后会在根目录下生成android.iml、android.ipr6、导入“android.ipr”,这里需要等一会可以在导入android.ipr之前修改android.iml,我这里未作任何直接导入,后边在
2022-05-25 22:14:56
684
2
原创 Android多指控制B协议
此篇文章基于Android Q源码进行剖析,分析Android启动过程的Zygote进程。一、概述Zygote进程是由init进程通过解析init.zygote.rc文件创建的,zygote对应的可执行程序app_process,所对应的源文件是App_main.cpp,进程名为zygoteservice zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class main
2022-05-25 12:32:04
1118
原创 getevent命令解析
1.getevent命令使用一般都是通过Help来查询命令的使用方法,getevent命令也不例外130|generic_x86:/ $ getevent -hUsage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device] -t: show time stamps -n: don't print newlines -s: pr
2022-05-24 22:21:12
5105
原创 Centos下安装Anaconda
Anaconda:是一个开源的Python发行版,其包含了conda,Python等180多个科学包及其依赖项。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了python和相关的配套工具Centos下安装Anaconda步骤: 1、下载Anaconda: 下载地址:https://mirrors.tuna.tsinghua.edu...
2018-07-31 10:41:28
5960
原创 Centos7.0.x防火墙基础
Centos7.0.x他的防火墙默认使用firewall关于防火墙的简单使用 1、直接使用自带防火墙firewall 1)启动防火墙: 2)关闭防火墙: 3)开启端口: 其中参数含义: –zone:作用域 –add-port=80/tcp:添加端口号,格式为:端口号/通讯协议 –permanent:永久生效,没有此参数重启失效 4)重启防火墙: 5)常用命令...
2018-07-27 16:18:21
612
原创 Centos7网络重启失败
Centos修改了/etc/sysconfig/network-scripts/ifcfg-enss33文件后,重启网络会失败 重启网络命令:systemctl restart network.service 或者/etc/init.d/network restart 出现如下错误: 根据提示查看网卡提示信息: 查看日志文件: cat /var/log/messages | grep...
2018-07-27 16:02:46
8499
5
原创 Linux虚拟机安装
博主这里用的虚拟机是VMwareWorkstation12中文版的,Linux是CentOS-6.5 安装步骤: Step1: 点击创建虚拟机: Step2: 选择配置类型,有两种配置类型:典型和自定义,一般选择典型就可以了 选好配置类型点击“下一步” Step3: 选择安装镜像文件 点击浏览选择文件安装文件存放位置 ...
2018-06-13 21:30:38
378
原创 Vim编辑器python自动补全
step 1: 检查~用户目录下是否存在.vim文件夹和.vimrc文件 如果不存在,创建.vim文件夹和.vimrc文件 命令如下: 创建.vim文件夹 mkdir -p .vim 创建.vimrc文件 touch .vimrcstep 2: 下载Pydiction插件,不需要安装,所以不存在任何依赖问题。 ...
2018-05-18 09:41:10
1765
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人