1. src:我们开发的代码
2. gen:开发工具自动创建的,不是开发人员创建的。
R文件:定义各种资源的id,是由编译器在我们放入资源的时候自动生成的,我们以后可以通过id引用资源。(这是由开发工具自动生成、维护的)
3. res:存放资源文件,图片、软件文字、界面等。
drawable-hdpi存放图形类型文件,将图片放到drawable-hdpi下,R文件的drawable方法就会多了一个常量。值对应的就是添加的资源。
drawable-hdpi /drawable-ldpi / drawable-mdpi存放针对频幕分辨率高中低的的图片。为一张图片提供三中分辨率的图片。当运行在Android根据目前手机分辨率自动在这些文件夹中使用对应分辨率的图片。
layout:专门存放软件界面的文件。(类似Java中的jsp)
values:专门存放应用中使用到的一些数据,比如文字(strings.xml)、尺寸、颜色等。
strings.xml包含key和内容,可以使用key拿到内容。主要为了以后使用国际化和公用相同的文字来减少内存的占用。(文字多的话,可以分成多个xml)
只要在res加入资源,都会在R文件中生成对应的代码。
res中也有些文件夹没有给我们创建出来,比如
res/anim/存放定义动画的XM文件。
res/xml/在Activity中使用getResources().getXML()读取该目录下的XML资源文件。
res/raw/该目录用于存放应用使用到的原始文件,如音频文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序的安装包里。为了在程序中使用这些资源,你可以调用getResources().openRawResource(ID),参数ID形式:R.raw.somefilename。
4. assets:也是存放资源文件的,但是不会在R文件中生成资源id
5. default.properties 开发工具使用的。
6. AndroidManifest.xml :项目的清单文件,列出了应用具有的功能。还有列出应用所使用的系统自带的服务.
上图是让应用显示的桌面列表中的。和只能应用在一个activity,不能出现在多个activity。程序的主入口只有一个。
清单文件是在软件安装的时候被操作系统读取的,得到应用中的组件进行注册。
应用的安装与启动过程
1. 安装的过程:.java编译成.class文件,Android的dx将.class转义成.dex文件,然后进行打包操作(把dex文件和资源进行打包成压缩文件,进行签名(系统使用密钥帮我们进行签名)),变成.apk文件,然后我们点击Run As →Android Application,其实内部也是运行adb install指令。
.java → .class → dx → .dex → 打包(签名)→ .apk
Adb install c:\xxx.apk
2. 启动的过程:用户点击图标的时候,相当于激活activity,找到对应的类MainActivity.java,然后对类进行实例化,用户第一打开的时候创建一个进程,然后开一个主线程对类进行实例化。通过配置文件使用反射进行实例化。然后调用oncreate,然后将类放到任务栈中。
创建进程→创建主线程→在主线程实例化Activity→
操作系统把应用有关信息(Context)存放进Activity中,然后调用onCreate()