Android 杂记

Activity启动过程:Activity通过-ContextImpl ->AMS->Activieservices->handle ->activitythread->handler->activity.oncreate()

ContentProvider 创建过程:AcitivityThread-AMS-ApplicationThread -ActivityThread-Application.create;其中ApplicationThread 是在AMS与ActivityThread 之间通信。

BroadcastReceiver 绑定过程:ContenxImpl ->AMS.registerReceiver(保存广播)->广播队列中

BroadcastReceiver 接收发送过程ContextImpl->AMS->Handler->BroadcastQueue->ApplicationThread->Handler处理;

Service启动过程:ContextImpl->AMS->ActiveServices->ApplicationThread->Handler->ActivityThread-启动。

AsynTask执行流程:execute中的执行过程onPreExecute——>Exceute(判断方法是立刻执行还是直接放入线程池中)-DoInbackgroud ->postResult(通过发送handle消息)->OnprocessUpate/finish;

AsynTask注意事项:

AsynTask对象必须在主线程中创建。

AsynTask必须在UI线程中执行。

一个AsynTask对象只能执行一次否则会报错。
在不同Android版本中对于AsynTask的执行方法也不一样,有同步执行的,也有串行的。为了兼容Android3.0最好使用exceuteOnExceutor方法。此方法只有Android3.0及以上的版本中可用

Android 性能优化:

1,布局优化:减少层级的嵌套、使用布局重用、减少使用性能低的控件如RelativeLayout、合理使用include ,merge标签。

2,绘制优化:在onDraw方法里面避免使用大量的操作,因为此方法在可能会被频繁的调用,另外减少些方法中耗时操作。

3,内存泄漏优化:静态变量的原因,单例模式导致的(例:广播注册与解注册成对出现),动画未停止导致的(界面退出后,在onDestroy中调用停止动画操作,如果不停止有虽界面看不到,但是有可能动画是一直播放的,最后导致ANR)

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值