位置: 编程技术 - 正文

android Smali静态分析(一)(安卓静态库)

编辑:rootadmin
文件头

推荐整理分享android Smali静态分析(一)(安卓静态库),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android 静态库调用,android 静态库 动态库,android 静态库 动态库,android.mk链接静态库,安卓系统设置静态ip,android静态代码检测,android设置静态ip,android 静态库调用,内容如对您有帮助,希望把文章链接给更多的朋友!

示例

字段

示例

方法

.locals 局部变量个数 .parameter 参数个数,每条指令声明一个参数 .prologue 代码开始 .line 行号

接口注解

示例

对应java代码

类内部类

内部类有自己独立的smali文件,命名方式为“[外部类]$[内部类].smali” 示例

其中包含字段this0、直接方法init()this0是指向外部类的引用,0表示层数,如下

synthetic属性表明是编译器合成

这段代码使用了两条“.parameter”指令,却用到了p0-p2共3个寄存器,因为对非静态方法,会隐含p0寄存器指向this引用。

监听器

MainActivity$1.smali文件

注解类

MemberClasses注解 在MainActivity.smali中有如下代码:

android Smali静态分析(一)(安卓静态库)

MemberClasses是编译时自动加上的,查看MemberClasses注解类源码,如下:

可以看出MemberClasses是“系统注解”,记录一个内部类列表。

EnclosingMethod注解 在MainActivity$1.smali中有一段代码如下:

EnclosingMethod注解用来说明MainActivity$1类的作用范围,其中的Method说明它作用于一个方法,而value表明它位于MainActivity的onCreate()方法中。

EnclosingClass注解 在MainActivity$SNChecker.smali文件中,有如下代码:

EnclosingClass表明MainActivity$SNChecker作用于一个类,value表明这个类是MainActivity。

InnerClass注解

InnerClass表明是一个内部类,name表示内部类的名称,accessFlags访问标志,声明如下:

AnnotationDefault注解 如果注解在声明时提供了默认值,那么会用到AnnotationDefault注解,示例:

可以看出MyAnnoClass类有一个默认值”MyAnnoClass”。

Signature注解 用于验证方法的签名

Throws注解 如果方法抛出异常则生成相应的Throws注解

其他注解 - SuppressLint注解:去掉代码检查器的警告信息 - TargetApi注解:去掉代码版本检查的错误信息 - SdkConstant注解:被标记为@hide,指定sdk中可以被导出的常量 - Widget注解:被标记为@hide,表明是UI类

安卓广播 转载请注明出处:

android之Java+html+javascript混合开发 android开发,除了使用原生态的开发方式之外,还可以使用java+html+javascript混合开发的方式来开发,这样可以节省大量的开发时间,同时还可以使不同设

Android开发--仿腾讯新闻客户端(1)内容列表界面 好久没有更新博客了。最近由于工作比较忙,再加上忙于社交。导致一直没好好静下来研究Android。这次给大家分享仿腾讯新闻内容列表界面。其实,这

本文链接地址:https://www.jiuchutong.com/biancheng/376630.html 转载请保留说明!

上一篇:在Android EditText中实现日期时间选择器(DatePicker和TimePicker)

下一篇:安卓广播(安卓广播的作用)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络