安 卓 逆 向 入 门 笔 记一 、 环 境 配 置安 装 java jdk, 并 设 置 好 环 境 变 量
测 试 : java -version二 、 初 识 APK、 Dalvik字 节 码 以 及 Smali1
apk是 什 么
apk实 质 上 是 一 个 zip压 缩 包 , 将 apk后 缀 修 改 为 zip, 解 压 之 后 可 以 看 到 其 内 部 结 构 :2
apk 的 组 成assets:assets: 资 源 目 录 1, assets 和 res 都 是 资 源 目 录 但 有 所 区 别 :res 目 录 下 的 资 源 文 件 在 编 译 时 会 自 动 生 成 索 引 文 件 ( R
java) , 在 Java代 码 中 勇 R
yyy来 引 用 ; 而 asset目 录 下 的 资 源 文 件 不 需 要 生 成 索 引 , 在 Java 代 码 中 需 要 用 AssetManager来 访 问 ;一 般 来 说 , 除 了 音 频 和 视 频 资 源 ( 需 要 放 在 raw或 asset下 ) , 使 用 Java开 发 的 Android工 程 使 用 到 的 资 源 文 件 都会 放 在 res下 ; 使 用 C++游 戏 引 擎 ( 或 使 用 Lua Unity3D等 ) 的 资 源 文 件 均 需 要 放 在 assets 下
lib:lib: so 库 存 放 位 置 , 一 般 由 NDK编 译 得 到 , 常 见 于 使 用 游 戏 引 擎 或 JNI native调用 的 工 程 中META-INF:META-INF: 存 放 工 程 一 些属性文 件 , 例如 Manifest
MFres:res: 资 源 目 录 2,AndroidManifest
xml:AndroidManife