webview问题调查

这算是我最郁闷的一次调查了。刚开始是为了html5游戏能快速的兼容android,于是,便调 查在webview的表现等等,结果发现点击之类的在webview似乎非常的不灵敏,虽然我是通过 页面元素模拟按键事件的,但还是觉得无法忍受。

我起始以为是程序运行的速度太快,而模拟的按键消息发送的太慢,于是,调查各种方式, 以便解决按键的延迟问题。

等等一系列调查下来,我注意到了webview中的速度比浏览器中的速度慢很多很多,于是, 便推翻了之前的结论,转移到webview的执行效率上来了。

硬件加速,开启,还是相同的慢(我用的是nexus 5),看到网上说的关于webview的js执行 速度慢,考虑jit?,浏览android源代码中关于Browser中的代码,相关内容几乎采用相同的 机制,但还是没有任何效果。浏览android的webview的相关源代码,还是没有找到问题的原 因。

首先,我知道的事情是,硬件加速开启了,但在webview中的速度就是比自带的浏览器速度 慢,如果没有开启的话,webgl相关几乎就会罢工的。

其次,浏览器中自带的支持很多声音的,而webview却不支持,这比较怪,浏览android源代 码中相关的chrome代码,也没有发现有这方面的限制。

最后,在在线调试javascript代码的时候,我注意到浏览器用的并不是Browser.apk,而是 Chrome.apk,也就是说我从一开始便走错了路。没想到都已经是4.4.2了,竟然这两个还是 分开的,在我第一次关注这个的时候,这两个就是分开的,没想到还是分开的。

知道了问题的所在,剩余的事情就理所当然了。

这个坑爹的货啊,白白浪费了我将近一周的时间。

x86程序内存动态补丁拦截

这个算是之前关于外挂框架的一个继续,但主要是说程序的内存补丁的,适用于无法获取到 源代码而又想拦截或者调用目标程序中的相关指令或函数的方法。

一般情况下,我们使用长跳转指令0xe9(JMP XXXXXX)的方式跳转到我们自己的dll函数中去 执行代码,不同于很早很早之前的外挂教程使用的是消息通知的方法,这里其实也算是使用 跳转,但区别在于我们不用计算跳转的偏移。

继续阅读x86程序内存动态补丁拦截