下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

ROM开发 | APk简介

作者:课课家教育     来源: http://www.kokojia.com点击数:883发布时间: 2016-11-28 14:00:25

标签: 安卓APKROM开发移动开发

  如果是刚入门rom开发的朋友,要进行代码的修改可不是那么简单的一件事情,首先是要对ROM相关知识进行一个系统认识,在前面的文章中已经是给大家进行官方ROM文件夹的一个认识,了解清楚了那些文件夹是放驱动。配置信息,哪些文件夹是放系统文件的,相信大家都是比较清楚的。本文将继续为大家介绍安卓相关的知识----APK

ROM开发 | APk简介_安卓APK_ROM开发_移动开发_课课家

  我们经常看到的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的命令,当你对一个系统的基础熟悉之后,那么开发的学习就不用那么费劲了。

赞(21)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程