Android 软件安装程序(*.apk)的结构分析、反编译

本文详细介绍了Android软件安装程序(*.apk)的内部结构,包括如何解压和反编译apk文件,以及如何进行汉化操作。文中还提供了具体示例和相关工具的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

1/ apk文件结构: 

Apk文件: 

Android application package文件。每个要安装到android平台的应用都要被编译打包为一个单独的文件,后缀名为.apk,其中包含了应用的二进制代码、资源、配置文件等。 

apk文件实际是一个zip压缩包,可以通过解压缩工具解开。可以用zip解开*.apk文件,下面是一个helloword的apk示例文件 

|– AndroidManifest.xml   
|– META-INF   
|   |– CERT.RSA   
|   |– CERT.SF   
|   `– MANIFEST.MF   
|– classes.dex   
|– res   
|   |– drawable   
|   |   `– icon.png   
|   `– layout   
|       `– main.xml   
`– resources.arsc 

2/ apk文件解压后反编译: 

2.1 图片等多媒体文件:没有编译,无需反编译。 

2.2 layout等二进制xml文件:使用AXMLPrinter将其转换为可读的xml文件:java -jar AXMLPrinter2.jar main.xml > new_main.xml 
工具下载地址:http://code.google.com/p/android4me/downloads/list 

2.3 class文件反编译: 
Android模拟器中提供了一个dex文件的反编译工具,dexdump。用法为首先启动Android模拟器,把要查看的dex文件用adb push上传的模拟器中,然后通过adb shell登录,找到要查看的dex文件,执行dexdump xxx.dex。 

目前在网上能找到的另一个dex文件的反编译工具是Dedexer。Dedexer可以读取dex格式的文件,生成一种类似于汇编语言的输出。这种输出与jasmin[ ]的输出相似,但包含的是Dalvik的字节码。 
另,这里有一篇更好的文章:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值