91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

monkey源碼分析之事件注入方法變化

發布時間:2020-08-13 08:46:50 來源:網絡 閱讀:237 作者:zhukev 欄目:移動開發

在上一篇文章《Monkey源碼分析之事件注入》中,我們看到了monkey在注入事件的時候用到了《Monkey源碼分析番外篇之Android注入事件的三種方法比較》中的第一種方法,通過Internal API的WindowManager的injectKeyEvent之類的方法注入事件。這種方法在android api level 16也就是android4.1.2之后已經發生了變化:

  • 在此之后注入事件的方式變成了使用InputManager的injectInputEvent方法了
  • 而InputManager的getInstance和injectInputEvent等方法后來又變成了隱藏方法,具體哪個版本我沒有去查,但起碼我現在在看的Android 4.4.2是這樣的
  • 同樣,uiautomator使用的注入事件方法用的也是InputManager的injectInputEvent的方法,這我想就是為什么UIAutomator只支持api level 16以后的android版本了
這里我們看下monkey在最新的版本API Level 19(android 4.4.2)的注入事件代碼。
/*     */   public int injectEvent(IWindowManager iwm, IActivityManager iam, int verbose) /*     */   { /* 101 */     if (verbose > 1) { String note; /*     */       String note; /* 103 */       if (this.mAction == 1) { /* 104 */         note = "ACTION_UP"; /*     */       } else { /* 106 */         note = "ACTION_DOWN"; /*     */       } /*     */       try /*     */       { /* 110 */         System.out.println(":Sending Key (" + note + "): " + this.mKeyCode + "    // " + MonkeySourceRandom.getKeyName(this.mKeyCode)); /*     */       } /*     */       catch (ArrayIndexOutOfBoundsException e) /*     */       { /* 114 */         System.out.println(":Sending Key (" + note + "): " + this.mKeyCode + "    // Unknown key event"); /*     */       } /*     */     } /*     */      /*     */  /* 119 */     KeyEvent keyEvent = this.mKeyEvent; /* 120 */     if (keyEvent == null) { /* 121 */       long eventTime = this.mEventTime; /* 122 */       if (eventTime <= 0L) { /* 123 */         eventTime = SystemClock.uptimeMillis(); /*     */       } /* 125 */       long downTime = this.mDownTime; /* 126 */       if (downTime <= 0L) { /* 127 */         downTime = eventTime; /*     */       } /* 129 */       keyEvent = new KeyEvent(downTime, eventTime, this.mAction, this.mKeyCode, this.mRepeatCount, this.mMetaState, this.mDeviceId, this.mScanCode, 8, 257); /*     */     } /*     */      /*     */  /* 133 */     if (!InputManager.getInstance().injectInputEvent(keyEvent, 1)) /*     */     { /* 135 */       return 0; /*     */     } /* 137 */     return 1; /*     */   } /*     */ }
可以看到最后的注入事件方法從原來的iwm.injectKeyEvent變成了現在的Inputmanager.getInstance().injectInputEvent方法了。


 

作者

自主博客

微信

CSDN

天地會珠海分舵

http://techgogogo.com


服務號:TechGoGoGo

掃描碼:

monkey源碼分析之事件注入方法變化

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万全县| 吴江市| 隆德县| 高雄县| 化隆| 黔西县| 尼木县| 始兴县| 会宁县| 景东| 循化| 黑龙江省| 那曲县| 伊宁市| 剑阁县| 玉屏| 胶州市| 廉江市| 林州市| 南皮县| 普宁市| 明光市| 乐陵市| 洪泽县| 图木舒克市| 开阳县| 泽库县| 瓮安县| 建瓯市| 安新县| 广州市| 沙坪坝区| 廊坊市| 潞城市| 万盛区| 上虞市| 朝阳县| 沐川县| 西乌| 肇东市| 中宁县|