Android开发教程——Android应用架构

来源:互联网 发布:小号云免费源码 编辑:程序博客网 时间:2024/06/05 16:15

7.1.AndroidManifest.xml

Android应用的组件和设置在AndroidManifest.xml文件中设置。例如所有的应用活动和服务都必须在这个文件中声明。

它必须包含应用需要的权限。例如如果应用需要访问网络它必须在这里声明。

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

      package="de.vogella.android.temperature"

      android:versionCode="1"

      android:versionName="1.0">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".Convert"

                  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="9" />

</manifest>

这个包属性定义了在这个文件中引用的Java对象的基本包。如果一个Java对象存在于不同的包中,它必须用完整的正确包名来声明。

Google Play要求每个Android应用使用自己唯一的包。因此使用你的预留域名作为包名是一个好习惯。这样可以避免和别的Android应用冲突。

androidversionNameandroidversionCode制定了你的应用的版本。versionName是用户能看见的内容,并且可以是任何字符串。

versionCode必须是一个整型。Android市场根据versionCode来确定它是否提醒已安装应用的升级。你通常从“1”开始,如果从这个值逐一递增。

<activity>标签定义了一个活动,这个例子中指向了de.vogella.android.temperature包中的Convert类。定义了当应用启动时移动活动的意图过滤器在这个类里注册(androidname=”android.intent.action.MAIN”活动)。类定义category android:name=”android.intent.category.LAUNCHER”定义了这个应用添加到Android设备的应用目录位置。

资源文件中定义的@string/app_name值包含了应用程序名字的值。资源文件的使用更容易为不同的设备提供像字符串,颜色,图标的不同资源,并且更容易转变应用。

文件AndroidManifest.xml文件的uses-sdk部分定义了你的应用的最低有效SDK版本。这样能防止你的应用安装在不支持的设备上。

7.2.活动和生命周期

Android系统控制着你的应用的生命周期。在任何时间Android系统可以停止和结束你的应用,例如一个电话的呼入。Android系统通过预定义的活动定义了一个活动的生命周期。最重要的方法是:

onSaveInstanceState() - 在活动停止后调用。用于活动重启时可以恢复之前保存的数据

onPause() - 经常在活动结束时调用,可以被用于释放资源或保存数据

onResume() - 活动重启时调用,可以用于初始化字段

7.3.配置变动

当所谓的“配置变动”发生是一个活动也将会被重启。如果一个和应用相关的事件被触发时一个配置就会发生变化。例如如果用户改变了设备的方向(水平或竖直)。Android假设一个活动为这些方向使用不同的资源就会重启这个活动。

在模拟器中用Ctrl+F11模拟这个变化。

你可以通过改变在AndroidManifest.xml定义的活动的configChanges属性来避免重启应用。下面的活动将不会因为方向改变或物理键盘的位置(隐藏/显示)重启。

<activity android:name=".ProgressTestActivity"

     android:label="@string/app_name"

     android:configChanges="orientation|keyboardHidden|keyboard">

</activity>

7.4.Context

android.content.Context提供了与Android系统和项目资源的连接。这是和应用环境相关的全局环境的接口。

Context也提供了Android服务的访问,例如地点服务。

活动和服务扩展了Context类。

原创粉丝点击