1、Smali中的包信息
- .class <访问权限> [修饰关键字] <类名>
- .super <父类名>
- .source <源文件名>
.class public Lcom/aaa;
.super Lcom/bbb;
.source "ccc.java"
该smali文件是由ccc.java编译而来的,它是com.aaa这个包下的一个类,继承自com.bbb这个类
2、Smali中的寄存器知识
- 本地寄存器以v开头数字结尾,如:v0,v1...
- 参数寄存器以p开头数字结尾,如:p0,p1...
- p0不一定是函数中的第一个参数,在非static函数中,p0就是“this”的意思,后面的才为函数参数
3、Smali中的函数
函数的整体架构:
.method <访问权限> [修饰关键字] <方法原型> #方法声明
<.locals> #局部变量个数
[.parameter] #参数
[.prologue] #代码开始处
[.line] #源代码行号
<代码体>
.end method #方法结束
4、Smali中的数据类型
- v void只能用于返回值类型
- Z boolean类型
- B byte类型
- S shot类型
- C