博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android项目的目录结构与安装及启动过程分析
阅读量:4155 次
发布时间:2019-05-25

本文共 3529 字,大约阅读时间需要 11 分钟。

    Android的第一应用我们已经创建完毕,接下来我们项目的目录机构与安装及启动过程作一个分析。目录结构如下:

一、Android项目的目录结构

1、src目录存放的是Java的源文件。

package com.cooper.app;import android.app.Activity;import android.os.Bundle;public class HelloWorldActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }}

2、gen目录存放的是由开发工具自动生成的文件。该目录下的R.java用于记录各种资源文件件的ID,将资源文件放入之后该文件自动更行,不需要开发人员进行维护,同时开发人员也不能修改,通过名称进行匹配,名称必须唯一。

/* AUTO-GENERATED FILE.  DO NOT MODIFY. * * This class was automatically generated by the * aapt tool from the resource data it found.  It * should not be modified by hand. */package com.cooper.app;public final class R {    public static final class attr {    }    public static final class drawable {        public static final int ic_launcher=0x7f020000;    }    public static final class layout {        public static final int main=0x7f030000;    }    public static final class string {        public static final int app_name=0x7f040001;        public static final int hello=0x7f040000;    }}

3、assets目录用于存放资源文件,但是不会在R.java文件中存放资源ID。如果要访问资源文件,可以通过file:///android_asset/xxx.xx。

4、res目录存放资源文件例如图片、文字等。

5、res/drawable目录用于存放图片资源,由于不同手机的屏幕大小不同,drawable-hdpi存放高分辨率的图片,drawable-ldpi存放低分辨率的图片,drawable-mdpi存放中分辨率的图片。

6、res/layout目录用于存放软件界面的文件,android应用通过XML定义软件的界面。

main.xml:

采用LinearLayout进行布局,布局方式有LinearLayout(线性布局,该布局可以纵向、横向布局,都显示的像一条线)、RelativeLayout(相对布局)、TableLayout(表格布局)、FrameLayout(帧布局)

xmlns:android 命名空间,用于顶级元素必须申明命名空间

android:orientation="vertical"  进行纵向布局,垂直摆放

android:layout_width="fill_parent" 指定宽度,撑满整个父元素,也可以通过数字制定宽度,但是必须带单位,单位有“px”、“dp”等

android:layout_height="fill_parent"指定高度,撑满整个父元素。

TextView 用于显示文字的组件

android:layout_width="fill_parent"指定宽度

android:layout_height="wrap_content" 指定高度。文字内容有多少,就显示多高
android:text="@string/hello"  显示文字

7、res/values目录用于存放所使用的数据,例如文字、尺寸、颜色。目的是为了实现国际化,还有就是为了减小内存的占用。也可以建多个文件,选中目录右键“New”-->"other"-->"Android"-->"Android XML Values File"

strings.xml:

Hello World, HelloWorldActivity!
HelloWorld应用

8、res/anim 存放定义动画效果的XML文件。

9、res/xml 用于存放Activity中的使用的文件,通过getResources().getXML读取该目录下的XML文件。

10、res/raw该目录用于存放应用中使用的原始文件。如音效文件等。这些数据不会被编译,他们被直接加入到程序安装包里,为了在程序中使用这些资源你可以通过getResourecs().open/RawResources(ID),参数ID形式R.raw.somefilename。

11、AndroidManifest.xml 这个文件列出了应用程序所提供的功能,是清单文件,以后开发好的各种组件(Activity、ContentProvider、BroadcastRecevier、Server)需要在该文件中进行配置,如果应用中使用到了系统内置的应用(电话服务、互联网服务、短信服务)你还要在该文件中声明使用权限。

 

xmlns:android  命名空间

package  包名,在应用中是唯一的

android:versionCode 软件版本

android:versionName 软件版本名称

application 应用

android:icon 应用图标,"@drawable/ic_launcher"这个表达式的意思是访问R.java文件中drawable内部类里面的常量所指的资源作为应用的图标

activity 代表窗口,一个应用可以有多个窗口。

android:label 窗口的标题

android:name=".HelloWorldActivity"  代表这个窗口所调用的类,“.”代表当前包名下,这种组件必须放在应用的包或子包下

intent-filter 内部过滤器

这两句代码赋予了特殊的含义,代表的意思是将这个Activity窗口作为应用的主窗口(打开应用时,会显示这个窗口)并且会显示到应用列表中,他们配合使用,并且只能在一个Activity中使用

android:minSdkVersion="8" 代表软件兼容的最低版本

注意:这些配置文件在软件安装的时候被读取。

12、default(project).properties 该文件用于定义项目环境信息,一般是不用修改此文件。

二、Android应用的安装过程

.java-->.class-->.dex-->打包(签名)-->.apk-->运行

Java编译器将java文件编译成字节码文件“.class”,android通过sdk带的dx工具把所有“.class”文件生成一个“.dex”文件,然后进行打包,采用默认签名进行签名,生成apk文件,最后运行应用。

三、Android应用的启动过程

点击图标创建进程,然后创建线程,在主线程中实例话Activity,操作系统会把应用有关的信息(Context)存放在Activity中,然后调用onCaeare()方法,进行显示资源文件。

你可能感兴趣的文章
一个软件工程师在北京的反省
查看>>
被“无聊”催出来公交免费Wi-Fi
查看>>
周鸿祎内部邮件:不要盲目把360看成巨头
查看>>
移动的帝国:日本移动互联网兴衰启示录
查看>>
开源的伟大和中国无关
查看>>
扶不起的阿斗 国产OS为何没出息?
查看>>
称霸全球游戏,腾讯帝国的困局之处
查看>>
万万没想到百度在新加坡有一支伏兵
查看>>
百度与腾讯,同是连接,两种未来
查看>>
与世界的距离 尼葛洛庞蒂对话启示
查看>>
尼葛洛庞帝,一个反硅谷的创业领袖
查看>>
2014中国互联网大会将于8月26日举行
查看>>
从三星的衰败谈当下智能手机产业
查看>>
有关小米4发布会的感想
查看>>
毕业季:小米的成人礼
查看>>
资本运作下的腾讯和帝国梦想
查看>>
中国接入互联网20年:网速终于“熬成”4M
查看>>
移动搜索,下一个互联网巨头肉搏之地
查看>>
智能手机市场之争,六个关键词主导
查看>>
李彦宏:未来五年语音图片搜索将超过文字
查看>>