首页
社区
课程
招聘
[求助]Android5.0中Arm指令中对于类方法的调用的实际跳转地址的计算方法
发表于: 2016-7-8 08:43 4279

[求助]Android5.0中Arm指令中对于类方法的调用的实际跳转地址的计算方法

2016-7-8 08:43
4279
在Android5,0及其以上的版本,系统会通过dex2oat将应用编译为ARM机器指令来提高执行速度。
而对于ARM指令,我想请问一下对一个类的方法是如何获取他的实际跳转地址的呢?
例如调用telephonymanager.getdeviceid(),其对应的dex code为
iget-object telephonymanager; invoke telephonymanager.getdeviceid.
其实际的跳转地址在我的写的应用中的 获取过程为 :
[r1,#16]->r5,
r5->r1
[r1,#0]->r0
[r0,#572]->r0
[r0,#40]->lr
blx lr
所以我想请问一下这一段获取其实际跳转的地址的具体意义,其中这些数值 如16 572等是如何计算出来的,例如40就是指entry的偏移,但是其他的这些事怎么计算出来的 麻烦大家帮忙解释一下,如果给一份学习资料也是挺好的,因为我现在找到的所有关于arm调用的资料都是 函数的调用,而对这种类的方法的调用所讲的比较少。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//