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

导读:本篇文章讲解 Android 基础知识3-1项目目录结构,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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

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

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

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

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

         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项目目录结构

 这个文件很简单,就定义了两个字符串资源,因此,我们可以在代码清单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项目目录结构

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

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

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

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

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

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项目目录结构

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/119117.html

(0)
seven_的头像seven_bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!