逆向开发环境准备

JDK安装

AndroidStudio安装

        默认sdk路径

                C:\Users\Administrator\AppData\Local\Android\Sdk

        将platform-tools所在的目录添加到path

                C:\Users\Administrator\AppData\Local\Android\Sdk\platform-tools

                主要目的是使用该目录下的adb等命令

        将tools所在的目录添加到path

                 C:\Users\Administrator\AppData\Local\Android\Sdk\tools

        NDK根目录添加到path

                检验是否添加成功

                        ndk-build

MT管理器

        功能:

                查看Android系统目录结构

                查看apk的加固方式,以及签名版本等信息

                        

Android killer

        替换apktool

        案例:

                更改应用的名称和icon

                        killer内置的文本搜索工具不好用,对于名称和icon的更改,可自动化

                        自动化icon步骤

                                1.指定AndroidManifest.xml的路径

                                2.更改icon的名称

                                          <application  android:icon="@drawable/jrlogo"

                                3.将icon所对应的图片添加到如下目录

                                                                自动化名称步骤

                                1.确定AndroidManifest.xml中名字对应的字符串叫什么

                                       <application  android:label="@string/tudou_app_name"

                                2.在values/strings.xml中搜索相应的字符串,找到后将其替换

                                        <string name="tudou_app_name">土豆视频1</string>

                去除开屏广告界面

                        1.用adb判断目标app启动时,开屏广告界面所对应的Activity名称

                        2.在AndroidManifest.xml中将该Activity的launcher属性去除

                        

                   

APK的目录结构

        

APK的打包流程

        

apk的安装流程

        

虚拟机

        有三种虚拟机,分别为:java虚拟机,dalvik虚拟机,art虚拟机

        

odex和aot的区别

ODEX(Optimized DEX)

  • 定义:ODEX是优化过的DEX文件,即将APK中的classes.dex文件通过dex优化过程生成的优化文件。DEX文件是Android应用程序的编译产物,包含了应用程序的可执行代码。
  • 用途:ODEX文件用于加快软件的启动速度,减少对RAM的占用。在Android 5.0之前,APK安装时会进行DEX文件的验证和优化,生成ODEX文件。运行APK时,直接加载ODEX文件,避免了重复验证和优化,从而提高了响应速度。

OAT(Optimized Android Runtime)

  • 定义:OAT是ART(Android Runtime)虚拟机运行的文件,是ELF格式的二进制文件,包含了DEX文件和编译出的本地机器指令。
  • 用途:从Android 5.0开始,系统引入了ART运行时环境,取代了之前的Dalvik虚拟机。ART在安装应用时会进行预编译,将DEX文件转换成OAT文件,这些文件包含了编译后的机器码,因此可以直接由处理器执行,无需在应用运行时再进行即时编译(JIT),从而提高了应用的运行效率。

二、生成与存储

ODEX

  • 生成:在Android 5.0之前的版本中,APK安装时通过dexopt工具生成ODEX文件。dexopt会对DEX文件进行优化,并生成包含优化结果的ODEX文件。
  • 存储:ODEX文件通常存储在/data/dalvik-cache目录下,与APK文件分开存储。

OAT

  • 生成:在Android 5.0及以后的版本中,APK安装时通过dex2oat工具将DEX文件编译成OAT文件。dex2oat负责将DEX字节码转换成特定于处理器的机器码。
  • 存储:OAT文件同样存储在/data/dalvik-cache目录下,但格式和内容与ODEX文件不同。

三、文件格式与性能

文件格式

  • ODEX:虽然ODEX文件是优化过的DEX文件,但其本质上仍然是DEX格式的一种变体。它包含了经过优化的DEX代码和一些额外的元数据。
  • OAT:OAT文件是ELF格式的二进制文件,包含了DEX代码和编译后的本地机器指令。与ODEX相比,OAT文件的结构更加复杂,但执行效率更高。

性能

  • ODEX:虽然ODEX文件加快了软件的启动速度,但在运行时仍需要JIT编译器将DEX字节码转换成机器码才能执行。
  • OAT:OAT文件包含了编译后的机器码,因此可以直接由处理器执行,无需JIT编译过程。这使得应用的运行效率更高,响应速度更快。

综上所述,ODEX和OAT在Android系统中扮演着不同的角色,它们之间的区别主要体现在定义与用途、生成与存储以及文件格式与性能等方面。随着Android系统的发展,ART运行时环境和OAT文件逐渐成为主流趋势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值