往期回顾:
安卓逆向交流学习:342647370
vx:yijin1108an
1.1 Activity(活动)概念
Activity(活动)代表了一个具有用户界面的单一屏幕,如 Java 的窗口或者帧。Android 的Activity(活动)是 ContextThemeWrapper 类的子类。如果你曾经用C/C++ 或者Java语言编程,你应该知道这些程序从 main() 函数开始,很类似的,Android 系统初始化它的程序是通过Activity(活动)中的 onCreate() 回调的调用开始的。存在有一序列的回调方法来启动一个活动,同时有一序列的方法来关闭活动,如下图所示的活动声明周期图:
1.2 Activity(活动)的生命周期
1.Activity 类定义了回调,可以不用实现所有的回调方法。但了解其中的每一个非常的重要,实现这些可以保证你的应用行为如用户所期望的样子,如下表所示。
2.实例:这个实例通过简单地步骤展示 Android 应用程序Activity(活动)的生命周期。如下表所示,可以按照下面的步骤来修改在 Hello World 实例章节中创建的Android 应用程序。
3.下面是主要活动文件src/com.example.helloworld/MainActivity.java修改的内容。里面包含每一个基本的生命周期方法。Log.d()方法用来生成日志信息:
活动类从项目的res/layout中的XML文件加载所有的UI组件。
下面的语句从res/layout/activity_main.xml文件中加载UI组件:
setContentView(R.layout.activity_main);
一个应用程序可以有1个或多个活动,而没有任何限制。每个为应用程序所定义的活动都需要在AndroidManifest.xml中声明。应用的主要活动需要在清单中声明,且意图过滤器标签中需要包含 MAIN 动作和LAUNCHER 类别,如下所示:
不论是 MAIN 动作还是 LAUNCHER 类别没有在活动中声明,那么应用程序的图标将不会出现在主屏幕的应用列表中。
运行起刚刚修改的 “Hellow World!” 应用程序。假设你在环境搭建的时候已经创建了AVD。从 Eclipse 运行应用,打开一个项目中的活动文件,并从工具栏点击运行图标。Eclipse在AVD上安装应用并启动它。如果一切顺利,将显示模拟器屏幕如下,同时你可以在Eclipse IDE的LogCat窗口中看到日志信息。
07-19 15:00:43.405: D/Android :(866): The onCreate() event
07-19 15:00:43.405: D/Android :(866): The onStart() event
07-19 15:00:43.415: D/Android :(866): The onResume() event
点击 Android 模拟器上的红色按钮,它将在Eclipse IDE的LogCat窗口中产生如下所示的事件消息:
07-19 15:01:10.995: D/Android :(866): The onPause() event
07-19 15:01:12.705: D/Android :(866): The onStop() event
再次点击 Android 模拟器上的菜单按钮,它将在 Eclipse IDE 的LogCat 窗口中产生如下所示的事件消息:
07-19 15:01:13.995: D/Android :(866): The onStart() event
07-19 15:01:14.705: D/Android :(866): The onResume() event
最后点击Android模拟器上的返回按钮,它将在Eclipse IDE的LogCat窗口中产生如下所示的事件消息,Android 应用程序上活动的整个生命周期完成。
07-19 15:33:15.687: D/Android :(992): The onPause() event
07-19 15:33:15.525: D/Android :(992): The onStop() event
07-19 15:33:15.525: D/Android :(992): The onDestroy() event
小结:
本次主要分享了Activity,了解什么是Activity 和 Activity(活动)的生命周期。
如果你也对安卓逆向感兴趣。欢迎扫码关注,关注回复 “安卓逆向” 获取免费教程。