一、安卓目录结构
其中,详细解释下安卓Res目录:放各种分辨率的图片和动画xml、布局xml、资源描述xml和任意xml
其中,将不同的图片放到不同的drawable目录下
分辨率的匹配规则如下:
drawable-mdpi 320 * 480
drawable-hdpi 480*800
drawable-xhdpi 720 * 1280
drawable-xxhdpi 1080 * 1920
drawable-xxxhdpi 1080+
不同分辨率的手机会加载不同目录下的资源,如果手机的分辨不是这个,android会找最近的一个文件夹。
二、安卓ANT打包流程
安卓用ANT手动打包,一般会经过以下几个步骤:
1.用aapt(Android Asset Packaging Tool)命令生成R.java文件
2.用aidl(Android Interface Definition Language)命令生成相应java文件
3.用javac(Java Compiler)命令编译java源文件生成class文件
4.用dx.bat将class文件、第三方Jar包和第三方class文件转换成classes.dex文件
5.用aapt命令生成资源包文件resources.ap_
6.用apkbuilder.bat打包资源和classes.dex文件,生成unsigned.apk
7.用jarsinger命令对apk认证,生成signed.apk
为了便于理解和记忆,下面来用一张流程图来说明以上的几个过程:
详情见https://www.shuzhiduo.com/A/amd0yvvWzg/
补充: 安卓class、jar、dex的关系:dex与dex能合并到新的dex,dex包含jar和class,jar包含class
三、Activity活动
四、Dex文件
Android的虚拟机是可以直接运行dex文件的,dex文件可以看做是Class文件的集合,但也可以认为是一个巨型的Class。前者主要说明Dex文件的来源,后者也描述了Dex的本质。
细致来说,Dex文件是通过解析、翻译、合并Class得到的Android可执行文件,由于Java虚拟机的限制,一个Dex文件也类似于一个Class文件,在方法数、常量索引数上通过short类型表示,这就是为什么方法数、索引数限制为64K的根本原因了,所以,Android构建过程中经常遇到的方法数超过65536的问题,拆分Dex是一个比较好的解决方法。
五、ALP的基本目录结构
Unity版本已经支持Android Library Project格式以及.aar格式的第三方android sdk。
ALP的基本目录结构如下:
./AndroidManifest.xml (必须)
./Project.properties (必须)
./libs
–/.jar
–/.so
而.aar格式是ALP的一个压缩格式。
ALP举例:
其中,libs里的内容:
六、.aar文件
.aar介绍:Android Archive(AAR)插件是捆绑包,其中包括已编译的Java和本机(C / C ++)代码,资源以及Android Manifest。.aar文件本身是一个zip存档,其中包含所有资产。
.aar举例:
将预编译的Android库项目导入到Assets / Plugins / Android文件夹中。预编译意味着所有.java文件必须先被编译为.jar文件,并放置在Android Studio项目的bin /或libs /文件夹中,然后才能导入Unity。从这些文件夹中,AndroidManifest.xml在构建项目时自动与主清单文件合并。
Unity将Assets / Plugins / Android的任何子文件夹视为潜在的Android库。如果子文件夹包含AndroidManifest.xml文件,而project.properties文件包含字符串,则将其识别为Android库android.library=true。