0
点赞
收藏
分享

微信扫一扫

Android项目结构、编译与打包流程

古月无语 2022-04-05 阅读 102

#.Android项目结构

###.总的结构

###. /src/main下的结构

res: 存放各类资源

    res/drawable:理论上对应低分辨率图片,但一般此文件夹并不放图片文件,图片文件放在下面两个文件夹中。

                            一般把自定义的xml图形文件放在此文件夹中。

    res/drawable-xhdpi:图片资源,对应高分辨率。高分辨率屏幕优先从此取资源。

    res/drawable-xxhdpi:图片资源,对应超高分辨率。高分辨率屏幕优先从此取资源

#.Android编译打包流程

    apk打包过程,无非是把一大堆物料  分别进行处理、捆绑,最后绑成一个大包的过程。(实际上又能有哪些物料呢,不过是资源文件和一堆命令而已。)

    apk安装的过程,又是把这个包里 的那些处理过的东西 重新解开,让系统取出需要的东西,做相应处理。在程序执行过程中,用到啥就去调取啥,无论是资源文件 还是 那一坨坨存着指令的文件。

    因此,打包过程就是那一堆处理过程的集合。

##.基本流程示意图

流程简要概括:

1.资源文件经aapt工具编译生成[R.java]和[编译后资源文件],.aidl文件经aidl工具编译生成对应的.java接口。然后这两部生成的.java文件和工程源代码.java文件,经java编译器编译成.class文件。

        (.aidl文件的作用实际上是生成对应的接口代码文件,例如生成.java接口的代码。这样可以使用同一个.aidl文件在客户端/服务端生成配套的接口代码。)

2.上面的.class文件与第三方库中的.class文件,经dex工具处理成.dex文件。

3.上面的.dex文件与步骤1中生成的[编译后资源文件],再加上其它剩余文件,经apk打包工具,打成apk包。

4.以上apk包经签名工具签名,生成 [签名后apk包]。

5.经对齐工具做对齐处理,生成 [签名对齐后的apk包],也就是最终包。

##.详细流程示意图

参考剪藏:

     一张图看懂Android编译流程 - 简书

     Android编译流程和Gradle使用 - 简书

(声明:部分图片获取自网络,这里只是用于学习分享,侵删!)

举报

相关推荐

0 条评论