Gary1_Liu
码龄9年
求更新 关注
提问 私信
  • 博客:59,850
    59,850
    总访问量
  • 14
    原创
  • 75
    粉丝
  • 51
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
加入CSDN时间: 2017-04-24

个人简介:Change Your Habits,Change Your Life!

博客简介:

Gary1_Liu的博客

查看详细资料
个人成就
  • 获得119次点赞
  • 内容获得9次评论
  • 获得173次收藏
  • 代码片获得125次分享
  • 博客总排名2,136,360名
创作历程
  • 6篇
    2024年
  • 3篇
    2022年
  • 5篇
    2018年
成就勋章
TA的专栏
  • Android之WMS篇
    6篇
  • Android studio
    1篇

TA关注的专栏 1

TA关注的收藏夹 0

TA关注的社区 0

TA参与的活动 0

创作活动更多

AtomGit「码动四季·开源同行」秋季征稿活动

秋季征稿主题:开源成果经验分享 成果不止一种形态,我们为你准备了六大赛道,总有一款适合你: 开源项目成果复盘 把项目一年/一季的成长摊开来看:里程碑复盘、Star 与用户增长复盘、版本迭代复盘、从 0 到 1 的发布复盘。 🖊️ 示范选题: ●开源项目从 0 到 1000 Star,我做对了什么 ●开源一周年,我交出的成绩单 这类文章不只是一次经验分享,也是一张项目名片。欢迎将项目托管到 AtomGit 并申请成为 G-Star 项目,通过后可获得平台流量推荐、项目宣传等权益。(G-Star:AtomGit 最具影响力开源项目) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f90c61528ad410d8d66f9d0e3707a5a.png) 咨询 G-Star 项目申请 2️⃣ 技术经验体系化沉淀 踩坑合集、最佳实践总结、工具链实战、CI/CD 流水线搭建、代码重构与架构演进。 🖊️ 示范选题: ●提了 50 个 PR 后,我总结的开源协作避坑清单 ●一次重大重构复盘:把单体拆成可维护的模块 3️⃣ AI 赋能开源的实战成果 AI 编程助手实战测评、基于开源模型的微调与应用开发、AI 辅助研发提效流水线。 🖊️ 示范选题: ●我用 AI 编程助手把提 PR 效率翻了 3 倍 ●基于开源大模型搭了个 XX 工具(附完整教程) 4️⃣ 开源共建笔记|文档、社区与布道 开源文档写作与翻译、issue 互助经验、组织 meetup、用开源项目做教学与分享。 🖊️ 示范选题: ●一个优秀开源项目,文档应该怎么写 ●我用开源项目做了个线上 Workshop ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/23e83ceebc594c379f7fc6aa8dcfa40c.png) 扫码加入码动四季投稿交流群,和更多伙伴一起交流技术!

39人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Android之WMS篇(四) App端窗口添加和移除过程

其中App进程中调用WindowManager的addView方法后经过Session跨进程调用后到WMS中将需要添加的Window的WindowToken和WindowState挂载到窗口层级树中对应的层级上.我们添加的是一个系统级别的窗口,Window的token=null,需要new 一个WindowToken,在WindowToken build的过程会根据。到此,Window对应的WindowToken和WindowState已经成功的挂载到窗口层级树对应的层级上。
原创
博文更新于 2024.10.17 ·
1328 阅读 ·
8 点赞 ·
0 评论 ·
9 收藏

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 ·
674 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

Android之WMS篇(五)窗口绘制的过程

WindowSurfaceController才是用来绘制的的SurfaceControl.前边的博客中讲过在addChild的过程中Window会创建对应的SurfaceControll这些SurfaceControl都是CONTAINER类型,只有这里的WindowSurfaceController它是BLAST用于绘制的。在上篇博客中提到WMS的addWindow方法中将Window对应的WindowToken和WindowState挂载到窗口层级树上,它们只是内存中的对象并没有做窗口绘制的动作。
原创
博文更新于 2024.07.22 ·
1750 阅读 ·
16 点赞 ·
1 评论 ·
22 收藏

