什么是 Activity

  • Activity 是 Android 应用程序的界面;

  • 每个应用程序往往都存在多个 Activity ,即存在多个界面,各个界面之间根据一定的逻辑规则互换显示;

  • Activity 本质是一个 Java 类,在一般情况下,可以认为每个界面均是一个 Activity ,也就是说 Activity 的数量与界面的数量是一一对应的。

Activity 的功能定位

  • Activity 通常用于处理 UI 相关的操作,例如 UI 控件的加载、配置及响应等等;

  • 从理论上说,在 Activity 中可以完成所有任务的处理,包括下载文件等,但并不是最合适的做法,在后续的学习中,我们将学习使用其它功能定位的类完成非 UI 相关操作

界面的组成

Activity 是用于处理界面的 Java 类,即处理界面相关的程序,而界面外观的设计往往通过使用 Xml 进行配置,这些 Xml 文件称之为“布局文件”,存放在项目的 res 文件夹下的layout 系列文件夹中。

layout 系列文件夹】:默认创建的项目在 res 文件夹下仅有一个名为 layout 的文件夹,开发人员可以自定义更多以 layout 为前缀、但后缀可能不同的文件夹,用于存放适配不同屏幕的布局文件,例如 layout-land 、layout-port 等。

布局文件的加载

使用 Android Studio 创建 Activity 时,默认会重写 Activity 中的 onCreate() 方法,并在该方法中调用 setContentView() 方法设置需要显示到界面的布局,实现界面的显示。

开发人员也可以通过程序创建需要显示的界面,但使用代码创建界面中各个控件的实现成本较高,一般不推荐。

创建新的 Activity

在创建 Android 项目时,开发工具(例如 Android Studio 等)默认会创建一个 MainActivity ,开发人员可以根据需求创建若干个 Activity 。

配置入口 Activity

尽管任何一个 Android 应用程序中都可以有若干个 Activity ,但一定仅有一个 Activity 作为入口 Activity ,即新打开应用程序时,显示的第一个 Activity 。

在项目的根目录下,AndroidManifest.xml 文件中即配置了入口 Activity 。

在 AndroidManifest.xml 文件中,可以为每个 Activity 都添加入口的配置代码,但在程序运行之前,系统会对 AndroidManifest.xml 文件从上至下解析,当解析到第一个匹配项时即终止,也就是说第一个存在入口配置的 Activity 将被启动。

综上所述,当尝试启动一个 Android 应用程序时:

  1. 系统将解析该应用程序的 AndroidManifest.xml 文件,尝试检索入口 Activity ;
  2. 运行入口 Activity 的程序,即 Activity 的 Java 类,并自动调用 onCreate() 方法,在 onCreate() 方法执行的过程中, setContentView() 方法被调用,则 setContentView() 的参数对应的布局被加载,完成界面的初始化。

【补充】AndroidManifest.xml 与系统组件
在 Android 系统中存在4个系统组件,分别是:Activity、Service(服务)、ContentProvider(内容提供者)、BroadcastReceiver(广播接收者),这些系统组件将由 Android 系统对它们进行管理和维护,开发人员不需要,也无权维护,但它们必须在 AndroidManifest.xml 文件中的 < application >节点下进行配置,通常称之为注册。

更多相关文章

  1. Android(安卓)Bitmap 缓存策略
  2. Android(安卓)开机动画客制化
  3. Android快速入门笔记
  4. android应用安全――代码安全(android代码混淆)
  5. 暴力突破 Gradle 自动化项目构建(八)- Android(安卓)对 Gradle 的
  6. Android开发初步之Activity与Intent
  7. android NDK扩展
  8. 【转】Invalidate和postInvalidate的区别
  9. 如何在 Windows* 8 上为 Android* 设备安装英特尔® USB 驱动程

随机推荐

  1. IP连接SQL SERVER失败(配置为字符串失败)
  2. SQLSERVER数据库升级脚本图文步骤
  3. 使用row_number()实现分页实例
  4. SQL Server无法生成FRunCM线程的解决方法
  5. SQLServer2005触发器提示其他会话正在使
  6. SQL的SUBSTR()函数使用介绍
  7. SQLSERVER分布式事务使用实例
  8. SQL Server存储过程生成insert语句实例
  9. SQL字符串处理函数大全
  10. SQL Server数据库重命名、数据导出的方法