assets和res(raw)的区别,如何选择?
raw通过R直接访问;asserts通过路径访问,且方便建立子文件夹,参见AssetManager。
内置一些mp3,建议在asset下,不要增加R映射额外开销,且更灵活。
应用程序目录结构介绍-对比生成的apk安装包的路径。res资源包,类似rar压缩包要先解压才正常访问。
首选asset。文件特别小,文件不多的时候用res。
应用程序目录结构介绍:
src
gen
asserts
res
drawable
layout
values
xml
AndroidManifest.xml
多了一个proguard.cfg
反编译apk:
android.jar包已经在虚拟机或者真机的ROM中,不用每次装。
META-INF-一下签名配置。
res-类似,无内容的没有。
AndroidManifest.xml-一样的。
classes.dex-在虚拟机跑的可执行二进制文件。
resources.arsc-资源是索引文件。
文件对应和转换:
.java->(JDK)->.class->(DX)->.dex
aapt工具将一堆打包成apk
各工具在android sdk,platform-tools下:aapt.exe,aidl.exe,dx.bat(dx.jar)
认识apk文件:
dex
xml压缩
(思路就是要反编译这两块)
看两个演示:
case1,:直接通过apktool反编译成smali
case2,先dex然后xml:
dex2jar
xjad-对比一下java
axmlprinter2
反编译dex文件:SDK提供的工具dexdump
SDK tools下也是工具。
dex反编译后是什么文件?
命令:dexdump -d SundyAndroidDemo/classes.dex > SundyAndroidDemo/classes.txt
(>写到一个文件,>>追加到一个文件)