Android应用程序及其主要结构

在建立应用程序的过程中,ADT会自动建立一些目录和文件,这些目录和文件有其固定的作用,有的(例如配置文件AndroidManifest.xml )允许修改,有的(如R.java )不能修改。
1,Activity:每个Activity须继承自Activity并实现其自身的OnCreate()方法,一般在这里要添加widget组件,实现应用界面和用户交互。
2,Intent:Android使用Intent用来从一个画面跳另一个画面,Intent是用来描述一个程序想要做些什么事情。在Intent的数据结构中有两个很重要的部分:动作(action)及对数据产生反应(data to act upon)。
3,Service:如果Android应用程序并不需要显示Activity画面但却需要长时间运行(如播放背景音乐等),就要具备Service功能。
4,Content Provider:Content Provider(使用Provider名称)所进行的动作是让使用者可以存储信息或文件,使用Content Provider的函数就可以让其他的程序获得、保存、检索信息。
5,源码文件夹src和gen\R.java:工程中的src文件夹存放诸如Activity等java源码,其内部结构根据用户所声明的包(即在新建工程时指定的“Package Name”)自动组织。
6,gen目录:用来保存ADT自动生成的java文件,例如R.java
7,R.java:包含对drawable、layout和values目录内的资源的引用指针。Android程序能够直接通过R类引用目录中的资源,R.java文件不能手工修改,如果向资源目录中增加或删除了资源文件,则需要在工程名称上右击,选择Refresh来更新R.java文件中的代码R类包含的几个内部类,分别与资源类型相对应,资源ID便保存在这些内部类中,例如子类drawable表示图像资源,内部的静态变量icon表示资源名称。一般情况下,资源名称与资源文件名相同。
8,引用资源有两种情况:一种是在代码中引用资源;另一种是在资源中引用资源
代码中引用资源需要使用资源的ID,可以通过[R.resource_type.resource_name]或[android.R.resource_type.resource_name]获取资源ID,其中的resource_type代表资源类型,也就是R类中的内部类名称;resource_name代表资源名称,对应资源的文件名或在XML文件中定义的资源名称属性
资源中引用资源的引用格式:@ [package:]type:name
@表示对资源的引用,package是包名称,如果在相同的包,package则可以省略
9,Android.jar文件是支持该应用程序运行的JAR包,同时它也是Android SDK架构中的“Android RunTime”层中与Dalvik虚拟机同处一层的Android Core Library
10,Android.jar与asserts:asserts存放项目相关的资源文件,例如文本文件、媒体文件等。
11,资源目录res:res目录下存放资源文件,常见的资源有图片、声音、动画、布局文件等。string.xml一般位于工程res文件夹下的values子文件夹下。如果需要在Activity中显示相应的字符串变量,可以在strings.xml文件中添加相应的resources,并在其中添string和/string部分。main.xml是对Activity中组件进行布局的系统默认生成的文件。注意:XML布局和资源文件并不包含在Activity的Java源码中,各种资源文件由系统自动生成的R.java文件来管理。如果需要引用相应的布局,可在Java源码中通过setViewContent(XML布局文件名称)将其引用。在一个工程中,可以为不同的Activity指定不同的XML布局文件 。其子目录drawable目录用来保存图像文件。layout目录用来保存与用户界面相关的布局文件。在layout目录生成了mail.xml文件,用于描述用户界面。valuse目录保存文件颜色、风格、主题和字符串等。
12,main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

第7行的代码说明在界面中使用TextView控件,TextView控件主要用来显示字符串文本第10行代码说明TextView控件需要显示的字符串,非常明显,@string/hello是对资源的引用。
Strings.xml文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, HelloAndroid!</string>
    <string name="app_name">HelloAndroid</string>
</resources>

第3行代码,是在TextView控件中显示的字符串,应是“Hello World, HelloAndroid!”如果修改strings.xml文件的第3行代码的内容,重新编译、运行后,模拟器中显示的结果也应该随之更改。
13,应用程序整体布局文件AndroidManifest.xml:
它声明了应用程序的构成
程序包的全局变量
活动(Activities)
内容管理器(Content Providers)
广播接收器(Broadcast Receivers)
请求安全授权(users-permission)
声明安全授权(permission)
它包含了Android系统运行Android程序前所必须掌握的重要信息,包含应用程序名称、图标、包名称、模块组成、授权和SDK最低版本等
Android程序必须在根目录下包含AndroidManifest.xml文件
AndroidManifest.xml文件的示例代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
       package="edu.hrbeu.HelloAndroid"
       android:versionCode="1"
       android:versionName="1.0">
   <application android:icon="@drawable/icon"
                   android:label="@string/app_name">
       <activity android:name=".HelloAndroid"
                   android:label="@string/app_name">
           <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
       </activity>
   </application>
   <uses-sdk android:minSdkVersion="3" />
</manifest>

AndroidManifest.xml文件的根元素是manifest,包含了xmlns:android、package、android:versionCode和android:versionName共4个属性
xmlns:android定义了Android的命名空间,值为http://schemas.android.com/apk/res/android
package定义了应用程序的包名称
android:versionCode定义了应用程序的版本号,是一个整数值,数值越大说明版本越新,但仅在程序内部使用,并不提供给应用程序的使用者
android:versionName定义了应用程序的版本名称,是一个字符串,仅限于为用户提供一个版本标识
manifest元素仅能包含一个application元素,application元素中能够声明Android程序中最重要的四个组成部分,包括Activity、Service、Broadcast Receiver和Content Provider,所定义的属性将影响所有组成部分
属性android:icon定义了Android应用程序的图标,其中@drawable/icon是一种资源引用方式,表示资源类型是图像,资源名称为icon,对应的资源文件为res/drawable目录下的icon.png
属性android:label则定义了Android应用程序的标签名称
default.properties文件:
仅用来定义程序所使用的Android SDK版本,也就是目标平台或Google APIs是什么。
default.properties文件记录Android工程的相关设置,该文件不能手动修改,需右键单击工程名称,选择“Properties”进行修改

# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
# 
# This file must be checked in Version Control Systems.
# 
# To customize properties used by the Ant build system use,
# "build.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值