当前位置:  编程技术>移动开发

解析后台进程对Android性能影响的详解

    来源: 互联网  发布时间:2014-10-16

    本文导语:  Android现在这么火,各种的设备也是琳琅满目,高中低等,大小屏幕都有,但是它始终未能达到iOS那样的令人称赞的卓越体验和性能,其操作的流畅度,性能和安全性方面总是略输iOS一筹。据说iPhone4虽然是单核512M内存,但是比A...

Android现在这么火,各种的设备也是琳琅满目,高中低等,大小屏幕都有,但是它始终未能达到iOS那样的令人称赞的卓越体验和性能,其操作的流畅度,性能和安全性方面总是略输iOS一筹。据说iPhone4虽然是单核512M内存,但是比Android的双核1G内存的操作起来更流畅,iPad2虽然是也只有512M的内存但是操作起来比Android四核1G内存还要流畅。另外在安全性方面也不如iOS。

造成Android性能,待机时间,操作流畅和安全性不好的原因是Android后台进程的管理。

Android的进程管理很差劲,这也是它性能差的原因,操作的流畅性,待机时间,性能都跟进程管理,特别是后台进程的管理有很大关系。打开手机一看,有几十条进程在跑,比如短信,邮件,输入法等系统核心应用,另外还有很多很应用也都在后台运行,不管是否是用户启动的,很多应用都在后面跑,这点已经成为Android用户最受困扰的地方。更为可气的是很多进程用任务管理器,进程杀手等工具杀都杀不掉。

主要的原因就是Android中的关键的组件都有着过长的生命周期,比如BroadcastReceiver和Service,还有就是线程的不正当应用。Service就是专门用于在后台长期运行的组件,用以在后台完成长期的任务比如在后台播放歌曲,在后台接收邮件和短信等等。BroadcastReceiver是一种长期存在的组件,它正常时候是处于不活跃的,只有当其感兴趣的Intent广播出现时就被激活,虽然它不活跃,但是它依然活着,它所在的进程依然运行。此外,Activity也可以长期的运行,通过moveTaskToBack()就可以不销毁的把Activity放到后台去,或者在Activity中运行Thread,如果在Activity销毁时没把Thread停止,那么Thread就会仍然运行,进程就会仍然运行。

这是Android系统架构决定的,对于有组件在运行的进程,即使用任务管理器把它杀掉,那么ActivityManager还会把这个进程重启。所以对于Android的程序来讲,需要开发者的努力才能正确的应用这些组件让应用在用户用到的时候运行,不需要的时候就完全退出。

但是造成现在大多数的应用都在后台偷偷的跑的原因还主要是Android开发者的原因。

众所周知,Android开发者盈利并不是很好,所以开发者就不愿意在优化性能方面做太多的精力投入,因为它无法得到回报。

另外就是,因为无法盈利,所以就让程序在后台跑,收集收集一些用户的使用习惯和一些数据等,以便作为后续开发的参考数据。

iOS的设备就没有这样的情况,它对于后台进程的控制相当的严格,程序退出了,就是退出了,另外在它的近期应用条中(双击Home键,或四指触摸向上拉),长按应用后,点击左上方的头号,即可关闭应用,而且关闭了应用不会再次启动,除非用户启动它。这里不管应用是否真正退出了,至少从用户角度来看是退出了。


    
 
 

您可能感兴趣的文章:

  • 解析取模运算% 和位与运算& 之间的关系详解
  • 解析Linux系统中JVM内存2GB上限的详解
  • ThinkPHP3.1新特性之内容解析输出详解
  • 解析c++中的默认operator=操作的详解
  • 解析C#彩色图像灰度化算法的实现代码详解
  • 解析C#中@符号的几种使用方法详解
  • 解析Android开发优化之:对界面UI的优化详解(三)
  • 解析在内部循环中Continue外部循环的使用详解
  • 解析使用enumerator模式简化异步操作的详解
  • jQuery解析JSON数据实例详解
  • 解析Android开发优化之:对界面UI的优化详解(二)
  • 解析JAVA深度克隆与浅度克隆的区别详解
  • 解析jdbc处理oracle的clob字段的详解
  • 解析C#中的装箱与拆箱的详解
  • 解析C#中委托的同步调用与异步调用(实例详解)
  • 解析Runtime中shutdown hook的使用详解
  • DHCP:解析开发板上动态获取ip的2种实现方法详解
  • java Class文件内部结构解析过程详解
  • 深入多线程之:解析线程的交会(Thread Rendezvous)详解
  • 解析为何要关闭数据库连接,可不可以不关闭的问题详解
  • jquery.Ajax()方法调用Asp.Net后台的方法解析
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 大家好,我想问下有人用过"linux进程的内存使用解析"中推荐使用的"Ben Maurer写的perl脚本"查看内存么
  • 牛人来帮忙解析一个shell脚本(用于统计一个进程的内存使用情况)
  • 解析C#中用Process类杀死进程,执行命令的深入分析
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • 请教redhat9下什么命令执行arp解析和逆向arp解析
  • 使用libpcap读取tcpdump抓取的文件并解析c代码实例
  • 如何用libxml2 默认解析器解析HTML文件
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • linux能否成为动态域名解析客户端的动态域名解析服务器?
  • html中<radio>单选按钮控件标签用法解析及如何设置默认选中
  • 配置DNS服务器后,服务器可解析,客户端不能解析。求解
  • Python下Html/xml解析库Beautiful Soup快速入门教程
  • 为什么我在使用nslookup命令的时候,正向解析(域名-》ip)没有问题,反向解析(ip-》域名)怎么查不到呢?
  • 基于Python的html解析库:pyquery最新版主页及pyquery下载
  • 服务器本机能解析域名,其它机子都解析不到,能ping通dns服务器地址,是什么问题?//
  • python下xml解析库lxml最新版下载安装以及代码示例
  • 我有一个DNS服务器,既要解析自己局域网里IP,有要解析外网上的IP,如www.163.com,我该如何设置呢
  • python对XML的解析方法(SAX,DOM,ElementTree)介绍
  • 请问怎样手工的解析XML文件啊.( 不借助任何的xml解析器)急!!!
  • php通过pack和unpack函数实现对二进制数据封装及解析
  • 通过shell解析文件,并根据解析内容生成新的文件。
  • html中<checkbox>标签用法解析及如何设置checkbox复选框的默认选中状态
  • java 公式解析 表达式解析 expression-analyzer
  • html中<select>标签用法解析及如何设置select的默认选中状态
  • 请问各位:我用SUN公司的JAXP开发包解析XML文档,可不知道对XML解析后如何将结果写回文件中。请各位熟悉Java和XML的高手帮忙。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3