如果是刚入门rom开发的朋友,要进行代码的修改可不是那么简单的一件事情,首先是要对ROM相关知识进行一个系统认识,在前面的文章中已经是给大家进行官方ROM文件夹的一个认识,了解清楚了那些文件夹是放驱动。配置信息,哪些文件夹是放系统文件的,相信大家都是比较清楚的。本文将继续为大家介绍安卓相关的知识----APK
我们经常看到的APK是AndroidPackage的缩写,也就是Android安装包。APK是类似SymbianSis或Sisx的文件格式。用户是可以通过将APK文件直接传到Android模拟器或Android手机中执行即可安装,让用户安装非常的方便。
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVMexecutes的全称,需要知道的是,也就是AndroidDalvik执行程序,并非javaME的字节码而是Dalvik字节码。
我们会看到一个APK文件(压缩文件打开可以看到)结构为:
mete-INF\\Jar文件中常可以看到
res\\存放资源文件的目录
AndroidManifest.XML程序全局配置文件
classes.dexDalvik字节码
resources.arsc编译后的二进制资源文件
总结下我们发现Android在运行一个程序时首先需要UnZip,然后类似Symbian那样直接,和WindowsMobile中的PE文件有区别,这样做对于程序的保密性和可靠性不是很高,通过dexdump命令可以反编译,但这样做符合发展规律,微软的WindowsGadgets或者说WPF实际上它也是采用了这种构架方式。
在Android平台中dalvikvm的执行文件,它是被打包为apk格式,最终运行时加载器会解压然后获取编译后的androidmanifest.xml文件中的permission分支相关的安全访问,但这样的话仍然存在很多安全的一个限制,如果你是将apk文件传到/system/app文件夹下会发现执行是不受限制的。最终我们平时安装的文件可能不是这个文件夹,你会发现而在androidrom中系统的apk文件默认会放入这个文件夹,并且它们拥有着root的权限。
ODEX的介绍
细心的网友可能发现Android的ROM中有很多odex文件,相对于APK中的dex文件而言这个odex有什么作用呢?细心的你会发现文件名时一一对应的,同时那些对应的apk文件中并没有dex文件。这样做的目的在一定程度上是可以使其厂商保证一定的反盗版,因为没有dex文件的apk是无法正常安装的,而厂商一般是直接将odex和不完整的apk文件放到手机rom固化到/system/bin文件夹中可以让一般用户无法正常导出使用,这一点我们作为用户可以了解一下。
APK生成odex文件方法如下:
1.编译开源GIT上的build/tools/dexpreopt/dexopt-wrapper这个,使用dexopt-wrapper即可,操作步骤
2.将dexopt-wrapper放到/data/local目录中,使用adbshell执行Linux命令行,使用cd命令进入/data/local目录,cd/data/local./dexopt-wrapperandroid123.apkandroid123.odex
通过文中你会发现,Android它是和linux分不开的,在APK生成odex文件方法中也是需要用到linux的命令,当你对一个系统的基础熟悉之后,那么开发的学习就不用那么费劲了。
¥398.00
¥199.00
¥179.00
¥98.00