Android之WMS篇(三)窗口层级结构树挂载Child

RootWindowContainer中的setWindowManager方法执行完成整个窗口层级树只是大体结构完成,我们平时看到的Activity,StatusBar,NavigationBar及应用中执行WindoManager.addView方法过程的addWidow都还没有添加到窗口层级树中setWindowManager方法执行完成后App端在运行过程中add的Window具体有以下几个:Task,ActivityRecord,WindowToken,WindowState等等1.RootTa
原创
博文更新于 2024.07.16 ·
1316 阅读 ·
28 点赞 ·
0 评论 ·
13 收藏

Android之WMS篇(二)窗口层级结构树构建

每个Feature都会有一个nName,mId和mLayer,mLayer是个boolean的数组,在Featuer build之前都会设置通过mLayer设置为true标记出该Feature可以涉及到layer。遍历5个Feature,并通过创建Feature时设置的每个Feature可以管理的层级,最后构成了下图的PendingArea树。使用Feature的原因是每个Feature都是代表一种特定的功能,这样便于对不同功能的窗口进行管理。
原创
博文更新于 2024.07.15 ·
1192 阅读 ·
26 点赞 ·
0 评论 ·
11 收藏

Android之WMS篇(一)窗口层级结构树

在Android系统中,TopBar,NavigationBar属于SystemUI应用,HomeActivity属于Launcher应用,这些不同应用的Window是怎么样正确的显示和管理的,这里就需要引入窗口层级树这个概念。这里打印了一堆看不懂的东西,其实他就是Android模拟器启动后的窗口层级结构,他显示出来就是下图。2.dumpsys 命令转化成窗口层级树。
原创
博文更新于 2024.07.15 ·
1026 阅读 ·
10 点赞 ·
0 评论 ·
6 收藏

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.12.29 ·
5642 阅读 ·
7 点赞 ·
0 评论 ·
15 收藏

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 ·
797 阅读 ·
0 点赞 ·
2 评论 ·
5 收藏

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 ·
1348 阅读 ·
1 点赞 ·
0 评论 ·
7 收藏

Centos下安装Anaconda

Anaconda:是一个开源的Python发行版,其包含了conda,Python等180多个科学包及其依赖项。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了python和相关的配套工具Centos下安装Anaconda步骤: 1、下载Anaconda: 下载地址:https://mirrors.tuna.tsinghua.edu...
原创
博文更新于 2018.08.04 ·
6065 阅读 ·
2 点赞 ·
0 评论 ·
10 收藏

Centos7.0.x防火墙基础

Centos7.0.x他的防火墙默认使用firewall关于防火墙的简单使用 1、直接使用自带防火墙firewall 1)启动防火墙: 2)关闭防火墙: 3)开启端口: 其中参数含义: –zone:作用域 –add-port=80/tcp:添加端口号,格式为:端口号/通讯协议 –permanent:永久生效,没有此参数重启失效 4)重启防火墙: 5)常用命令...
原创
博文更新于 2018.07.27 ·
685 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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 ·
8643 阅读 ·
7 点赞 ·
5 评论 ·
27 收藏

Linux虚拟机安装

博主这里用的虚拟机是VMwareWorkstation12中文版的,Linux是CentOS-6.5 安装步骤: Step1: 点击创建虚拟机: Step2: 选择配置类型,有两种配置类型:典型和自定义,一般选择典型就可以了 选好配置类型点击“下一步” Step3: 选择安装镜像文件 点击浏览选择文件安装文件存放位置 ...
原创
博文更新于 2018.06.13 ·
430 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Vim编辑器python自动补全

step 1: 检查~用户目录下是否存在.vim文件夹和.vimrc文件 如果不存在,创建.vim文件夹和.vimrc文件 命令如下: 创建.vim文件夹 mkdir -p .vim 创建.vimrc文件 touch .vimrcstep 2: 下载Pydiction插件,不需要安装,所以不存在任何依赖问题。 ...
原创
博文更新于 2018.05.18 ·
1825 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