热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

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

本篇文章是对Android中后台进程对Android性能的影响进行了详细的分析介绍,需要的朋友参考下

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键,或四指触摸向上拉),长按应用后,点击左上方的头号,即可关闭应用,而且关闭了应用不会再次启动,除非用户启动它。这里不管应用是否真正退出了,至少从用户角度来看是退出了。


推荐阅读
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文探讨了在UC浏览器中调用分享面板后,图片无法正常显示的问题,并提供了详细的解决方法和代码示例。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • Ulysses Mac v29:革新文本编辑与写作体验
    探索Ulysses Mac v29,这款先进的纯文本编辑器为Mac用户带来了全新的写作和编辑环境。它不仅具备简洁直观的界面,还融合了Markdown等标记语言的最佳特性,支持多种格式导出,并提供强大的组织和同步功能。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 落樱3D v0.5是一款在Android平台上发布的3D美少女格斗游戏,本次更新带来了多项新功能和优化。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 探索12个能显著提升iPhone使用体验的隐藏技巧,掌握这些功能后,你会发现生活更加便捷高效。 ... [详细]
  • 本文将带领读者深入了解Android系统源码在手机中的实际表现,通过详细的步骤和专业的解释,帮助你更好地理解Android系统的底层运作机制。 ... [详细]
  • 本文详细介绍如何在王者荣耀中设置公屏打字,包括半屏键盘的配置方法和常见问题解决技巧。 ... [详细]
  • Redis Hash 数据结构详解
    本文详细介绍了 Redis 中的 Hash 数据类型及其常用命令。Hash 类型用于存储键值对集合,支持多种操作如插入、查询、更新和删除字段值。此外,文章还探讨了 Hash 类型在实际业务场景中的应用,并提供了优化建议。 ... [详细]
  • 本文介绍了如何在Xcode中通过自定义文件模板来添加个性化的注释,以提高代码的可读性和维护性。具体步骤包括打开Xcode的应用包,定位到文件模板目录,并对相关文件进行编辑。 ... [详细]
author-avatar
Because_of_you龙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有