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


推荐阅读
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • 本文介绍了用户界面(User Interface, UI)的基本概念,以及在iOS应用程序中UIView及其子类的重要性和使用方式。文章详细探讨了UIView如何作为用户交互的核心组件,以及它与其他UI控件和业务逻辑的关系。 ... [详细]
  • 本文由chszs撰写,详细介绍了Apache Mina框架的核心开发流程及自定义协议处理方法。文章涵盖从创建IoService实例到协议编解码的具体步骤,适合希望深入了解Mina框架应用的开发者。 ... [详细]
  • 本文探讨了Web应用(Web App)与原生应用(Native App)之间的主要差异,包括它们在开发、功能实现及版本管理等方面的不同特点,并分析了各自的优势与适用场景。 ... [详细]
  • 探讨如何在映射文件中处理重复的属性字段,以避免数据操作时出现错误。 ... [详细]
  • Fiddler 安装与配置指南
    本文详细介绍了Fiddler的安装步骤及配置方法,旨在帮助用户顺利抓取用户Token。文章还涵盖了一些常见问题的解决方案,以确保安装过程顺利。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • 本文探讨了程序员这一职业的本质,认为他们是专注于问题解决的专业人士。文章深入分析了他们的日常工作状态、个人品质以及面对挑战时的态度,强调了编程不仅是一项技术活动,更是个人成长和精神修炼的过程。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
  • 在iOS开发过程中,当开发团队使用多台Mac设备时,可能会遇到无法继续申请新证书的问题。本文介绍了如何通过导出.p12文件来解决这一问题,并确保团队成员能够在不同设备上共享同一个证书。 ... [详细]
author-avatar
书友59289474
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有