Android项目结构分析
一、文件系统结构
1、项目配置清单文件夹 manifests
每个Android项目都有一个名为AndroidManifest.xml的文件,包含了Android系统运行前必须掌握的相关信息,如应用程序名称、图标、应用程序的包名、组件注册信息和权限配置等。
2、源程序文件夹Java
Android以Java作为编程语言,因此其程序文件以.java作为扩展名。Java程序文件位于src文件夹的某个包内。
3、资源程序文件夹res
在Android项目中,有字符串、位图、布局等资源,可以将其划分为三种类型:XML文件、位图(图像)文件、raw(声音)文件。
在Android项目中,有两个用于存放资源文件的文件夹,分别为res和assets。其中,res文件夹内的资源文件最终被打包到编译后的.java文件中,res文件夹内不支持深度的子目录;assets文件夹中的资源文件不会被编译,而是直接打包到应用中,assets文件夹支持任意深度的子目录。res文件夹内的资源文件可以通过R资源类访问,而assets文件夹内的资源文件则不能。
①布局文件夹res/layout
布局文件夹res/layout用来存放扩展名为.xml的布局文件,由某种布局管理器管理的若干控件对象组成,供Activity组件使用。
②值文件夹res/values
值文件夹res/values里的strings.xml是非常重要的文件,通常存放着布局文件中控件对象的属性值。
③软件设计的国际化
国际化是指在软件设计过程中将特定语言及区域脱钩的过程,当软件移植到不同的语言及区域时,软件本身不需要做任何的修改。
Android SDK并没有提供给专门的API来实现国际化,而是通过对不同的资源文件进行不同的命名来达到国际化的目的 。
比如控件值来源于文件res/values/strings.xml,通过键名hello来引用,就是符合国际化的做法。如在布局文件中,定义文本框控件的代码:
<TextView ...android:text="@string/hello" />
如果不通过引用字符串变量的方式,而是直接把字符串常量写在TextView控件的android:text属性后,这种写法对程序运行没有任何影响,只是不符合国际化的做法,其代码如下:
<TextView ...android:text="字符串常量" />
④图像文件夹res/drawable
每个Android应用项目都有一个图标,默认使用的图标文件是ic_launcher是一个绿色的机器人,文件格式是.xml,存放在文件夹res/mipmap里。
更改Android应用默认图标的两种方法:
(1)右击mipmap→New→Vector Asset→Clip Art。
(2)先将.png格式的文件,复制到文件夹res/drawable中,然后通过R文件引用该图像文件。
⑤声音文件夹res/raw
项目使用的音频文件,通常存放在res/raw文件夹里。
二、创建多模块
在Android Studio开发中,有时希望把多个相关联的应用集合在一个项目里,使用Android Studio提供的多模块功能可以做到这一点。
在一个已经创建好的项目里,创建一个新模块的操作方法是:File→New→New Module。创建New Module的方法与创建项目的步骤基本相同,只是New Module的名称取代了项目名称。
创建项目时,自动生成的app实质上就是一个Module,它会调用后来创建的Module。在工具栏里,可以选择不同的Module单独进行调试和安装。