最近忙于工作,经过我‘咸鱼’的时间终于是有了些眉目,期间也走了许多弯路,现在做个笔记让也想学习的朋友们做个参考
刚开始没发现,看这个布局分析得到微信的聊天列表和这个聊天界面在同一层级,导致我后面hook listview的时候老是跑到首页的的列表上。
那么接下来我们在看看撤回消息的时候到底发生了什么。消息是存到本地数据了的,至于为什么这么说,请继续看
话说有这么个类,前面已经提到过与之关联的类ChattingUI$a 如果不知道为什么我找到后面几个关联类的请看前面的一篇帖子既可以联系起来
然后这个类里面没有什么实质性的东西,于是我就点开他的父类看了看
我不说其他人看到这个会怎么想,我平时自己写聊天应用的时候也会把聊天数据存储在数据库,于是乎开始hook起来
* 直接hook sql达到获取撤回消息id的目的
因为我SQLiteDatabase在里面找insert和update的方法发现里面最后走进入了SQLiteProgram 哈哈! 偷个懒我就不具体截图找给大家看了,然后把撤回的消息id记录在本地,作为后面标记的依据
//经过以上代码可以知道 itemViewType == 1的时候打印的值是正常对话列表的值记住hook 这个listview的时候会遇到我文章片头说的问题,导致每个item的view 对应错误,所以我加了过滤标识。