简单记录一下smail常用语法

smali是Dalvik的寄存器语言,smali代码是dex反编译而来的。

关键字

名称

注释

.class

类名

.super

父类名,继承的上级类名名称

.source

源名

.field

变量

.method

方法名

.register

寄存器

.end method

方法名的结束

public

公有

protected

半公开,只有同一家人才能用

private

私有,只能自己使用

.parameter

方法参数

.prologue

方法开始

.line xxx

位于第xxx行

数据类型对应

smali类型

java类型

注释

V

void

无返回值

Z

boolean

布尔值类型,返回0或1

B

byte

字节类型,返回字节

S

short

短整数类型,返回数字

C

char

字符类型,返回字符

I

int

整数类型,返回数字

J

long (64位 需要2个寄存器存储)

长整数类型,返回数字

F

float

单浮点类型,返回数字

D

double (64位 需要2个寄存器存储)

双浮点类型,返回数字

string

String

文本类型,返回字符串

Lxxx/xxx/xxx

object

对象类型,返回对象

常用指令

关键字

注释

const

重写整数属性,真假属性内容,只能是数字类型

const-string

重写字符串内容

const-wide

重写长整数类型,多用于修改到期时间。

return

返回指令

if-eq

全称equal(a=b),比较寄存器ab内容,相同则跳

if-ne

全称not equal(a!=b),ab内容不相同则跳

if-eqz

全称equal zero(a=0),z即是0的标记,a等于0则跳

if-nez

全称not equal zero(a!=0),a不等于0则跳

if-ge

全称greater equal(a>=b),a大于或等于则跳

if-le

全称little equal(a<=b),a小于或等于则跳

goto

强制跳到指定位置

switch

分支跳转,一般会有多个分支线,并根据指令跳转到适当位置

iget

获取寄存器数据

其余指令可用语法工具查询

将`.smil`(Simple Mail Format)邮件文件转换成Java源代码不是一个直接的过程,因为`.smil`是简单的HTML格式,通常用于描述电子邮件的结构和内容。如果你想将邮件中的信息提取出来并转换成Java代码,你需要手动解析或使用专门的库来进行处理。 以下是一个简化的步骤,假设你想从一个包含简单文本和HTML的`.smil`文件中提取数据: 1. **打开和读取`.smil`文件**: 使用Java的`java.io`包下的`FileInputStream`和`BufferedReader`类来读取文件内容。 ```java File smilFile = new File("path_to_your_smil_file"); BufferedReader reader = new BufferedReader(new FileReader(smilFile)); String line; StringBuilder emailContent = new StringBuilder(); ``` 2. **解析文件内容**: 遍历文件,识别出关键部分如标题、正文等,可能需要正则表达式或其他方法匹配HTML标签。 3. **转换数据**: 对于每个找到的数据段(如邮件标题、发件人、正文),创建对应的Java变量或对象属性。 例如,对于标题: ```java String subject = extractSubjectFromLine(line); ``` 对于正文,可能要更复杂地解析HTML: ```java Matcher matcher = htmlPattern.matcher(line); while (matcher.find()) { String text = matcher.group(); // 将text转换为Java字符串或存储在合适的数据结构(如List<String>)中 } ``` 4. **构建Java对象或类**: 根据提取的信息,定义一个Java类来表示邮件,包含属性对应解析后的字段。 5. **输出Java代码**: 最后,你可以选择将这些数据构造出来的Java代码写入到一个新的文件中。 请注意,这个过程相当繁琐且依赖于`.smil`文件的具体结构。如果邮件结构复杂或者包含嵌套元素,使用成熟的HTML解析库(如Jsoup或HTML Agility Pack)会更方便。实际操作时,根据需求调整上述步骤,并确保版权和隐私合规。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值