Activity 是什么?(sundy深入浅出)之四大组件和Intent
程序员文章站
2022-06-30 18:21:16
...
写在前面的话:本系列主要是学习sundy的Android深入浅出视频中的一些记录,心得。方便自己以后查阅。也供大家查看。欢迎交流,补充。
一般作为面试题(有些有答案,有些没有。问题一般从sundy老师思维导图中摘录,答案并非唯一标准,仅供参考):
1、Acitivy实际是如何实例化的 ?
在ContextImpl类里可以看到
mMainThread.getInstrumentation().execStartActivity(
getOuterContext(), mMainThread.getApplicationThread(), null, null, intent, -1);
在Instrumentation类中execStartActivity方法中
int result = ActivityManagerNative.getDefault()
.startActivity(whoThread, intent,
intent.resolveTypeIfNeeded(who.getContentResolver()),
null, 0, token, target != null ? target.mEmbeddedID : null,
requestCode, false, false);
activity的实例化是由虚拟机来操作的
更准确的答案参照:
http://www.cnblogs.com/chinabinner/archive/2011/11/19/2255374.html
2、Activity的生命周期是如何注册和监控的 ?
使用的观察者模式。有一个类叫 ActivityMonitor,是一个观察者。
3、Activity跟Binder的关系是什么?
从宏观的角度观察Binder,Service,Service Manager,并阐述各自的概念。从Linux的概念空间中,Android的设计Activity托管在不同的的进程,Service也都是托管在不同的进程,不同进程间的Activity,Service之间要交换数据属于IPC。Binder就是为了Activity通讯而设计的一个轻量级的IPC框架。
下一篇: 阅读tcp,ip网络编程,第三章