为什么android你用的越多,速度较慢的手机
依据第三方的调研数据显示,有 77% 的 Android 手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+ 卡慢”,也有超过 460 万条结果。
在业内。Android 手机一直有着“越用越慢”的口碑,这个现象甚至超出了硬件范畴——非常多中高端 Android 手机在硬件參数上都优于同一代 iPhone。可是它们仍然会在使用半年到一年的时间后进入“欠流畅”的状态——这无疑是一件令人困扰的事情。
然而,若是要回答这个问题。我们须要追溯到上个世纪。去寻找智能手机的起源。
西方历史及奇幻文学作品十分热衷于表达“血统”的设定。其传统文化觉得血统能够决定天赋。并引出“命运是否被注定”的哲学思考。
比方大家比較熟知的《哈利波特》系列。解构之后就不难发现,这实际上是一部讲述格兰芬多与斯莱特林两支血统及其传人的厮杀史(哈利波特是格兰芬多的后代,继承了其勇气,伏地魔是斯莱特林的后代,拥有着其野心),而无处不在的预言(一个终将杀死还有一个),也贯彻了西方惯有的宿命论情结。
到了科技行业,“血统”的定义被“基因”所代替,一个公司有着什么样的基因,决定了它的擅长领域。这样的评价也被广泛接受,成为唯物时代独树一帜的唯心理念,并经受住了事实考验——当我们试图解释微软失落于互联网、Google 败退于社交网络、百度止步于电子商务的原因时。都会由衷的感慨“原来剧本早在多年曾经就已经写好了”。
相同,为什么 Android 手机的“卡慢”问题永远比 iPhone 要更加严重,它的答案也从一開始就注定了。
1965 年,贝尔实验室、通用电气和麻省理工学院開始合作开发一套可以兼顾易用性和强大性的操作系统,经过六年时间的通力协作,贝尔实验室的一名软件project师 Ken Thompson 在休假期间完毕了一个名为 Unix 的系统编写,并终于成为贝尔实验室的母公司、美国电信巨头 AT&T的商业产品。并启动了长达数十年的版权运作。
虽然后来有着很多变种。可是从严格意义上来讲。Unix 不是一个开源的操作系统。
1991 年。一个芬兰的大学生、同一时候也是计算机黑客的 Linus Torvalds,他对 Unix 十分着迷,可是买不起执行 Unix 须要的工作站,所以他就尝试自己以相同的编程方式写了一个名为 Linux 的操作系统,并在自由软件之父 Richard Stallman 的精神鼓励之下,将 Linux 增加到了自由软件基金(FSF)其中,同意全部人使用、拷贝、改动甚至销售 Linux 系统,同一时候承担开源义务。禁止把 Linux 封闭化的企图。
之所以要如此大费周章的讲述 Unix 和 Linux 两个操作系统的故事,是由于 iOS 和 Android,正是分别基于 Unix 和 Linux 而衍生出来的作品。也就是说,是 Unix 和 Linux 的两种特性。造成了 iPhone 与 Android 手机在使用体验上的巨大差异。
乔布斯以前邀请 Linux 的创始者 Linus Torvalds 到苹果工作,放弃 Linux 的开源,协助开发 Mac OS 封闭式的 Mach 内核,后者与乔布斯大吵一架之后明白表示拒绝。
而从 Mac OS 開始,苹果就将操作系统的私有化视为企业战略,用乔布斯的话来讲,他是将 iOS 装进了 iPhone 这个盒子里,然后卖给了用户。
所以,iPhone 之所以不会出现“越用越卡”的情况,是由于苹果公司对它的手机从硬件到软件拥有最高的管理权限。在封闭式的环境中,来自第三方的应用程序无法调用超过 iPhone
承受限度的指令,自然也不可能造成持续性的系统损伤。
反观 Android 手机。因为开源的公开条件。Google 无法从代码这一port约束第三方的应用程序,同一时候,因为 Linux 核心设定应用在调取系统功能时一定要取得 ROOT 权限,这也导致大量应用因为单一功能的实现需求而获得整个 ROOT 层面的支配,能够在 Android 手机的随意储存位置进行读写,这样的高自由度无异于开启了潘多拉魔盒,让 Android 手机无法对恶意 App 事先设防。这也是开源软件备受争议、且在商用领域遭到抵触的原因:它仅仅关心是否授予了用户自由——这个自由也包含逾越边界的自由——而没有从最坏的出发点去考虑怎样规避被滥用的风险。虽然
Google 作为巨头,一直在尝试对产业链进行统一管理。可是当这条产业链日益庞大、连 Google 也仅仅能扮演当中之中的一个的角色时,Android 的失控也就在情理之中了。比方,Android 的最新版本号通常须要花费超过一年半的时间。才干使激活它的 Android 手机占比超过 50%。可是 iOS 7 仅仅用了两个月,就让半数以上的 iPhone 都更新完成。
另外,一款应用程序假设被苹果从 App Store 中惩处出去,它就再也无法被安装到不论什么一款合法的 iPhone 里面。可是假设一款应用程序被 Google
驱赶出 Google Play,可是它还是能够登录各种第三方应用市场,提供正常的下载和安装。
所以,Android 的这样的天生短板,又催生出了一个“手机调校”的市场。并带动了新的产业链。
“手机调校”的第一级,在于系统层。
在 Android 4.4 以及之后的 Android L 的规划中,它将应用程序的执行模式由 Dalvik 换成了 ART。其原理简单来说是“预编译”效果,即当一款应用程序在第一次被安装到 Android 时,它的字节码就已经被编译成为了本地的机器码,降低兴许执行应用程序时的启动和执行时间。
依据 Google 自己发布的结果。在不同的性能測试 App 中。ART 的速度对照 Dalvik 的平均提升幅度达到了 80%。在某些项目中。ART 的提升幅度甚至超过了 1.5 倍,这个结果可谓很喜人。
这是 Google 希望从源头解决 Android 卡慢问题的努力,可是这仅仅是对性能优化有着作用。无法解决由于应用程序违规调用资源而产生的问题。
同一时候,由于在安装应用程序时进行了“预编译”,整个安装时间将会变长。安装完成后生成的文件也会变大。比方最新的 Google+ 安装包仅仅有 6.9M,可是它安装后的 APK 大小达到了 28.3M,这对 Android 手机储存空间又存在过多占用的问题。
“手机调校”的第二级。在于 ROM 层。作为全球最大的 Android 市场,中国的很多手机厂商都以开发专用 ROM 来为销售产品添彩。大多数的 ROM,也都会考虑对 Android 系统进行优化,比方 MIUI V6 就宣称“引入多种 Linux 系统内核内存优化技术,提高应用执行效率”。
也就是说,与 Google 做的事情一样,ROM 厂商基本的优化工作,也是对 Linux 动刀,打上各种补丁,使其底层语言可以更好的适配到各种手机终端上。还是以 MIUI V6 为例,在介绍新特性时。其有这么一条:“ZRAM 调度优化技术”,事实上 ZARM 就是 Linux 内核里的一个内存模块,作用就是在内存中划出一个部分出来充当虚拟盘。来承载 Linux 的交换分区,将一些任务压缩容纳进去。使内存的使用率提高。让 CPU 来为内存服务(由于眼下的智能手机普遍 CPU 过剩、而内存才是瓶颈)。
只是。ROM 也是一把双刃剑,它对于 Android 底层系统的改动。以及它对于内存空间的占用,又都有添加手机负载的风险。
“手机调校”的第三级,在于应用层。大量应用程序在手机中发生的意外或有益占用事件,是造成 Android 手机越来越慢的最核心原因。
过多的应用程序热衷于滞留在内存空间里、以及将大量碎片留在储存空间里。是带来麻烦的罪魁祸首。这也是为什么即时清理类应用得以逐渐成为 Android 手机标配。
Android 系统有七类进程,各自是前台进程、可见进程、主要服务、次要服务、后台进程、内容供应节点、空进程。在没有安装清理类应用的时候,一部 Android 手机仅仅能依赖系统默认的分配机制来自己主动调节内存使用,仅仅要应用程序提出请求,大部分进程仅仅要打开后都会被保留在内存其中,这原本是为了让用户在再度激活这些进程时不须要又一次加载、节省时间的初衷考虑,可是 Android 没有料到激烈的市场竞争会驱使应用程序产生“劣币驱良币”的趋势,非常多开发人员出于商业目的,在不须要留存在内存的情况下也想方设法的让应用程序保持潜在执行状态,一个两个还好说,可是一旦数量很多其它。Anrdoid
手机就会频频卡顿和发热。
以眼下全球用户规模最大的 Android 手机清理类应用“某清理大师”为例,它清理的进程类型,主要放在后台进程、次要服务、内容供应节点和空进程:
后台进程(Hidden)——这个是最优先被扫描和识别出来的进程,由于大部分 Android 用户在切换应用程序时都不会使用返回键退出,而是直接按下 Home 键。前者会让应用进入空进程(占用资源相对较小)。而后者则会保留为后台进程(占用资源相对更大),尤其是当游戏类 App 在后台执行时,它会和其它 App 争抢资源,而不会在乎那款 App 是不是用户正在使用。依据某清理大师的统计。约有 20% 的经常使用 App 即使不执行时也在后台启动联网,主要是提交产品及用户使用信息、获取广告信息、查询是否升级等。
次要服务(Secondary Server)——比方某些企业套件、邮箱联系人、触控接口等,这些进程非常多都是系统自带的,有些用户会使用,可是有些用户也可能不会使用或已经有了替代应用,所以某清理大师的清理逻辑是基于用户行为和授权来建立(分为建议清理和深度清理两类);
内容供应节点(Content Provider)——这部分进程没有程序实体,只提供内容给其它应用使用,比方日历供应节点、邮件供应节点等。除了占用内存资源之外。它还会占用网络。所以也会给 Android 手机造成不必要的负担。
空进程(Empty)——假设是通过返回键退出应用。大部分的应用也会在 Android 手机的内存里遗留一个空的进程,这个进程没有数据执行。可是会记录应用的历史信息,差点儿没有不论什么价值,相同。这部分进程内容被干掉的优先级也非常高。
除了对内存的过度消耗之外,Android 手机也easy在储存中积累大量冗余数据,包含无法卸载的预装应用、卸载之后的残存文件以及使用应用的过程中产生的缓存,因为 Android 本身没有提供管理工具。即使将手机连接电脑之后也是如同 Windows 树状结构一样的目录包。用户非常难独立推断哪些目录能够删除、哪些目录是系统必备的,最后也会导致手机尺寸空间愈来愈窄的情况。
“移动校准”问题,它可能带回添加用户操作的负担,心理压力,甚至进行压力,打手机也没有忘记使用清理功能隔三差五。而这样的 iPhone 相比“特色”操作手法。也 Android 电话总是喜欢一个半成品或project因为机。
为什么android你用的越多,速度较慢的手机的更多相关文章
- TF卡速度测试对比 Class数越高速度越快
存储卡(TF卡)是手机扩展存储的大杀器,让你多装n部学习资料,多装n个外语听力练习.除了装东西外,存储卡性能不佳也会影响手机的整体性能以及体验的.本文主要针对Android手机,我是懒人,但我讨厌懒人 ...
- Android studio 提高导入项目的速度
最近在下载了一些开源的项目在学习,在导入as时,速度要好慢,如项目大点,就更慢了,实在是坑啊! 那有没有方法能导入时间快点呀! 分析发现,as在导入项目是首先是读 来自为知笔记(Wiz)
- 在Android中使用并发来提高速度和性能
Android框架提供了很实用的异步处理类.然而它们中的大多数在一个单一的后台线程中排队.当你需要多个线程时你是怎么做的? 众所周知,UI更新发生在UI线程(也称为主线程).在主线程中的任何操作都会阻 ...
- Android为TV端助力 VelocityTracker 速度追踪器的使用及创建
VelocityTracker 速度追踪 第一,创建方式: VelocityTracker mVelocityTracker = new VelocityTracker .obtain() 第二, ...
- Android SDK 墙内更新方法 速度杠杠的
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- android开发工具类之获得WIFI IP地址或者手机网络IP
有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...
- Android实战技巧之十九:android studio导出jar包(Module)并获得手机信息
AS中并没有独立的Module 工程,可是能够在普通的Project中增加Module.所谓的Module就是我们通常所指的模块化的一个单元.并经常以jar包的形式存在.以下以一个获取手机信息的样例演 ...
- Android初级教程使用服务注册广播接收者监听手机解锁屏变化
之前第七章广播与服务理论篇写到: 特殊的广播接收者(一般发广播次数频率很高) 安卓中有一些广播接收者,必须使用代码注册,清单文件注册是无效的 屏幕锁屏和解锁 电量改变 今天在这里就回顾一下,且用代码方 ...
随机推荐
- Go成功的项目
nsq:bitly开源的消息队列系统,性能非常高,目前他们每天处理数十亿条的消息docker:基于lxc的一个虚拟打包工具,能够实现PAAS平台的组建.packer:用来生成不同平台的镜像文件,例如V ...
- Android开发之Sqlite的使用
在Android中存储数据可以用文件.数据库.网络,其中文件和数据库是最常用的,数据库我们常用的就是Sqlite,它是一种经量级的.嵌入式的关系型数据库:在android中当需要操作SQLite数据库 ...
- shu_1241 邮局位置问题
http://202.121.199.212/JudgeOnline/problem.php?cid=1078&pid=5 分析: 由于题目中的距离是折线距离,所以能够分别考虑两个方向.又x方 ...
- OpenAuth.net
基于DDDLite的权限管理OpenAuth.net 1.0版正式发布 距离上一篇OpenAuth.net的文章已经有5个多月了,在这段时间里项目得到了很多朋友的认可,开源中国上面的Star数接近 ...
- C strstr() 函数
包含文件:string.h 函数名: strstr 函数原型:extern char *strstr(const char *str1, const char *str2); 语法:* strstr( ...
- PV(访问量)、UV(独立访客)、IP(独立IP) (转)
网站统计中的PV(访问量):UV(独立访客):IP(独立IP)的定义与区别今天使用了雅虎统计,看到里面就有这个,就说说,其实里面的uv大家可能觉得很新奇,但是和站长统计里的独立访客是一样的嘛.---- ...
- linux它SQL声明简明教程---WHERE
我们并不一定必须注意,每次格里面的信息是完全陷入了.在很多情况下,我们需要有选择性地捕捞数据.对于我们的样本.我们可以只抓住一个营业额超过 $1,000 轮廓. 做这个事情,我们就须要用到 WHERE ...
- jQuery 复制节点的元素实现加入到购物车功能
描写叙述: 用户点击左边div中的商品,相应商品会自己主动加入到右面的div中,类似电子商城中的加入到购物车功能. 主要用到了jquery中的复制节点功能,基本原理是首先获取点击的元素,然后将对应信息 ...
- Ubuntu下将vim配置为Python IDE(转)
工欲善其事,必先利其器. 配置好了Django的环境,该把vim好好配置一下当做python的IDE来用. 在Windows下用惯了各种现成的工具,转到Linux下,一下没了头绪……好歹google出 ...
- 三点半们耐热i哦好家哦i囧囧【
http://pan.baidu.com/share/link?shareid=3011665141&uk=338692646&third=15 http ...