当前位置: 首页 > news >正文

宣城网站开发专业制温州网站建设 首选国鼎网络好

宣城网站开发专业制,温州网站建设 首选国鼎网络好,wordpress申请子站,做最优秀的自己演讲视频网站前言 主线程的Handler 主要依赖于 ActivityThread,Android是消息驱动,比如view的刷新,activity的创建等,如果能打印系统层Handler消息日志,就需要对于系统层的Handler 进行Hook 原理 ActivityThread中 mH对象主要负责…

前言

主线程的Handler 主要依赖于 ActivityThread,Android是消息驱动,比如view的刷新,activity的创建等,如果能打印系统层Handler消息日志,就需要对于系统层的Handler 进行Hook

原理

ActivityThread中 mH对象主要负责整个主线程的事件传递,拿到mH传递的消息并打印出来,就可以,Handler的消息处理机制,会先处理Message的Callback 再处理handlerMessage

核心代码

ActivityThread.java

 final H mH = new H();class H extends Handler {public static final int BIND_APPLICATION        = 110;@UnsupportedAppUsagepublic static final int EXIT_APPLICATION        = 111;@UnsupportedAppUsagepublic static final int RECEIVER                = 113;...public static final int EXECUTE_TRANSACTION = 159;}

Handler.java

  public void dispatchMessage(@NonNull Message msg) {if (msg.callback != null) {handleCallback(msg);} else {if (mCallback != null) {if (mCallback.handleMessage(msg)) {return;}}handleMessage(msg);}}

如果能给系统的Handler 设置上 callback ,那每次系统消息传递 就可以先回调我们的callback 

只要我们返回false ,系统正常运行,因为mH是静态的,通过代码反射invoke的就是系统的,

再反射获取 Handler的mCallback对象,设置我们自己的Callback实现类即可

源码

  private void hookSystemHandler() throws IllegalAccessException, NoSuchFieldException, ClassNotFoundException, NoSuchMethodException, InvocationTargetException {Class<?> activityThreadClass = Class.forName("android.app.ActivityThread");//获取静态ActivityThread对象Object currentActivityThread = activityThreadClass.getDeclaredMethod("currentActivityThread").invoke(null);Field mHField = activityThreadClass.getDeclaredField("mH");mHField.setAccessible(true);//获取mH对象 系统的Object mH =  mHField.get(currentActivityThread);Field mCallbackField =Handler.class.getDeclaredField("mCallback");mCallbackField.setAccessible(true);//替换为我们的CallbackmCallbackField.set(mH,new MyHookHandler());}class MyHookHandler implements Handler.Callback {public MyHookHandler() {}@Overridepublic boolean handleMessage(@NonNull Message msg) {//我们的Handler 已经完成了替换//这里对所有系统消息进行拦截Log.d("tag-message",msg.toString());// 要保证系统运行正常 还得让原本handler 继续处理
//            originalHandler.handleMessage(msg);return false; //不拦截}}

最终效果

D  { when=-1ms what=159 obj=android.app.servertransaction.ClientTransaction@196c92db target=android.app.ActivityThread$H }D  { when=-6ms what=159 obj=android.app.servertransaction.ClientTransaction@9bc76abb target=android.app.ActivityThread$H }D  { when=-20ms what=159 obj=android.app.servertransaction.ClientTransaction@18771a77 target=android.app.ActivityThread$H }

http://www.yayakq.cn/news/282125/

相关文章:

  • 宁波网站制作公司排名wordpress4.9.4
  • 京东的网站规划与建设市场分析科技论文发表网
  • 建网站知乎网站设建设表单
  • 网站在线留言如何做编程的基础知识
  • 温州手机网站制作哪家便宜做俄罗斯生意网站
  • Linux做视频网站网速均衡网页页面下载
  • 上海市城乡住房建设部网站上海建站哪家好
  • 装饰网站建设优惠套餐兼容ie8的网站模板
  • 上海网站建设联系电wordpress parent id
  • 怎么给网站做开场动画北京网站建设价格
  • 用服务器ip怎么做网站wordpress腾讯cos插件
  • da面板做两个网站实时在线街景地图
  • 有没有帮忙做推广的网站怎建网站
  • 桂林北站到象鼻山多远小程序开发 杭州
  • 烟台网站建设的公司网站备案应该怎么做
  • 大连地区建设网站asp 网站建设教程
  • 单页面推广网站模版互联网运营平台
  • 网站直播的功能怎样做免费企业网站建设免费
  • 扁平化蓝色网站沈阳微网站制作
  • 个人网站建设论文企业培训师资格证报考官网入口
  • 如何向百度提交自己的网站免费软件是一种不需付费就可取得
  • 网站建设所需硬件手机网站智能管理系统
  • 建设通网站上线家乡网站建设策划书模板
  • 购物网站的设计与实现如何在百度中搜索到网站
  • 网站总类微信公众平台内做网站
  • 平台网站开发的税率阿里与电信签订合作协议
  • 网站建设与管理实训心得体会如何提高网站安全性
  • 大网站整站备份广州公司营销型网站建设
  • 开发app需要公司吗网站优化定做
  • 一般网站建设收费几年合同网络公司排名最新排名