`
carywei
  • 浏览: 191950 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

View 注入事件

 
阅读更多

注入是事件处理流程如:

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的系统。

 

 

 

 

 

 

分享到:
评论

相关推荐

    利用monkey注入事件原理实现Android 事件注入

    本主题将深入探讨“利用monkey注入事件原理实现Android事件注入”的过程,以及如何结合反射和蓝牙技术来实现远程控制。 首先,Monkey是Android SDK自带的一个命令行工具,它可以向系统发送伪随机的用户事件流,如...

    Contributer,使用Dagger Android注入注入各种类型,如View或导体控制器.zip

    标题提到的是"Contributer"项目,它是一个使用Dagger Android库进行依赖注入的示例,特别强调了如何对不同类型的组件,如View或Conductor控制器进行注入。 【描述解析】 描述部分进一步确认了项目的核心内容,即它...

    View注入demo(模仿ButterKnife的APT方式)

    【标题】"View注入demo(模仿ButterKnife的APT方式)" 涉及的主要知识点是Android中的编程工具和注解处理技术,特别是APT(Annotation Processing Tool)和ButterKnife库的使用。APT允许开发者在编译时通过注解来生成...

    android View注入

    在Android开发中,View注入是一种优化传统`findViewById`方法的技术,它可以提高代码的可读性和可维护性。本文将深入探讨“android View注入”的概念、原理以及如何在实际项目中应用。 **一、View注入的概念** 传统...

    ViewInject:类似XUtils的View的注解模块,实现布局加载注入,view注入,view监听事件注入

    此类库只实现了View的注解模块,实现布局加载注入,view注入,view监听事件注入; 一、实现功能 1.布局注入 2.View注入 3.View监听事件注入 二、实现思路 这三种实现的原理都是通过思想来实现; 功能1和2通过反射...

    Android中自定义实现IoC(控件注入、布局注入、事件注入)

    布局注入可以简化XML布局的使用,减少在代码中对View的查找和设置。我们可以创建一个布局解析器,它会解析XML布局文件,自动将控件填充到对应的Activity或Fragment中。布局注入可以降低布局和代码的耦合度,提高代码...

    butterknife-view注入工具.zip

    总的来说,`butterknife-view注入工具.zip` 是一个很好的学习资源,它涵盖了 Android 开发中常用的视图绑定和事件处理技术,对于提升开发效率和代码质量有很大帮助。如果你正在寻找 Android 开发的最佳实践,或者对...

    ButterKnife 控件事件基本实现demo

    ButterKnife的核心功能包括View注入和事件注入: 1. **View注入**:传统方式中,我们需要在Activity或Fragment的onCreate()方法中找到对应的视图,并将它们赋值给成员变量。ButterKnife通过注解的方式,使得我们...

    WPF 在ViewModel中调用 View(界面的控件)

    通过依赖注入、命令、数据绑定、事件总线等机制,可以灵活地在ViewModel中调用View的功能,同时保持设计模式的优雅。在实际开发中,选择哪种方式取决于具体的需求和项目规模。理解并熟练运用这些技术,可以提升WPF...

    安卓按键模拟点击相关-android注入代码到驱动模拟系统点击事件demo.rar

    在Android中,这种机制主要由`View`类及其子类实现,它们通过`onTouchEvent()`方法捕获并处理触摸事件。 2. **注入代码** 注入代码是指在运行时动态修改或增强原有代码的功能,这通常需要对Android的系统服务有...

    View类变量的访问

    2. **事件驱动编程**:当`View`的变量发生变化时,`View`可以触发一个事件,其他类(如`Controller`)可以监听这个事件并在适当的时机响应。这种方式允许动态地响应`View`的变化,而不直接访问其内部状态。 3. **...

    android selector注入器

    `android selector注入器` 库的目标就是自动化这个过程,它能够自动为你的View生成相应的Selector,并根据View的状态动态应用这些样式。这样,开发者就可以避免编写大量的XML资源文件,减少重复工作,更专注于业务...

    C#MVC实现带参数的构造注入

    在.NET开发领域,C# MVC(Model-View-Controller)框架是构建Web应用程序的常用工具。它通过分离关注点,使代码更易于管理和测试。在实际项目中,我们经常需要在初始化控制器时传递依赖,这就是构造注入发挥作用的...

    ButterKnife依赖注入框架的简单用法

    ButterKnife是一款由Jake Wharton开发的Android绑定库,它极大地简化了在Android应用中进行视图注入的工作。依赖注入是一种设计模式,旨在减少代码之间的耦合,提高代码的可测试性和可维护性。在ButterKnife中,我们...

    PHP注入点常用关键字

    在网络安全领域,SQL注入是一种常见的攻击方式,通过将恶意代码插入到应用程序查询中,以获取未授权的数据访问权限或控制权。PHP作为一种广泛使用的服务器端脚本语言,常常成为SQL注入攻击的目标之一。本文将针对...

    Android 模仿ButterKnife实现视图注入的两个功能 源码

    本文将深入探讨如何模仿ButterKnife实现视图注入的两个核心功能:绑定视图(@BindView)和事件监听(@OnClick)。 首先,我们要理解ButterKnife的工作原理。ButterKnife通过注解处理器在编译时生成一个绑定了视图ID...

    ButterKnife事件初始化

    ButterKnife通过注解处理器(Annotation Processing Tool,APT)在编译时自动生成绑定代码,实现了视图注入和事件监听。开发者只需要在布局文件的控件上添加特定的注解,如`@BindView`,并在Activity或Fragment中...

    JSP注入1.txt

    根据提供的文件信息,我们可以推断出这是一篇关于JSP注入攻击的文章。下面将详细解析JSP注入的概念、原理以及示例中的攻击方法。 ### JSP注入简介 JSP(JavaServer Pages)是一种用于生成动态网页的技术。它允许在...

    命令注入讲解ppt.pptx

    命令注入讲解 命令注入是一种高危漏洞,指攻击者能够控制外部的参数达到随意执行系统命令的结果。命令执行漏洞不仅存在于 B/S 架构中,也存在于 C/S 架构中。本次讨论的都是 Web 中的命令执行漏洞。 命令注入攻击...

    Android注入框架Demo你所知道的一切

    不过,随着Jetpack库的推出,Butter Knife逐渐被ViewBinding和Data Binding所替代。 Koin是基于Kotlin的轻量级依赖注入库,它使用DSL(Domain Specific Language)来定义依赖关系,使得代码更简洁易读。Koin不依赖...

Global site tag (gtag.js) - Google Analytics