android APK反编译入门

本文介绍了Android APK的内部结构,包括Android应用程序的文件结构、打包过程。重点讲解了APK的反编译流程,包括使用Apktool、dex2jar和JD-GUI等工具进行资源文件和可执行文件的反编译,帮助读者了解APK的逆向工程。

1.     APK的内部结构

APK的全称是AndroidPackage,它是Android安装包。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ME的字节码而是Dalvik字节码。

下面以HelloWorld为例讲解Android应用程序的文件结构及打包过程。

1.1    Android应用程序文件结构

现在编写一个HelloWorld应用程序已经变得非常简单的,在eclipse集成开发环境中只需要点击下一步基本就可以完成此应用程序。图1.1即为由eclipse集成开发环境生成的HelloWorld应用程序的文件结构图。

图1.1  HelloWorld文件结构图

其中,

Src  java源文件目录

Gen  自动生成的目录,其中包括了著名的R.java

Android 2.3.3  该应用程序依赖的android SDK包。

Assets  存放原生文件,这个目录保存的文件可以打包在程序里。和res的不同点是,android不为assets下的文件生成ID,如果使用assets下的文件,需要指定文件的路径和文件名。

Bin  Java编译输出的路径

Res  存放程序所需要的资源文件,也就是非Java的文件。常见的目录有,

(1)res/animator/ :XML文件,定义动画属性

(2)res/anim/ :XML文件,它们被编译进逐帧动画(frame by frame animation)或补间动画(tweened animation)对象

(3)res/color/:XML文件,定义颜色状态的列表

(4)res/layout/:存放被编译为屏幕布局(或屏幕的一部分)的XML文件

(5)res/menu/:XML文件,用来定义应用的菜单

(6)res/drawable/:存放图片文件,如.png, .jpg, .gif等。放在这里的图像资源可能会被aapt(android assert packaging tool,android资源打包工具)自动地进行无损压缩优化。如果你不想图片被压缩改变,请把图像文件放

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值