㈠ 求助:android逆向涉及到的dalvik字节码和smali文件,ARM汇编三者的联系和区别是什么
dalvik字节码就是smali或者(java)用编译产生的dalvik可执行文件
ARM汇编,是操作芯片级的指令集。这三个东西不在一个层面
android
|(编译产生.dex,也可理解为smali压缩文件,也就是虚机可执行文件)
dalvik虚机
|
ARM汇编
|
硬件
㈡ apk是什么文件格式啊
apk是是zip格式、SymbianSis或Sisx的文件格式。
APK文件可以直接传到Android模拟器或Android手机中执行即可安装,并打开运行。apk文件和sis一样,把android sdk编译的工程打包成一个安装程序文件,这个文件的格式为apk。
(2)android字节码扩展阅读
安装的时候将缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVM executes的简称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。
Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和Windows Mobile中的PE文件有区别。
在Android平台中dalvikvm的执行文件被打包为apk格式,最终运行时就会被加载器解压然后获取编译后的android manifest.xml文件中的permission分支相关的安全访问,但是仍然拥有很多限制,如果你将apk文件传到/system/app文件夹下会发现执行是不受限制的。
㈢ apk是什么
Android应用程序包。
APK是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。
一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。
(3)android字节码扩展阅读:
通常,用户永远不会看到APK文件,因为Android 通过Google Play或其他应用分发平台在后台处理应用安装。
但是,有许多网站为想要自己手动安装应用的 Android 用户提供直接的APK文件下载。
在这种情况下,用户应该小心APK 文件的来源,因为恶意软件可以在APK文件中分发,就像在 Windows 和.EXE 文件中一样。
APK文件以压缩的.ZIP格式保存,可以通过任何Zip解压缩工具打开。因此,如果要浏览APK文件的内容,可以将文件扩展名重命名为“.zip”并打开文件,也可以直接通过Zip应用程序的打开对话框打开文件。
参考资料来源:网络——APK
㈣ 手机apk是什么,有什么用
就是手机软件的安装包啊。你比如说我下载了一个QQ,那个就是APK。安装就可以使用QQ了。
㈤ 安卓手机系统文件后缀名及其含义
APK是AndroidPackage的缩写,即Android安装包(apk)。APK是类似Symbian
Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。apk文件和sis一样,把android
sdk编译的工程打包成一个安装程序文件,格式为apk。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik
VM
executes的全称,即Android
Dalvik执行程序,并非Java
ME的字节码而是Dalvik字节码
㈥ android1500是什么系统版本
Android系统是Google公司在2008年推出的一款智能移动设备操作系统,通过不断地版本迭代,目前已经推出到Android 11版本了。Android系统广泛应用在手机、平板、电视等各种电子设备上,已经成为全球第一大智能移动操作系统。
下面我们就先看看Android系统的框架:
Android系统框架图
从上图可以看到,Android系统被分为了5层,从上到下依次为:
APP层
顾名思义,这一层就是应用层,无论是系统预置应用还是从应用商店下载安装的应用都运行在这一层,目前大部分的Android开发者都集中在这一层,主要为各种Android设备开发各种应用APP。
Framework层
这一层就是系统框架层,主要运行着系统的各种服务,例如ActivityManagerService,PackageManagerService等,以及对APP提供各种标准接口。对APP开发的人来说需要熟悉各种系统API接口,对系统开发的人来说,需要熟悉系统服务的运行机制。
本地C/C++库和Android虚拟机层
Android 5.0(API 21)之前使用的是Dalvik虚拟机,之后被ART所取代。
ART是Android操作系统的虚拟机运行环境,通过运行虚拟机来执行dex文件。其中,dex文件是专为Android设计的的字节码格式。
C/C++库层就是为虚拟器和Framework层服务运行提供必需的依赖库。
HAL硬件抽象层
硬件抽象层是用来隔离底层硬件的,它对上提供标准的硬件操作接口,让Android系统不用在意底层使用的是什么硬件。
Linux驱动层
Linux驱动层主要和硬件打交道,硬件驱动、进程管理、内存管理、网络管理等功能在这里实现。底层驱动开发人员必需熟悉该层的业务逻辑和原理
㈦ Android中静态库和共享库的区别
简单来讲:
静态库是在连接阶段直接拷贝到代码中使用的,而共享库是由加载器加载到内存,在运行时使用的。
编译出来的静态库(这里指jar包)里每个java文件对应的class文件都单独存在,可以直接导入Eclipse等IDE使用
而编译出来的共享库(jar包),内部是Android字节码Dex格式的文件,一般无法导入Eclipse等IDE使用。Android.mk中由BUILD_JAVA_LIBRARY指定生成共享BUILD_STATIC_JAVA_LIBRARY指定生成静态库。