[发明专利]页面跳转监听方法及装置在审
申请号: | 201711172049.5 | 申请日: | 2017-11-22 |
公开(公告)号: | CN107967169A | 公开(公告)日: | 2018-04-27 |
发明(设计)人: | 乔艳飞 | 申请(专利权)人: | 北京搜狐新媒体信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F11/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100190 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 页面 跳转 监听 方法 装置 | ||
技术领域
本发明数据处理领域,更具体的说,涉及页面跳转监听方法及装置。
背景技术
在Android系统中,对页面跳转的监听,实际上就是对Activity生命周期变化的监听。Activity是Android组件中最基本、最为常见用的组件之一。
现有的一种技术方案,利用Application组件通过ActivityLifecycleCall-backs使用接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理。但是,目前大部分重量级应用都采用了插件化开发,而插件中的Activity,通常都不是Android系统层面的真实Activity,所以插件中的Activity并不会调用系统层面callback,对于这种情况,利用Application组件通过ActivityLifecycleCallbacks使用接口提供的回调方法,就无法监听到Android系统中的Activity的状态变化了。并且,ActivityLifecycleCall backs只能在API 14+(Android 4.0+)的环境条件下使用,受Android系统版本限制。
现有的另一种技术方案,采用的是静态代码注入方式,利用AOP(Aspect Oriented Programming,面向切向编程)字节码插桩来侵入实现的Activity代码来完成,该方案虽然能够解决由于应用插件化而无法实现对Android系统Activity进行监听的问题,但却需要对所有的插件化应用进行AOP字节码插桩,实现复杂,联动性较强,导致安全性较差且不易维护。
所以,目前迫切需要一种简单、高效且安全可靠的页面跳转监听方案,能够在应用插件化的环境中对系统Activity的状态变化信息进行监听。
发明内容
有鉴于此,本发明提供了一种页面跳转监听方法及装置,以解决现有的页面跳转监听方案,虽然能够在应用插件化的环境中对系统Activity的状态变化进行监听,但其实现复杂、安全性较差且不易维护的技术问题。
为实现上述目的,本发明提供如下技术方案:
一种页面跳转监听方法,应用于Android系统,所述方法包括:
反射获取应用进程对应的ActivityThread对象;
反射获取与所述ActivityThread对象相对应的mH对象;
反射获取与mH对象相对应的mCallback对象;
将所述mCallback对象替换为预设对象;
利用所述预设对象,获取Activity变化消息;
根据所述Activity变化消息,获取Activity对象的状态变化信息;其中,所述Activity对象与所述Activity变化消息相对应。
优选的,所述将所述mCallback对象替换为预设对象包括:
当所述mCallback对象为空时,将所述mCallback对象替换为自定义的Hander.CallBack对象;
当所述mCallback对象不为空时,将所述mCallback对象替换为动态代理对象;所述动态代理对象是根据所述mCallback对象生成的。
优选的,所述利用所述预设对象,获取Activity变化消息包括:
当所述预设对象为所述Hander.CallBack对象时,利用所述Hander.CallBack对象获取Activity变化消息;
当所述预设对象为所述动态代理对象时,利用所述动态代理对象获取Activity变化消息。
优选的,所述根据所述Activity变化消息,获取Activity对象的状态变化信息包括:
根据所述Activity变化消息,获取与所述Activity对象相对应的ActivityClientRecord对象;
根据所述ActivityClientRecord对象记录的信息,获取所述Activity对象的状态变化信息。
优选的,所述根据所述Activity变化消息,获取与所述Activity对象相对应的ActivityClientRecord对象包括:
当所述Activity变化消息的类型为LAUNCH_ACTIVITY时,从所述Activity变化消息的附带信息中,获取与所述Activity对象相对应的ActivityClientRecord对象;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京搜狐新媒体信息技术有限公司,未经北京搜狐新媒体信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711172049.5/2.html,转载请声明来源钻瓜专利网。