smali语言详解之类的声明


一、smali语言的类声明格式

.class 权限修饰关键字 类的全包名路径

二、示例

2.1、一般类(无继承和接口实现)

java代码如下

public class Test {}

用smali代码表示如下

.class public Lcom/ylw/test;#(此行不可删)Lcom/ylw/test;为类的全包名路径,根据实际情况有所不同
.super Ljava/lang/Object;#(此行不可删)声明父类,当没有使用extends写明继承时,默认继承Object类
.source "Test.java"#(此行可删)#表示此smali代码对应的java源码文件

2.2、此类继承自某个类extends

java代码如下

public class MainActivity extends AppCompatActivity {}

用smali代码表示如下

.class public Lcom/ylw/activity/MainActivity;#(此行不可删)Lcom/ylw/activity/MainActivity;为类的全包名路径,根据实际情况有所不同
.super Landroidx/appcompat/app/AppCompatActivity;#(此行不可删)声明父类,当使用extends写明继承时,使用继承类的全包名路径
.source "MainActivity.java"#(此行可删)#表示此smali代码对应的java源码文件

2.3、此类实现了某个接口implements

java代码如下

public class DataPackage implements Serializable {}

用smali代码表示如下

.class public Lcom/ylw/utils/DataPackage;#(此行不可删)Lcom/ylw/utils/DataPackage;为类的全包名路径,根据实际情况有所不同
.super Ljava/lang/Object;#(此行不可删)声明父类,当没有使用extends写明继承时,默认继承Object类
.source "DataPackage.java"#(此行可删)#表示此smali代码对应的java源码文件# interfaces
.implements Ljava/io/Serializable;#(此行不可删)写明此类实现接口的全包名路径Ljava/io/Serializable;

三、关于全包名路径

以大写L开头,以/分割,以分号结尾

smali语言详解之类的声明相关推荐

  1. smali语言详解之static静态代码块的声明与静态变量初始化赋值位置

    smali语言详解之static静态代码块的声明与静态变量初始化赋值位置 一.smali语言的静态代码块声明格式 .method static constructor <clinit>() ...

  2. smali语言详解之一般/构造方法(函数)的声明与返回值关键字

    smali语言详解之一般/构造方法(函数)的声明与返回值关键字 一. smali语言的方法声明格式 .method与.end method成对出现,类似于java中的花括号 1.1.非静态的一般方法 ...

  3. smali语言详解之字段的声明(变量、常量)

    smali语言详解之字段的声明(变量.常量) 一.smali语言的字段声明格式 1.1.非静态变量 .field 权限修饰关键字 变量名:变量类型的全包名路径或与java对应的数据类型关键字 1.2. ...

  4. smali语言详解之创建对象

    smali语言详解之创建对象 一.smali语言创建对象分两步进行 第一步,声明对象实例,格式如下 new-instance 变量名,该对象对应类的全包名路径 第二步,调用构造方法(如果构造方法内还定 ...

  5. smali语言详解之方法的调用

    smali语言详解之方法的调用 一.方法调用关键字介绍 smali语言方法调用关键字主要有以下五种 invoke-virtual主要用于非私有实例方法的调用.实例方法指不是构造方法.父类方法等的属于这 ...

  6. Drools 规则语言详解(上)

    http://www.blogjava.net/guangnian0412/archive/2006/06/09/51574.html http://www.blogjava.net/guangnia ...

  7. c++ using 前置声明_详解C++ 前置声明

    前置声明是C/C++开发中比较常用的技巧,主要用在三种情形: 变量/常量,例如extern int var1;; 函数,例如void foo();,注意类的成员函数无法单独做前置声明: 类,例如cla ...

  8. 如何用c语言编写stm32的程序吗,STM32入门C语言详解

    <STM32入门C语言详解>由会员分享,可在线阅读,更多相关<STM32入门C语言详解(6页珍藏版)>请在人人文库网上搜索. 1.最新 料推荐阅读 flash : 芯片内部存储 ...

  9. 克鲁斯卡尔算法c语言,Kruskal算法(一)之 C语言详解

    最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树. 例如,对于如上图G4所示的连通网可以有多棵权值总和 ...

最新文章

  1. 密码学系列之:碰撞抵御和碰撞攻击collision attack
  2. 2021牛客暑期多校训练营3 I-Kuriyama Mirai and Exclusive Or(异或+差分)
  3. 各种模板(数学数论字符串)
  4. Dcloud+mui 压缩上传图片到服务器
  5. EIGRP的基本配置
  6. linux精简版远程登录,Linux下如何定制SSH来简化远程访问
  7. GridView 中的事件
  8. JavaSE: SuppressWarnings[转]
  9. Linux 快捷键记录栏
  10. Hadoop 2.6.0 HA高可用集群配置详解
  11. 简单介绍Spring是什么?
  12. 数电模电基础(1)分压电路
  13. PHP利用JWT实现token和refresh_token
  14. 小米mix2安兔兔html5跑分,小米MIX 2S跑分多少?高通骁龙845安兔兔跑分实测 (全文)...
  15. 读取图像教程,生成h5py文件的教程
  16. “店小二”精神国际化步伐23年成就巨无霸
  17. 企业经营数据分析-读后感
  18. Harmonious Graph
  19. Backtrader(十一) - Indicator指标
  20. 计算机操作系统-文件管理 知识点归纳

热门文章

  1. 使用PHPDoc轻松建立你的PEAR文档
  2. C++几种常见的数据结构
  3. hadoop大数据开发技术学习笔记第三天:(前序)MySQL数据库进阶
  4. lastIndexOf()使用方法
  5. last-child 与 last-of-type
  6. onShareAppMessage小程序分享功能
  7. Shell十三问之十一:与差在哪
  8. oracle修改rman参数,Oracle数据库中RMAN默认配置参数代表什么意思
  9. 替代定理和戴维宁诺顿定理
  10. 免费的酷播云使用操作步骤(四步轻松完成哦)