中易网

android 的apk包有什么组成

答案:1  悬赏:20  
解决时间 2021-01-09 06:30
android 的apk包有什么组成
最佳答案
1.APK文件简介
APK是AndroidPackage的缩写,即即Androidapplicationpackage文件或Android安装包。每个要安装到Android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk。APK文件是用专业软件eclipse编译生成的文件包,其中包含了应用的二进制代码、资源、配置文件等。通过将APK文件直接传到Android手机中执行即可安装。APK文件其实就是zip格式,但其扩展名被改为apk,用解压软件可以直接打开。通过WinRAR或UnZip解压后,你会看到有几个文件和文件夹。一个典型的APK文件通常有下列内容组成:AndroidManifest.xml程序全局配置文件classes.dexDalvik字节码
resources.arsc
编译后的二进制资源文件
META-INF\该目录下存放的是签名信息res\
该目录存放资源文件
assets\该目录可以存放一些配置文件
下面对这些文件和目录做些基本的注释和介绍。•AndroidManifest.xml
该文件是每个应用程序都必须定义和包含的文件,它描述了应用程序的名字、版本、权限、引用的库文件等等信息。需要解包后才能加以阅读。
•classes.dex文件
classes.dex是java源码编译后生成的java字节码文件。dex是DalvikVMexecutes的全称,即AndroidDalvik执行程序,并非JavaME的字节码而是Dalvik字节码。•resources.arsc
编译后的二进制资源文件。•META-INF目录
META-INF目录下存放的是签名信息,用来保证apk包的完整性和系统的安全。在eclipse编译生成一个apk包时,会对所有要打包的文件做一个校验计算,并把计算结果放在META-INF目录下。这就保证了apk包里的文件不能被随意替换。比如拿到一个apk包后,如果想要替换里面的一幅图片,一段代码,或一段版权信息,想直接解压缩、替换再重新打包,基本是不可能的。如此一来就给病毒感染
和恶意修改增加了难度,有助于保护系统的安全。•res目录
res目录存放资源文件。包括图片,字符串等等。解包后,几乎所有可能的修改和编辑工作基本都在这里。•assets目录
assets目录可以存放一些配置文件,这些文件的内容在程序运行过程中可以通过相关的API获得。
2.APK文件的解包和打包
APK文件是用专业软件eclipse编译生成的文件包。在网上可以找到许多软件来对APK的内容进行反编译,例如:可以通过AXMLPrinter2工具和命令:java-jarAXMLPrinter2.jarAndroidManifest.xml解开在apk中的AndroidManifest.xml。最近,业界有一个功能强大的解包打包工具包apktool,可以在Windows下用来方便快速地对APK文件进行解包和打包,给修改和编辑工作带来许多方便。下面来介绍它的使用。
1)APKtool软件包
APKtool软件包有2个程序组成:apktool.jar和aapt.exe另外提供一个批处理文件:apktool.bat,其内容为:java-jar"%~dp0\apktool.jar"%1%2%3%4%5%6%7%8%9
运行apktools.jar需要java环境(1.6.0版本以上)。apktool.jar用于解包,apktool.jar和aapt.exe联合用于打包。2)APK文件的解包
下面以解开Contacts.apk为例。首先把Contacts.apk复制到当前工作目录下(例:Test)。在DOS下打入命令apktooldContacts.apkABC
这里“d”表示要解码。Contacts.apk是要解包的APK文件。ABC是子目录名。所有解包的文件都会放在这个子目录内。3)APK文件的打包在DOS下打入命令
apktoolbABCNew-Contacts.apk这里“b”表示要打包
ABC是子目录名,是解包时产生的子目录,用来存放所有解包后的和修改后的文件。
New-Contacts.apk是打包后产生的新的APK文件。4)Framework框架文件
在解开APK文件时,apktool需要框架文件(framework-res.apk)来解码和打包。Apktool已经包含了标准的框架,所以在大多数APK文件的解包时,不需要另外提供框架文件。但是,某些制造商使用了他们自己的框架文件,为了解包,就不得不从手机中把框架文件(framework-res.apk)提取出来,然后安装到计算机。安装命令是:
apktoolifframework-res.apk
安装后就会得到:~\apktool\framework\1.apk5)解包、解包和签名批处理
在实际使用时,可能对多个APK文件进行处理。方便的做法是写成批处理文件。打包和签名可以一次完成。

解包批处理命令:
for%%iin(*.apk)dojava-jarapktool.jard%%i_%%i&&move_%%iModifying_Files&©%%iBackuped_Raw_Files&&@echoFile[%%i]unpackingprocessiscompleted!
打包和签名批处理命令:
for/d%%iin(*)docd..&&java-jarapktool.jarbModifying_Files\%%i&&
java
-jar
signapk.jar
testkey.x509.pem
testkey.pk8
Modifying_Files\%%i\dist\*.apk%%i&&ren%%iNew%%i&&moveNew%%iModified_Signed_Files&&@echo%%iCompleterepackingandSigning
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
steam买的巫师2老是自动退出是怎么回事
电容传递函数是个积分器,为什么通高频
烟台诚信旅行社(福山营业部)地址好找么,我有
发泡模具的发泡方法
有一句话叫有女如此,后面是什么
抽脂后为什么感觉手臂还是没瘦
BL快穿包综穿和综漫也可以
人寿交三年钱一年2ooo元六年反多少钱
c++数据结构队列问题,帮忙写一下代码,不会
Jefferson Davis和林肯政权的不同
德国paulmann灯具在中国可以正常使用吗
汽车云镜有用吗
有什么是原字开头的电视剧
六月去烟台必去要看的景点是那个,好有哪些好
费问于本合同生效后及每年度的第一个月内支付
推荐资讯
手表维修要注意哪些
异地社保如何转入当地?
vb代码中的空格很重要吗?
石角镇中心小学(清远清城区)地址在什么地方,
乌石小学(清远英德市)地址好找么,我有些事要
巴西龟深水怎么养
下联:世外有桃源,上联是什么
坐姿夹胸器和坐姿推胸器都锻炼胸部什么部分?
急急急!求100到999之间所有的水仙花数
宇宙照相馆地址在什么地方,我要处理点事
在循环小数零点abcac的循环中,小数部分
被人们称为学霸,高考专业户的32岁的吴柳善,20
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?