
Activity属于 Android的四大组件之一Activity ,献上1份 Activity的学习攻略,包括其生命周期、启动模式、启动方式等等,希望你们会喜欢。
即 活动,属于 展示型组件
属于
Android四大组件之一:Activity、Service、BroadcastReceiver、ContentProvider
显示界面 & 与用户进行交互
Activity通常是一个界面,是四大组件唯一能被用户感知的Activity之间通过Intent进行通信
更加详细请看文章:Android基础:3分钟详解Activity生命周期
Activity的启动模式有4种,具体如下

更加详细请看文章:Android基础:最易懂的Activity启动模式详解
Activity的方式主要是:显式Intent & 隐式Intent// 1. 使用构造函数 传入 Class对象
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
// 2. 使用 setClassName()传入 包名+类名 / 包Context+类名
Intent intent = new Intent();
// 方式1:包名+类名
// 参数1 = 包名称
// 参数2 = 要启动的类的全限定名称
intent.setClassName("com.hc.hctest", "com.hc.hctest.SecondActivity");
// 方式2:包Context+类名
// 参数1 = 包Context,可直接传入Activity
// 参数2 = 要启动的类的全限定名称
intent.setClassName(this, "com.hc.hctest.SecondActivity");
startActivity(intent);
// 3. 通过ComponentName()传入 包名 & 类全名
Intent intent = new Intent();
// 参数1 = 包名称
// 参数2 = 要启动的类的全限定名称
ComponentName cn = new ComponentName("com.hc.hctest", "com.hc.hctest.SecondActivity");
intent.setComponent(cn);
startActivity(intent);// 通过Category、Action设置
Intent intent = new Intent();
intent.addCategory(Intent.CATEGORY_DEFAULT);
intent.addCategory("com.hc.second");
intent.setAction("com.hc.action");
startActivity(intent);
更加详细请看文章:Android:关于 Intent组件的那些小事(介绍、使用方法等)
Activity的启动过程具体如下:

当请求启动Activity时:
Launcher进程通过Binder驱动向ActivityManagerService类发起startActivity请求;ActivityManagerService类接收到请求后,向ActivityStack类发送启动Activity的请求;ActivityStack类记录需启动的Activity的信息 & 调整Activity栈 将其置于栈顶、通过 Binder 驱动 将 Activity 的启动信息传递到ApplicationThread线程中(即Binder线程)ApplicationThread线程通过Handler将Activity的启动信息发送到主线程ActivityThreadActivityThread类接收到该信息 & 请求后,通过ClassLoader机制加载相应的Activity类,最终调用Activity的onCreate(),最后 启动完毕Activity的卡顿原因主要归结如下:

关于内存泄漏 & 性能优化,请看系列文章:
Android性能优化:手把手带你全面了解 内存泄露 & 解决方案
Android性能优化:那些关于Bitmap图片资源优化的小事
加速启动Activity的方式归结如下:



至此,关于Android四大组件之一的Activity讲解完毕。
本文全面讲解了 Activity,现在大家对 Activity应该十分了解了