Android 11手势的设计与实现
Android R虚拟按键的设计与实现一文中我们详细的讲解了android操作系统中的虚拟按键实现,所有逻辑都是在SystemUi中,然后通过事件注入的方式来实现最近任务、返回、HOME等按键。
这篇文章我们详细来分析android操作系统中的手势是如何实现返回、MENU、HOME按键的。为了用户交互的动画效果手势中的HOME和MENU不再是利用注入按键来实现,而是直接放在Lanucher3中实现,返回桌面手势和启动最近任务手势出现后,会在Lanucher中直接启动对应的最近任务界面,从而使得手势交互更加流畅可以取消。返回键还是沿用了虚拟按键的原理,通过注入KEYCODE_BACK来实现,只不过时操作方式不同而已。
总结:手势的设计并不需要判断用户是否按下后向上滑动或者左右滑动,而是当我们按下处于这块区域时,此处的窗口就得到了事件从而跟随手指改变,并根据最后抬手的状态做出最终的处理。

我们知道手势是在桌面Lanucher启动后才会生效的。因此我们需要先分析SystemUI和Lanucher是如何启动的,这样我们才能知道手势是如何初始化的。
android手机开机后我们都知道先进入的就是锁屏界面,因此此时SystemUI已经启动,我们看一下SystemUi在系统中的配置,在SystemUi的应用配置文件中frameworks\base\packages\SystemUI\AndroidManifest.xml中是这样定义的。
<application
android:name=".SystemUIApplication"
android:persistent="true"
android:allowClearUserData="false"
android:allowBackup="false"
android:hardwareAccelerated="true"
android:label="@string/app_label"
android:icon="@drawable/icon"
android:process="com.android.systemui"
android:supportsRtl="true"


1374

被折叠的 条评论
为什么被折叠?



