- 博客(41)
- 资源 (2)
- 收藏
- 关注

原创 01. SystemUI 启动流程分析(AndroidO)
SystemUI 启动流程分析(AndroidO)文章目录SystemUI 启动流程分析(AndroidO)1 SystemUI 概述2 SystemUI 的启动2.1 启动时机2.2 SystemUIService 启动3 时序图1 SystemUI 概述“SystemUI 是 Android 为用户提供系统级别的信息显示与交互的一套UI组件”。SystemUI 源码位于 frameworks\base\packages\SystemUI 目录下,它以独立的 APK 形式运行在于系统中,像 Andr
2021-04-28 10:55:22
395
1

原创 02. SystemUI 系统状态栏 StatusBar 分析(AndroidO)
系统状态栏 StatusBar 分析(AndroidO)文章目录系统状态栏 StatusBar 分析(AndroidO)1 概述2 状态栏分析2.1 状态栏启动2.2 状态栏窗口创建2.2.1 加载状态栏控件树2.2.2 创建状态栏窗口2.3 状态栏控件树分析2.3.1 super_status_bar.xmlstatus_bar.xmlsystem_icons.xml2.3.2 status_bar_expanded.xmlqs_panel.xml2.4 状态栏下拉2.4.1 下拉状态2.4.2 下拉事
2021-04-28 10:45:48
692
原创 04. Notification 通知栏分析(AndroidO)
Notification 通知栏分析(AndroidO)1 概述通知栏是状态栏中比较常见的功能,通知栏主要用来表示一个事件,比如一条消息、一个后台任务执行进度等。当有通知到来时,在状态栏顶部显示相关信息图标,状态栏下拉后,可以看到通知栏相关信息,并且可以对通知栏中的消息项进行一些处理。2 通知栏分析2.1 通知的发送当需要向系统发送一条通知时,可以使用 NotificationManager 向通知栏添加一条通知,通知的实例创建使用的是 Notification,它用来描述了通知的所有详细信息。在
2023-02-08 01:51:40
180
原创 Android ViewPager + fragment 实现懒加载及原理解析
Android ViewPager + fragment 实现懒加载及原理解析
2023-02-08 01:28:27
281
原创 系统选择框ResolverActivity修改记录 (Android10)
系统选择框ResolverActivity修改记录 (Android10)
2023-01-30 10:01:08
348
原创 Framework 窗口添加流程分析2之 addWindow 流程
Android framework 窗口添加流程分析2之 addWindow 流程
2022-10-17 10:10:16
239
原创 Framework 窗口添加流程分析1之 ViewRootImpl 创建
Android framework WMS 窗口添加流程分析:ViewRootImpl的创建
2022-10-17 10:09:25
189
原创 framework 窗口动画缩放修改(Android 10)
framework 窗口动画缩放修改(Android 10)窗口缩放方法// frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.javafinal WindowHashMap mWindowMap = new WindowHashMap();public void performAnimationByHome(boolean enterScale) { Log.i("scale_w
2022-04-22 16:48:15
2934
原创 WallpaperToken 窗口动画分析(Android 10)
WallpaperToken 窗口动画分析// frameworks/base/services/core/java/com/android/server/wm/AppTransitionController.javaprivate void handleNonAppWindowsInTransition(int transit, int flags) { if (transit == TRANSIT_KEYGUARD_GOING_AWAY) { if ((flags &
2022-04-20 14:40:44
2435
2
原创 Android 集成 NanoHTTPD 服务器
Android 集成 NanoHTTPD 服务器https://github.com/NanoHttpdActivity.javaprivate void initRegister() { IntentFilter filters = new IntentFilter(); filters.addAction(ConnectivityManager.CONNECTIVITY_ACTION); registerReceiver(networkReceiver, filters);
2022-03-25 10:37:18
4037
原创 二维码生成
/*zxing*/implementation 'com.google.zxing:core:3.4.0'package com.kgzn.smartalbum.net.qrcode;import android.graphics.Bitmap;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;impo
2022-03-25 10:27:27
101
原创 Android 系统自由窗口相关修改(AndroidQ)
自由窗口相关修改 AndroidQ1 打开自由窗口相关配置// frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.javapublic void retrieveSettings(ContentResolver resolver) { // wugm: enable free form setting Settings.Global.putInt(resolver, D
2022-03-12 16:18:32
4367
6
原创 Git 命令记录
Git 命令记录基本操作# 把当前目录变成Git可以管理的仓库git init# 把文件添加到仓库git add .readme.txt# 把文件提交到仓库git commit -m "wrote a readme file"# 提交到仓库git push# 从仓库拉取git pull# 查看修改哪些文件修改git status .# 查看文件内容差异git diff .git log# 查看当前目录从最近到最远的提交历史git log# 查看提交历史,单行显示记录
2022-03-12 15:55:39
220
原创 Android framework 修改 selinux 权限 (Android 11)
Android framework 修改 selinux 权限 (Android 11)1 如何判断当前 selinux 权限# Enforcing:开启、Permissive:关闭$ getenforce2 临时关闭 selinux 权限# 关闭$ setenforce 0# 打开$ setenforce 13 永久关闭 selinux 权限//system/core/init/selinux.cppvoid SelinuxInitialize() { LOG(INFO)
2022-03-11 18:04:26
735
原创 Android系统生成jks签名
Android系统生成jks签名cd build/target/product/security# 生成 platform.pemopenssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem# 生成platform.p12文件,并设置别名(3568)和密码(ktc123)openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey pl
2022-03-11 18:02:50
1778
原创 Broadcast 分析之 registerReceiver
Broadcast 分析之 registerReceiver()注册广播接收者// frameworks/base/core/java/android/content/Context.javapublic abstract Intent registerReceiver(@Nullable BroadcastReceiver receiver,IntentFilter filter);最后会调用到 ContextImpl// frameworks/base/core/java/android/a
2022-03-11 18:00:40
317
原创 Broadcast 分析之 sendBroadcast
Broadcast 分析之 sendBroadcast// frameworks/base/core/java/android/content/ContextWrapper.java@Overridepublic void sendBroadcast(Intent intent) { mBase.sendBroadcast(intent);}// frameworks/base/core/java/android/content/Context.javapublic abstract
2022-03-11 17:58:59
213
原创 Android 系统多窗口模式实现
Android 系统多窗口模式实现参考链接https://blog.youkuaiyun.com/qq_34211365/article/details/121465211https://www.cnblogs.com/wzjhoutai/p/6873790.htmlhttps://blog.youkuaiyun.com/m0_37602827/category_10620827.htmlhttps://www.jianshu.com/p/cdbbeb105a661 窗口概念Android 系统中的窗体是屏幕上的一块
2022-03-11 17:58:03
1099
原创 Framework基于WMS添加独立窗口
Framework基于WMS添加独立窗口参考链接https://www.cnblogs.com/wzjhoutai/p/6873790.htmlhttps://www.cnblogs.com/zhaojietec/p/4975840.html添加三个文件SampleWindow.java 主程序源码。Android.mk 编译脚本。sw.sh 启动器。//frameworks/base/services/core/java/com/android/server/wm/samplewindow
2022-03-11 17:57:18
690
原创 Framework 窗口添加流程分析2之 addWindow 流程
Framework 窗口添加流程分析2之 addWindow 流程以下是 WindowManagerService.addWindow() 方法的一些大致流程:添加窗口的权限检查Display、DisplayContent 的检查及创建处理一些要窗口类型的判断及 WindowToken 的判断创建创建 WindowState ,传入 wms、IWindow、WindowToken、parentWindow、LayoutParams等参数在 DisplayPolicy 处理窗口的一些策略,如焦点
2022-03-11 17:56:22
439
原创 Framework 窗口添加流程分析1之 ViewRootImpl 创建
Framework 窗口添加流程分析1之 ViewRootImpl 创建ViewRootImpl 与窗口添加相关流程ActivityThread.handleResumeActivity()// 第一部分析: 执行resumed流程,回调 Activity.onResume()-> ActivityThread.performResumeActivity() -> Activity.performResume() -> Activity.dispatchActivity
2022-03-11 17:55:37
195
原创 (1) Android framework 关闭 Selinux 权限
01. Android framework 修改 selinux 权限 (Android 11)1 如何判断当前 selinux 权限# Enforcing:开启、Permissive:关闭$ getenforce2 临时关闭 selinux 权限# 关闭$ setenforce 0# 打开$ setenforce 13 永久关闭 selinux 权限//system/core/init/selinux.cppvoid SelinuxInitialize() { LOG(I
2022-03-08 17:45:50
463
原创 Android 系统多窗口模式实现
Android 系统多窗口模式实现参考链接https://blog.youkuaiyun.com/qq_34211365/article/details/121465211https://www.cnblogs.com/wzjhoutai/p/6873790.htmlhttps://blog.youkuaiyun.com/m0_37602827/category_10620827.htmlhttps://www.jianshu.com/p/cdbbeb105a661 窗口概念Android 系统中的窗体是屏幕上的一块
2022-03-03 08:55:09
1390
原创 Android 源码下载、编译填坑
Android 源码编译填坑(Ubuntu20.04.1)本次源码下载编译使用了 Ubuntu20.04.1 版本的虚拟机,可自行安装。1 源码下载源码下载阶段十分漫长,需要耐心等待。1.1 git、repo配置sudo apt-get install gitgit config --global user.name "your name"git config --global user.email "XXX@XXX.com"git clone https://aosp.tuna.tsin
2021-04-30 17:00:53
759
2
原创 05. 系统截屏分析(AndroidO)
系统截屏分析(AndroidO)1 概述848方案系统自带的截屏功能主要两种,一种是截取全屏,一种是区域截屏。两种触发方式都是在 PhoneWindowManager 监听按键使用 Handler 来分发消息进行处理。截屏功能的具体实现主要在 SystemUI,通过接收消息调用截屏服务 TakeScreenshotService 来对两种方式进行,具体的功能全部逻辑在 GlobalScreenshot 这个类中,主要做了几件事:加载截屏布局页面初始化相关功能的handler、listener截
2021-04-28 20:13:41
525
2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人