(1)Smali系列学习之Smali函数调用语句分析

本文深入探讨了Smali中的函数调用,包括invoke-direct、invoke-virtual、invoke-static、invoke-super等指令的用法,并举例说明了如何在Smali代码中处理函数返回结果,对于理解Android应用底层机制具有参考价值。
摘要由CSDN通过智能技术生成

一.函数调用
smali中的函数和成员变量也分为两种,分别为 direct 和 virtual。两者的区别如下:

1.direct method 是指调用private方法。
2.virtual method 是指调用protected和public方法。
3.static method 是指调用static方法。
4.super method是指调用父类方法。
5.当然其实还有invoke-XXX/range指令的,这是参数多于4个的时候调用的指令,比较少见。

所以在调用函数时,有invoke-direct,invoke-virtual,另外还有invoke-static、invoke-super以及invoke-interface等几种不同的指令。

下面针对这几种函数调用的smali方法进行讲解。

1.invoke-static
用于调用static函数,例如:

        invoke-static {}, Lcom/aaa;->CheckSignature()Z

注意:invoke-static后面有一对大括号“{}”,其实是调用该方法的实例+参数列表,由于这个方法既不需参数也是static的,所以{}内为空。

例如:

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值