首页 > 编程知识 正文

ffmpeg从入门到精通,dmaic方法论 doe

时间:2023-05-03 07:42:50 阅读:156375 作者:761

资料来源: https://blog.csdn.net/yoyo _ newbie/article/details/90745115官方吐槽: Smali smali是用可读取Android字节码的字符串表示的语言

修改Smali文件有什么作用? 您可以通过修改使用工具反编译Apk生成的smali文件来重新生成和使用新的Apk。

我怎么得到Smali文件? 通过反编译Java,如xx.Test.java反编译==xx.Test.smali所示,生成smali (可以用apk tool工具进行反编译)

实践分析,创建名为csdn.lgdzfj_newbie.smalianalyzesampleTest.java文件

package csdn.lgdzfj _ newbie.smalianalyzesample; 公共类测试{公共测试(} { super ); 使用apktool反编译生成的Smali文件:

cdnlgdzfj _ newbiesmalianalyzesampletest.smali

. classpubliclcsdn/lgdzfj _ newbie/smalianalyzesample/test; super Ljava/lang/Object; source ' test.Java ' # direct methods.methodpublicconstructorinit () v.locals0* * *.prologue.line5invoke-direct 第一行表示声明公共的class,其className为' csdn.lgdzfj_newbifj )

其中L代表是对象类型

. classpubliclcsdn/lgdzfj _ newbie/smalianalyzesample/test

第二行显示继承的父类为java.lang.Object.class

. super Ljava/lang/Object;

第三行表示此csdn.lgdzfj _ newbie.smalianalyzesample.test.class来自Test.java文件

. source “ Test.java”

需要声明为什么来自哪里的一定是名为Test.java的文件。 不是多余的事吗? 一开始我也是这么想的,但深思熟虑后,我恍然大悟,是不是有内部班级。 请看下面的代码

package csdn.lgdzfj _ newbie.smalianalyzesample; 公共类测试{公共测试(} { super ); }公共静态类show { }编译将生成两个文件

cdnlgdzfj _ newbiesmalianalyzesampletest.smali

. classpubliclcsdn/lgdzfj _ newbie/smalianalyzesample/test; super Ljava/lang/Object; source 'Test.java ' .在此省略其他代码csdnlgdzfj _ newbiesmalianalyzesample test $ show.smali

. classpubliclcsdn/lgdzfj _ newbie/smalianalyzesample/test $ show; super Ljava/lang/Object; source 'Test.java ' .在这里省略其他代码也找不到吗! 内部类Show的. Source的值也是Test.java。

这次的内容到此为止,下面的代码暂时不做说明,进入下一个分析。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。