注入是事件处理流程如:
1 .View 接受到上报的Touch事件,被分发到相应的View的OnTouch事件中,
2.我可以通过覆盖这个方法,向InputManager中注入KeyCode事件,如:back,home等
3. .back ,home 等注入事件,然后分别通过Activity.java,和PhoneWindowsManager.java的处理Event实现功能
在3.0中,我可以通过
1 .framework/base/SystemUI/src/com/android/systemui/policy/KeyButtonView.java
可以看到注入事件使用IwindowManager接口中injectInputEventNoWait(KeyEvent event);
这个接口实现在WindowManagerService.java中
2 .然后WindowManagerService中将事件上报给相应的当前系统,被应用或者系统处理
====================================================================
下面是3.0中Home键的处理过程
1 .framework/base/SystemUI/src/com/android/systemui/policy/KeyButtonView.java 中,通过
injectInputEventNoWait ,输入Home键的keyCode(在Manifest中使用这个view中添加Keycode属性)
2 .Home事件在PhoneWindowManager中interceptKeyBeforeDispatching方法中被处理
3 .调用launchHomeFromHotKey();方法回到Launch主页面
===================================================================
android中,有4种注入输入事件的方法分别是:
1.boolean injectKeyEvent(in KeyEvent ev,boolean sync); //注入key事件
2.boolean injectPointerEvent(in MotionEvent ev,boolean sync); //注入mouse事件
3.boolean injectTrackballEvent(in MotionEvent ev,boolean sync); //注入轨迹球事件
4.boolean injectInputEventNoWait(in InputEvent ev); //注入输入事件
这个四个方法都是通过IWindowManager.aidl 方式提供给别的进程调用的。
可利用这个接口实现,windows鼠标,keyboard等事件通过socket传送给android,android的server实现注入事件,进而模拟windows的鼠标的事件,从而达到window鼠标控制android的系统。
分享到:
相关推荐
APT实现View注入(模仿ButterKnife) 去除了ButterKnife中繁琐的编译校验 代码简单,方便大家学习APT跟JavaPoet 事件注入请关注后面的博客
Contributer,使用Dagger Android注入注入各种类型,如View或导体控制器.zip
此类库只实现了View的注解模块,实现布局加载注入,view注入,view监听事件注入; 一、实现功能 1.布局注入 2.View注入 3.View监听事件注入 二、实现思路 这三种实现的原理都是通过思想来实现; 功能1和2通过反射...
butterknife-view注入工具.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
这是一个完整项目,下载就可以运行,代码来自于xUtils的View模块,经过瘦身,仅仅保留了View注入这个功能。 代码简短,很容易看懂,可以直接用于项目,也可以用于学习。
2、注入到svchost进程 3、服务打开计算器(涉及到session,知识点) 4、线程输出时间debugview中查看 程序安装完服务,服务启动有以下方式: 1、重启电脑,使用电脑自带svhost服务组自启动服务; 2、手动执行脚本...
[Manning Publications] 依赖注入 实战 (英文版) [Manning Publications] Dependency Injection (E-Book) ☆ 图书概要:☆ Dependency Injection is an in-depth guide to the current best practices for using ...
一个强大的selector注入器,它可以让view自动产生selector状态,免去了你写selector的麻烦。
Android_ZTestAnnotation 在Android中使用注解的练习,Demo中有输入验证,View注入和事件绑定的。比较简单的实现,但还是比较实用。
ButterKnife的demo实现,注解清晰,实现控件初始化,事件注入
它可以给view注入selector状态,免去了大量的selecor文件。 可以根据shape来着色产生selector状态 可根据普通情况下的颜色(normalColor)来自动生成按压态的颜色 支持normal、pressed、checked、disabled状态的...
Hilt是Google推出的一种依赖注入框架,它能够大大简化Android应用程序的开发过程。使用Hilt可以提供以下优势: Hilt 通过为项目中的每个 ...Hilt支持Android中的多种依赖注入场景,包括Activity、Fragment、View等。
Android-SplashView, 为android的任何 Activity 注入 SplashView splashView倒计时关闭View,主动跳过Dissmiss视图本地没有缓存时,显示默认图片或者不显示 SplashView
学习ButterKnife的好demo,思路清晰,注解全面,欢迎下载品尝
遗传学遗传学允许使用属性来描述如何将资源,视图和事件注入对象。 根据提供的资源ID,它可以注入适当的Android View或Android资源。 或者,它可以自动将事件处理程序附加到View事件。 在字段和属性上使用[Splice]而...
1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率 2.运行时不会影响APP效率,使用配置方便(采用的是编译时注解) 3.代码清晰,可读性强 可以写在BaseActivity、FragmentActivity中。 最近也在学习...
我们提到了依赖注入功能(Dependency Injection),ASP.NET 5正式将依赖注入进行了全功能的实现,以便开发人员能够开发更具弹性的组件程序,MVC6也利用了依赖注入的功能重新对Controller和View的服务注入功能进行了...
:fishing_pole: 生命周期挂钩 :fishing_pole:关于LifecycleHooks允许将自定义代码注入到视图和视图控制器中,以响应生命周期事件,例如, viewController.on(.viewDidAppear) { animated inprint("View did appear",...
您也可以将html和文本注入到webview或任何扩展的webview类中。 该库的启发,并正在努力感谢 。 使用Codeview库的应用。 用法 代码视图 下载/安装Gradle repositories { jcenter() } compile ' Codeview-1.0.0...
Xamarin.Android的简单注入工具,受Cheeseknife和Butterknife的启发。 安装 安装 用法 [ Activity ( Label = " Sample " , MainLauncher = true , Icon = " @mipmap/icon " )] public class MainActivity : ...