Framework
文章平均质量分 84
努力做一个闪闪发光的人
Android系统开发攻城狮
展开
-
Android12上新增jar遇到的问题总结
2的结果就是不会有单独的jar生成到out下的system/framework下,只会有中间编译产物的jar生成,但由于这个也满足我的需求,就用这个方式了。2. 在framework/base/service下创建目录,将我的jar移动到这下面,参考其他bp的写法,如下所示,就可以编译成功了。1. 将我这个jar目录移动到framework/base/service下,也是同样的报错,且我未修改我的任何代码。最近在vendor目录下新增jar遇到一个问题。原创 2024-09-04 21:36:56 · 842 阅读 · 0 评论 -
Android 14 Power键亮灭屏流程
查找代码会发现InputManagerCallback实现了WindowManagerCallbacks,然后就到了InputManagerCallback这里。mWindowManagerCallbacks定义如上,我们可以看到WindowManagerCallbacks只是一个接口,没有具体的实现。当用户点击物理按键Power键时,input模块会分发此事件。然后就走到了PhoneWindowManager中。原创 2024-08-07 22:58:15 · 924 阅读 · 0 评论 -
如何在Android Framework源码中增加jni方法
我们都知道,在Android Framework源码中,有很多这种类型的方法,方法前缀有"public static native",这种方法就是native方法,会调用到jni中去。那如何在Android Framework源码中新增一个jni方法呢?主要需要以下几个步骤,以android源码为例PhoneWindowManager.java, 增加两个jni方法import xxx;.........原创 2023-12-21 17:09:27 · 1399 阅读 · 0 评论 -
Android 12 S WindowManager Transition动画介绍
如果活动在同一任务中启动新活动,则现有活动的活动记录属于打开的应用程序,同时,新活动的另一个活动记录属于关闭的应用程序。//有些情况下,我们打开/关闭一个新的task/activity,但在现实中,只有一个半透明的活动在现有activities的顶部打开/关闭。//在以下情况下允许应用状态更新和动画:activity 正在转换可见性状态,或者activity 在我们有机会播放过渡动画之前被标记为隐藏并且正在退出,或者这是一个打开的应用程序并且窗口正在被替换(例如,自由格式窗口到普通窗口)。原创 2023-09-22 14:21:38 · 1676 阅读 · 0 评论 -
Android14 WMS-窗口绘制之relayoutWindow流程(二)-Server端
本文接着如下文章往下讲然后就到了Server端WMS的核心实现方法relayoutWindow里。原创 2024-06-06 13:05:15 · 1554 阅读 · 1 评论 -
Android14 WMS-窗口绘制之relayoutWindow流程(一)-Client端
经过上述两个流程后,窗口的信息都已经传入了WMS端。原创 2024-06-04 18:16:49 · 1125 阅读 · 0 评论 -
Android14 WMS-Power键短按流程
WMS中事件分发从。原创 2024-06-04 18:15:00 · 896 阅读 · 0 评论 -
Android14 WMS-窗口添加流程(二)-Server端
Android14 WMS-窗口添加流程(一)-Client端-CSDN博客本文接着上文"Android14 WMS-窗口添加流程(一)-Client端"往下讲。也就是WindowManagerService#addWindow流程。目录一. WindowManagerService#addWindow标志1:mPolicy.checkAddPermission标志2:getDisplayContentOrCreate标志3: mWindowMap二:窗口类型检查三:新建WindowToken标志1 Win原创 2024-06-03 17:57:45 · 1170 阅读 · 3 评论 -
Android14 WMS-IWindow介绍
IWindow是怎么赋值并一步步传入WMS端的呢,由下面代码可以看出,它是在ViewRootImpl中进行赋值的。,当窗口有一些改变时,WMS及时调用客户端接口,让客户端窗口立即更新。IWindow是很重要的,官方介绍是A。原创 2024-05-28 18:16:34 · 619 阅读 · 0 评论 -
Android14 WMS-窗口添加流程(一)-Client端
窗口布局在onCreate方法中通过setContentView(R.layout.xxx)加载,但窗口的显示并不是在wm_on_create_called中, 而是在wm_on_resume_called后,这个在后面会讲解到。原创 2024-05-28 15:10:24 · 1076 阅读 · 0 评论 -
Permission Denial: package=android does not belong to uid=2000
02-01 03:14:17.230 1685 2701 W ContextImpl: Calling a method in the system process without a qualified user: xxxxxxxxx02-01 03:14:17.231 1685 2701 W ActivityTaskManager: Permission Denial: package=android does not belong to uid=2000原创 2024-04-01 10:48:07 · 830 阅读 · 1 评论 -
Android S从桌面点击图标启动APP流程 (五)
系列文章Android 12的源码链接:一般更新activity的可见性log如下:确定next activity的可见性设置为可见状态free住屏幕开始设置为可见更新next的可见性确定prev的可见性设置前一个prev为不可见立即设置不可见将prev加入stopping队列。原创 2023-10-27 10:26:37 · 577 阅读 · 0 评论 -
Android S从桌面点击图标启动APP流程 (四)
系列文章本文重点讲解activity pause完成后通知Server端以及之后的操作。原创 2023-10-13 09:35:00 · 676 阅读 · 0 评论 -
Android S从桌面点击图标启动APP流程 (一)
Android 12的源码链接:Android 12 AOSPhttp://aospxref.com/android-12.0.0_r3/1. Launcher onClick点击桌面图标会进入Launcher应用的click方法中。往下走继而往下走继而会走入super的startActivitySafely最终走入BaseDraggingActivity的startActivitySafely然后会调用基类的frameworks/base/core/java/android/app/Activity.j原创 2023-10-12 15:17:15 · 865 阅读 · 0 评论 -
Android S从桌面点击图标启动APP流程 (三)
mAtmService.getLifecycleManager().scheduleTransaction(prev.app.getThread(),prev.appToken, PauseActivityItem.obtain(prev.finishing, userLeaving, prev.configChangeFlags, pauseImmediately));frameworks/base/services/core/java/com/android/server/wm/ClientLife原创 2023-10-13 09:31:00 · 271 阅读 · 0 评论 -
Android 12 S activity切换动画介绍
一个是startActivityLocked,另一个是resumeTopActivityInnerLocked,但这个resumeTopActivityInnerLocked方法在启动过程中会被调用两次,第一次调用时是在startActivityInner过程中调用的,此时前一个activity并未进入paused状态,会执行不下去,第二次则是前一个activity进入paused状态了,然后回掉completePausedLocked,继而调用了此方法,如上图。//如果新起的activity没有动画。原创 2023-10-09 11:42:36 · 596 阅读 · 0 评论 -
Android 12 S WindowInset解析
window content的一系列inset,可以理解为 一个Activity相对于手机屏幕需要空出的地方以腾纳给statusbar、Ime、Navigationbar等系统窗口,具体表现为该区域需要的上下左右的宽高,比如输入法窗口的区域就是一个Inset)WindowInsets包括三类:SystemWindowInsets、StableInsets、WIndowDecorInsets。在源码中,Insets 对象拥有 4 个 int 值,用于描述矩形四个边的偏移。返回以像素为单位的稳定insets。原创 2023-09-21 09:36:00 · 1014 阅读 · 4 评论 -
Android 12 S ActivityManager解读之从dumpsys activity activities看activity
处代表的是当前Activity的window mode./* starting */));代表当前activity是否可见。原创 2023-09-14 09:10:41 · 711 阅读 · 0 评论 -
Android 12 S WindowManager解读之从dumpsys window windows看window
();;();;();执行adb shell dumpsys window windows 如下:rootTaskId=1(根Taskid) mSession=Session{e98843e 2512:u0a10120} mClient=android.os.BinderProxy@64c3da9appop=NONEmcc?mcc?原创 2023-09-08 18:15:57 · 2971 阅读 · 0 评论 -
Android S从桌面点击图标启动APP流程
然后走到了Instrumentation中,Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序。然后走到了ActivityTaskManager中,通过AIDL获取到了ActivityTaskManagerService的实例。frameworks/base/core/java/android/app/Activity.java中的。然后在当前类中继续往下走,调用startActivityForResult。原创 2023-05-17 17:12:24 · 836 阅读 · 1 评论 -
一:WindowManagerService启动流程 - Android 12
执行到这里,表示system_server启动完成,WMS会调用其他组件的systemReady。最重要的是执行了PhoneWindowManager的init。原创 2023-05-16 16:07:45 · 652 阅读 · 0 评论 -
Android 12 S SystemServer启动过程中的服务分析
由此可见,WindowManagerService以及ActivityManagerService等的服务的进程号都是SystemServer,但是是跑在不同的线程上。原创 2023-05-04 16:40:36 · 163 阅读 · 0 评论