android service 性能优化浅见

Android四大组件相信大家都已经很熟悉了,但是在运用的时候很可能只是去关注怎么用能实现功能,而并没有去研究怎么才能更好的更有效率的使用。
在此小女子就分享一下我在使用Service的过程中优化的方法。
一般使用方式:
StartService - StopService两个函数配对使用,启动和停止服务。
context.startService()  ->onCreate()- >onStart()->Service running
context.stopService()  ->onDestroy() ->Service stop
这个接口应该算比较正统的创建和启动Service的接口。
BindService - UnbindService两个函数配对使用,  
context.bindService() -> onBind()->Servic bind
context.unbindService() -> onUnbind()->Service unbind ->onDestory()
这两个接口更接近于在Service和调用者之间建立一个桥梁的作用,一般来说是把调用者绑定到一个已存在的服务上而且一般是需要持久的连接。
创建过程和绑定过程下面给大家两个外部连接作参考,我在此就不再赘述了:
http://blog.csdn.net/luoshengyang/article/details/6677029
http://blog.csdn.net/luoshengyang/article/details/6745181
1.什么是Service
Service类的继承关系如下:
Service -> ContextWrapper -> Context  {ContextWrapper仅仅是对Context的一个包装,}
接口声明:Context.java
接口实现:ContextImpl.java
Context从含义来说更像是Windows编程中的handle,他是一个service或者一个activity的唯一标示。
应用的context的数量是service的数量加上activity的数量加一(Application的主context)。
Activity以及Service的context可以理解成和应用context之间的纽带和桥梁。
2.调用时候的可优化点:
为耗时的Service启动一个或者多个Thread来在后台执行,这样对现在大部分手机来说可以充分用到多核的优化。
尽量减少Activity消失后Service仍在后台运行的情况,如果必须运行无比在后台运行完成之后销毁Service。严重鄙视一直在后台运行的Service!!!更加鄙视一下还想要干掉手机助手防止其干掉自己的service的人~~!(亲,你这是要跟别人作对么)。
使用系统提供的封装好的服务类,少自己写服务类。
使用onLowMemory()来灵活处理低内存时候的情况。
使用dump来监控此Service出现异常时的状态和调用栈。

你可能感兴趣的:(编程,android)