Android-目录结构及反编译

Android-目录结构及反编译
一 安装的app的目录
系统app: system/app
用户app: data/app


二 常用文件夹功能
Android 文件夹:引用的framework类库


src: 源代码文件


gen: 自动生成的文件,删除还是会自动生成,对应res里面的文件夹,res资源的映射


assets:  使用的资源文件,例如mp3文件,通过具体的路径访问,是程序下的一个普通的文件夹
速度快点,建议使用assert,


res :应用程序资源包
图片资源
dpi分辨率  一英寸范围有多少个点  
应用程序图标使用下面的文件夹
drawable-hdpi   240dpi,比较高的分辨率   
drawable-ldpi    120dpi,  较小的分辨率
drawable-mdpi  160dpi   中等的分辨率
通用的,不区分的使用下面的文件夹
drawable


layout:界面布局文件


value:值,例如字符串,将文本写到字符串变量里,用变量代替字符串,用@引用的标识符,如@string,则value里面
就有对应string文件,文件定义了string的值


AndroidManifest.xml:全局配置文件,类库,组件,发布信息等


default.properties:java的配置文件,例如要求的运行环境


proguard.efg:配置文件,在2.2以上,配置应用程序的混淆信息,防止反编译apk


doc:javadoc文件


menu:菜单


raw:原生程序,图片,视频,在R.java中生成相应的ID,可以通过R.java文件访问
注意 raw文件夹不参与编译


anim:动画


xml:额外的xml文件


二 apk结构
META-INF签名配置信息
res 资源文件
AndroidManifest.xml全局配置文件
classes.dex虚拟机可执行文件
resources.arsc资源索引文件,为了应用程序更快的查找到资源


三 反编译dex
方法一
dx工具:将class文件变为dex文件,即虚拟机可执行的二进制文件
aapt:将整个项目打包为apk
dexdump:反编译apk文件,将dexdump目录加到系统环境变量
上面三个文件放在同一目录,并且该目录加入环境变量
得到的文件所用的语言为smail,但是这种反编译不易读
反编译需要编译res和xml


主要采用下面的方法二
反编译用到的命令
前提需要将两个工具加入path变量,或者在工具的相应目录下执行工具
apktool阶段:apktool d ***.apk ***(文件夹的名称,自动生成)
dex2jar阶段:dex2jar classes.dex ***.jar(不需要建立,会自动生成)


过程:dex->jar包->calss
工具需要dex2jar和XJad
1 apktool阶段,使用命令即可
2 将apk包解压,使用dex2jar将classes.dex->***.jar
3 使用XJad将***.jar反编译为java源文件
4 将反编译的java源文件夹改名为src,放入apktool阶段生成的文件夹即可


反编译的常用思想及方法
因为apk是一个压缩包,所以反编译就是反编译dalvik二进制文件和压缩的xml文件
常用的方法就是apktool+dex2jar+xjad

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。