一些自己的理解

1 activity是页面展示的基本单元 一个activity包含一个PhoneWindow来承载布局 而PhoneWindow里面是一个decorView根部局 界面的绘制在这个布局上面  而view的绘制是通过三部完成的 首先布局 测量 然后绘制 而activity的入口是在activityThread里面 他包含了如同java一样的main方法底层的一些服务比如窗口管理 服务管理等都是通过map来完成一个单利模式。通过key的取值来判断是否有则个实例。activity的启动方式有4中 默认的用的是最多的 不管怎么样都开辟一个实例 一个是singleTask 栈顶有这个activity实例就不会重新创建 有的花会把这个实例前面的所有实例从栈中移除。singleInstance 是开一个新栈来存放这个唯一的activity实例 。一般是用于打开网页的页面 SingleTop是会一直在栈顶,也可以写个activity工具类把这邪恶activity来管理起来

2 Broadcast广播是分为两个方面的:广播发送者和广播接收者 android中的广播使用了观察者模式,基于消息的发布/订阅事件模型,使得系统更加方便集成和更容易拓展.广播分为静态和动态注册,区别在与静态是根据对应的这个activity创建才去注册 首先广播是通过binder机制向AMS进行注册;然后通过binder机制向AMS发送广播;AMS查找符合相应条件的广播接收者,然后发送到相应的消息循环队列里面 然后消息循环执行拿到次广播 回调广播的onReceive方法.

3 Service 服务的启动有两种 一种是startService方法  要actvity结束掉以后该service一直会在后台运行 调用stopSelf或者stopService 或者系统资源不足。一种是bindService绑定当前服务需要解绑才能停止服务

4 ContentProvider 在不同的应用程序之间共享数据 比如内置的许多数据都是使用ContentProvider形式给开发者调用的(读取本地的视频和音频和图片等等)


2 事件分发机制 按下屏幕的事件层层向里层传递。ViewGroup有三个事件 第一个是事件分发 一个是事件拦截

一个是触屏事件。view的话就没有事件拦截事件, onTounchEvent返回true代表事件消费 默认是false

你可能感兴趣的:(一些自己的理解)