zoukankan      html  css  js  c++  java
  • Smail语法

    • 数据类型

    B---byte
    C---char
    D---double
    F---float
    I---int
    J---long
    S---short
    V---void
    Z---boolean
    [XXX---array
    Lxxx/yyy---object

    • 函数的定义

    Func-Name (Para-Type1Para-Type2Para-Type3...)Return-Type

    在smali里的所有操作都必须经过寄存器来进行:本地寄存器用v开头数字结尾的符号来表示,如v0、v1、v2、...参数寄存器则使用p开头数字结尾的符号来表示,如p0、p1、p2、...特别注意的是,
    p0不一定是函数中的第一个参数,在非static函数中, p0代指“this”,p1表示函数的第一个参数,p2代表函数中的第二个参数…而在static函数中p0才对应第一个参数
    (因为Java的static方法中没有this方法)。本地寄存器没有限制,理论上是可以任意使用的


    const/4 v0, 0x0
    iput-boolean v0, p0, Lcom/disney/WMW/WMWActivity;->isRunning:Z
    相当于
    this.isRunning = false;

    • 函数调用

    1)、invoke-static:顾名思义就是调用static函数的
    2)、invoke-super:调用父类方法用的指令,在onCreate、onDestroy等方法都能看到
    3)、invoke-direct:调用private函数的
    4)、invoke-virtual:用于调用protected或public函数

    .local 1 标明了你在这个函数中最少要用到的本地寄存器的个数 v0

    • 插入日志

    .local 5 (用到v4)

    const-string v3, "tag"
    const-string v4, "log456"
    invoke-static {v3, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    打印数字

    const/high16 v1, 0x7f030000
    const-string v3, "tag"
    invoke-static {v1}, Ljava/lang/Boolean;->toString(Z)Ljava/lang/String;
    move-result-object v4
    invoke-static {v3, v4}, Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
     
    • 打印调用栈
    new-instance v0, Ljava/lang/Exception;
    const-string v1, "print trace"
    invoke-direct {v0,v1}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V

    或者

    invoke-static {}, Ljava/lang/Thread;->dumpStack()V
    

      




  • 相关阅读:
    程序员高效学习
    红黑树(平衡操作详解)
    【设计模式】JDK源码中用到的设计模式
    pymysql.err.InternalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')错误处理
    UPC:ABS
    洛谷:P1182:数列分段`Section II`
    python:数据库连接操作入门
    2018百度之星资格赛:1002:子串查询
    Educational Codeforces Round 48 (Rated for Div. 2)——A. Death Note ##
    python:pip命令使用
  • 原文地址:https://www.cnblogs.com/ahuo/p/12395570.html
Copyright © 2011-2022 走看看