整理Dalvik指令 和 APK文件结构

 看了个学习视频,整理了下Dalvik指令 备忘:

一、Dalvik指令集


1.v命名与p命名寄存器
v1 v2 v3-------
p1 p2 p3-------




2.Daalvik字节码类型描述符
   V  void          只能用于返回值类型
   Z  boolean       变量值只能是 真(true) 或 假(false)
   B  byte          字节型
   S  short         短整型
   C  char          字符型
   I  int           整数型
   J  long(64位)  长整型
   F  float         浮点型 
   D  double(64位)  双精度浮点型
   L  java类类型 package.name.ObjectName Lpackage/name/ObjectName;
   [  数组类型 [I表示一个整型一维数组,等于java中的int[]。注意多位数数组的维数最大为255个。[[I=int[][] [[[I=int[][][]
3.跳转指令
   if-eq   等于则跳转 ==
   if-ne   不等于则跳转 !=
   if-lt   小于则跳转 <  
   if-ge   大于或等于则跳转 >=
   if-gt   大于则跳转  > 
   if-le   小于或等于则跳转 <=
   goto    无条件跳转
   switch  分支跳转


    返回0 实现跳转




   Pswitch_0
   。。。
   。。。
   。。。
   Pswitch_1
   。。。
   。。。
   。。。
   Pswitch_2
   。。。
   。。。
   。。。


4.方法调用指令 invoke


5.数据定义指令 const const-string


const-string v1,“youren”


6.操作指令 move


move v1,v2,


=======================================================  
.method
   invoke-virtual {v1}, Ljava/lang/String;->length()I  取V1长度 12345 =5
   
   move-result v2   将v1长度结果赋值给v2 v2=5


   const/4 v3, 0x1  v3=1
   goto :cond_1
   if-ne v2, v3, :cond_0
   
   :cond_1
   ...
   ...
   ...
   ...
   ...
   
   :cond_0
   return-void
.end method
============================================================
二、APK文件结构:


AndroidManifest.xml -配置清单
apktool.yml - 重新打包必须文件
assets - 资源
lib - native 动态库 so
res - 资源库
smali - classes.dex
META-INF -签名   
resources.arsc- 语言包

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值