目录
1.准备工作
1.1下载好smali的jar这里使用smali-2.4.0.jar (PS: 执行命令为 java -jar assemble xxx.smali -o xxx.dex)
1.2 root的真机或者模拟器
1.3 安装好JaDex方便自己看看大概写出来的东西是个什么样子,用其它工具也行,不过这个很方便。
2.编写smali文件
.class public Lcom/test/smali/Programmer;
.super Ljava/lang/Object;
.source "Programmer.java"
#变量
.field private name:Ljava/lang/String;#名称
.field private age:I#年龄
.field private sex:I#性别 1男 0女
.field private partnerName:Ljava/lang/String;
#构造函数 PS:如果只有一个无参构造函数不用自己写g构造函数,否则new的时候会死循环
.method public constructor <init>(Ljava/lang/String;)V
.locals 1
invoke-direct {p0}, Lcom/test/smali/Programmer;-><init>()V
.param p1,"name"
if-eqz p1,:cound_0
iput-object p1,p0,Lcom/test/smali/Programmer;->name:Ljava/lang/String;
:cound_0
return-void
.end method
#get\set函数
#getName函数
.method public getName()Ljava/lang/String;
.locals 1
.prologue
iget-object v0,p0,Lcom/test/smali/Programmer;->name:Ljava/lang/String;
return-object v0
.end method
#setName函数
.method public setName(Ljava/lang/String;)V
.locals 1
.prologue
.local p1, "name":Ljava/lang/String;
if-eqz p1,:cound_0
#move-object name,p1 #这么写是错的,操作field要用iput
iput-object p1,p0,Lcom/test/smali/Programmer;->name:Ljava/lang/String;
:cound_0
return-void
.end method
#getAge函数
.method public getAge()I
.locals 1
.prologue
iget v0,p0,Lcom/test/smali/Programmer;->age:I
return v0
.end method
#setAge函数
.method public setAge(I)V
.locals 1
.prologue
.local p1, "age":I
if-lez p1,:cound_0
iput p1,p0,Lcom/test/smali/Programmer;->age:I
:cound_0
return-void
.end method
#getSex函数
.method public getSex()I
.locals 1
.prologue
iget v0,p0,Lcom/test/smali/Programmer;->sex:I
return v0
.end method
#setSex函数
.method public setSex(I)V
.locals 1
.local p1,"sex":I
iput p1,p0,Lcom/test/smali/Programmer;->sex:I
return-void
.end method
#getPartnerName函数
.method public getPartnerName()Ljava/lang/String;
.locals 1
.prologue
iget-object v0,p0,Lcom/test/smali/Programmer;->partnerName:Ljava/lang/String;
return-object v0
.end method
#setPartnerName函数
.method public setPartnerName(Ljava/lang/String;)V
.locals 1
.local p1,"name":Ljava/lang/String;

—— 实体类创建以及if判断&spm=1001.2101.3001.5002&articleId=114384882&d=1&t=3&u=d8fa6f53a472436ca8b9a534cd1f0880)
5577

被折叠的 条评论
为什么被折叠?



