#头
.class public Lworld/eworld/estr; #类声明
#可加 L字符串,当前类所在的路径
.super Ljava/lang/Object; #父类声明/默认是Object
#返回静态field方法
.field public static final eStr:Ljava/lang/String; = "Beat work everyday"
# 共有 静态 不可修改
#field声明与初始化
#普通函数需要初始化
.method public bain<init>()V
#p0-->this
.locals 0
invoke-direct {}, Ljava/lang/Object;-><init>V
return-void
.end method
#普通函数
.method public bwork3()Ljava/lang/String;
.locals 1
const-string v0, "Beat work everyday for man"
result-object v0
.end method
#函数声明
.method public static bwork()Ljava/lang/String;
#函数方法声明----共有 静态 函数名(描述) 返回值及类型
.locals 4 #数字本地寄存器数量,以V0开始,V..
const-string v0, "Beat work everyday"
return-object v0
#返回寄存器对象
.end method
#获取field
.method public static bwork2()Ljava/lang/String;
.locals 1 #寄存器数量声明
sget-object v0,Lworld/eworld/estr;->eStr:Ljava/lang/String
#路径 类型
return-object v0
.end method
------------------------------
#调用静态方法
invoke-static {},Lworld/eworld/estr;->bwork()Ljava/lang/String;
#类所在路径 其下方法及返回值和类型
move-result-object v0
#对调用方法返回值进行重新赋值
#调用普通方法
new-instance v0,Lworld/eworld/estr;
invoke-direct {v0},Lworld/eworld/estr;-><init>()V
invoke-virtual {v0},Lworld/eworld/estr;->bwork3()Ljava/lang/String;
move-result-object v0
----------------------------------
#Android log
包源adnroid/util/Log
invoke-static{v0,v1},Landroid/util/Log;->v(Ljava/lang/String;Ljava/lang/String;)I
#函数跟踪
invoke-static {},Landroid/os/Debug;->startMethodTracing()V
invoke-static {},Landroid/os/Debug;->stopMethodTracing()V
#添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
#字符串handle
#新建
const-string v1, "%d"
#字符格式化
const-string v1,"%d" #描述
const/4 v2, 0x1 #数组长度
new-array v2, v2,[Ljava/lang/Object; #创建object数组,[数组
aput-object v3,v2,v4 #填充数组
...
invoke-static {v1,v2},Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object)Ljava/lang/String; #格式化字符串
#字符串替换
invoke-virtual {v0,v1,v2},Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
invoke-virtual{v0,v1,v2},Ljava/lang/String;->replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
#waitForDebugger
invoke-static {},Landroid/os/Debug;->waitForDebugger()V
安卓smali编写
猜你喜欢
转载自blog.csdn.net/sugarbew/article/details/110817431
今日推荐
周排行