android下可执行文件的真面目 您所在的位置:网站首页 手机应用的文件名后缀 android下可执行文件的真面目

android下可执行文件的真面目

2024-06-15 04:43| 来源: 网络整理| 查看: 265

大家都知道Window下的可执行文件是.exe或者是.dll,而如今android系统的发展也正如火如荼,平时你在只顾下载玩android游戏的时候有没有注意一下android平台下的可执行文件是什么,讲到这我想就算是在android下做过一段时间开发的人也可能会讲不清。会是.apk文件吗,一开始我也是这样认为的,上网搜了很多关键词,也都是模棱两可,下面我就带大家挖掘一下android平台下的可执行文件的格式: 昨天Hexbug问我android下的可执行文件是什么,我想了想大概是.apk文件吧,让后他又问我所在的目录。我仔细一想这个还真么研究过,曾经在adb下调试的时候进入过/data/app目录那里确实有我写过的程序,但是我把自己的手机连上直接寻找时却没有找到,然后我又在adb下寻找却能够找到,仔细想了想,因为我没有买sd卡,android程序默认都安装在手机中,而访问手机内部存储需要root权限,这大概就是问题所在,仔细找了找,在相应的包下果然有对应程序的.apk文件,然后把它删掉,然后再次回到手机上,这是对应的android应用程序依然无法打开,于是此时我就认定.apk文件就是android程序的可执行文件。 然而hexbug却告诉我这个可能不是,我们一起上网搜索了很多资料结果却发现,android程序运行的机制是这样的:

Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢? 如果你观察会发现与odex同名的文件一一对应,同时那些对应的apk文件中没有dex文件。

这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的,而厂商直接将odex和不完整的apk文件放到手机rom固化到/system/bin中可以让一般用户无法正常导出使用。

可能想到的是合并odex和apk产生的apk中会包含dex文件,所以说android中真正地可执行文件应该是odex

我又做了个实验,在windows下降.apk文件解压,发现.apk文件仅仅是一个包而已,经过进一步探究最终总结一下是这样的: android程序的虚拟机是Dalvik,它执行的是(.dex)文件,该格式的文件针对内存使用做了优化。同时虚拟机是基于寄存器的,所有的类经过JAVA编译器编译,然后通过SDK中的"dx"工具转化成.dex格式,由虚拟机执行。 这下android下应用程序的可执行文件的面目终于被揭开; 由于时间仓促,难免有错字,还是那句话,高手莫喷,敬请指正;


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有