0
点赞
收藏
分享

微信扫一扫

Android 基础知识3-1项目目录结构


        上一章我们创建了Hello Word项目,代码是由ADT插件自动生成的,我们没有对其进行编码,所以没有对其框架进行分析。其实每一个平台都有自己的结构框架,所以我们对Android项目的结构也进行分析。

Android 基础知识3-1项目目录结构_android

        与一般的Java项目一样,src文件夹是项目的所有包及源文件(.java),res文件夹中则包含了项目中的所有资源,比如:程序图标(drawable)、布局文件(layout)、常量(values)等。

        AndroidMainfest.xml文件则包含了该项目中所有的Activity、Service、Receiver,我们先来打开HelloWord项目中的AndroidMainfest.xml文件,如代码清单所示:

Android 基础知识3-1项目目录结构_android studio_02

         intent-filter 描述了Activity启动的位置和时间。每当一个Activity(或者操作系统)要执行一个操作时,它将创建出一个Intent的对象,这个Intent对象能承载的信息可描述你想做什么,你想处理什么数据,数据的类型,以及一些其他信息。而Android则会和每个Application所暴露的intent-filter的数据进行比较,找到最合适Activity来处理调用者所指定的数据和操作。

AndroidMainfest.xml分析

mainfest

根节点,描述了package中所有的内容

xmlns:android

包含命名空间的声明。xmlns:android="http://schemas.android.com/apk/res/android",使得Android中各种标准属性能在文件中使用,提供了大部分元素中的数据。

package

声明应用程序包

application

包含package中application级别组件声明的根节点。此元素也可包含application的一些全局和默认的属性,如标签、icon、主题、必要的权限等等。一个mainfest能包含零个或一个此元素(不能大于一个)

android:icon

应用程序图标

android:label

应用程序名字

Activity

用来与用户交互的主要工具。Activity是用户打开一个应用程序的初始页面,大部分被使用到的其他页面也由不同的Activity所实现,并声明在另外的Activity标记中。注意,每一个Activity必须有一个<activity>标签对应,无论它给外部使用或是只用于自己的package中。如果一个Activity没有对应的标记,你将不能运行它。另外,为了支持运行时查找Activity,可包含一个或多个<intent-filter>元素来描述Activity所支持的操作。

android:name

应用程序默认启动的Activity

intent-filter

声明了指定的一组组件支持的Intent值,从而形成了IntentFilter。除了能在此元素下指定不同类型的值,属性也能放在这里来描述一个操作所需要的唯一的标签、icon、和其他信息。

action

组件支持的Intent action

category

组件支持的Intent Category。这里指定了应用程序默认启动的Activity

        下面我们看看资源文件中一些常量的定义,如String.xml,代码清单如下所示:

Android 基础知识3-1项目目录结构_应用程序_03

 这个文件很简单,就定义了两个字符串资源,因此,我们可以在代码清单AndroidMainfest.xml中,那怎样使用我们自己定义的这些资源文件呢?首先,通过Context的getResources实例化一个Resources对象,然后通过Resources的getString方法取得指定索引的字符串,代码如下:


Resources resources = this.getApplicationContext().getResources();
String appName = resources.getString(R.string.app_name);
String hello = resources.getString(R.string.hello);


Android 基础知识3-1项目目录结构_android studio_04

         项目中所有使用的常量都可以通过这种XML文件的方式定义,比如,下面是我们通过XMl文件定义一些有关颜色的资源。

Android 基础知识3-1项目目录结构_ide_05

 现在来分析项目中的布局文件(layout),首先打开res -> layout -> main.xml文件,代码如下:

Android 基础知识3-1项目目录结构_android studio_06

  上述代码清单中,有以下几个布局和参数。

1).<LinearLayout>:线性布局,在这个标签中,所有元件都是按照由上往下的排列排成的

2).android:orientation:表示这个介质的版面配置方式,其中“vertical”代表从上到下垂直布局,而“horizontal”代表从左到右水平布局。

3).android:layout_width:定义当前视图在屏幕上所占的宽度,match_parent即填充整个屏幕。

4).android:layout_height:定义当前视图在屏幕上所占的高度,match_parent即填充整个屏幕。

5).wrap_content:随着文字栏位的不同而改变这个视图的宽度和高度。

6).layout_weight:用于给一个线性布局中的多个视图的重要度赋值。所有视图都有layout_weight值,默认为零,即需要显示多大的视图就占据多大的屏幕空间。如果值大于零,则将父视图中的可用空间分割,分割大小具体取决于每一个视图的layout_weight值和该值在当前屏幕布局的整体layout_weight值,以及在其他视图屏幕布局layout_weight值中所占的比例。

Android 基础知识3-1项目目录结构_xml_07

 7).android:text:设置这个TextView控件的文字内容。

 8).@string/hello:这是调用XML中字符串资源。

最后,我们来分析项目中主程序文件MainActivity.java,代码清单如下所示:

Android 基础知识3-1项目目录结构_xml_08

 主程序MainActivity类集成自AppCompatActivity类,重写的onCreate(...)方法。在onCreate方法通过setContentView(R.layout.activity_main)设置Activity要显示的布局文件(\layouyt\activity_main)。

举报

相关推荐

0 条评论