此前传言已久将关闭手机业务的LG方面,日前已经正式宣布将退出手机市场,并且包括此前诸多老牌厂商的陆续推出,也使得整个行业的参与者变得越来越集中。事实上无论是LG还是HTC,旗下产品在市场上声量越来越小的原因,通常都可以用产品竞争力不足来解释。而为了避免在激烈的市场竞争中掉队,手机厂商为了增强自家产品的竞争力,各种“黑科技”也层出不穷。
近期,内存闪存融合或者说内存拓展技术,俨然成为了不少厂商在宣传中多次被提及的一个功能。通过这一技术,原本8GB内存的手机可以变成10GB,而12G内存甚至则可以变为19GB,因此对于饱受内存不足困扰的用户来说,这种技术看起来似乎正是为他们而来。那么,这种给手机增加内存的技术到底是怎么一回事呢?
在回答这个问题前,我们不妨先来了解一下什么是内存,什么又是闪存。通常意义上我们所说的内存和闪存,顾名思义就是用来存储数据的元器件,但根据用途可以分为两大类,就是大家所知道的RAM和ROM。其中RAM是内存,又叫随机存储器,是一种易失性存储器,RAM的特点是断电时会丢失所存储内容,所以主要用于存储短时间使用的数据,并作为系统运行时的数据动态缓冲区来使用。
而ROM则是一种非易失性存储器,通常叫做闪存。闪存虽然名字里有“闪”,但其储存数据却可以是长久的,特点就是数据一旦写入后就会被固定下来,即使切断电源存储的数据也不会丢失,通常大家在手机中存储的图片、照片、视频、APP,都是被存储在其中。
相比于闪存所使用的NANDFlash芯片,内存使用的DRAM芯片,其中特别是LPDDR5芯片的价格则要昂贵许多,所以造成的结果就是10GB、12GB,乃至16GB和18GBRAM通常只会出现在中高端机型上,在出货量更大的中低端领域则往往还是以6GB和8GB规格为主。众所周知,手机的内存越大能够同时打开的APP就越多,而在如今移动互联网渗透率极高的当下,用户对于同时保持多个APP运行显然也是有着一定需求的。
不过可能很多朋友已经发现,现在动辄10GB内存的机型能够同时运行的APP数量,其实并没有比当年3GB或4GB时代多很多,这其实并不是错觉。事实上这个现象用“安迪-比尔定律”来解释非常恰当,就是硬件所提高的性能,很快就被软件消耗掉了,这其中既有硬件厂商希望寻求新的卖点、开发者为了提升开发效率的”私心“,往往也有Android手机“打娘胎里就落下的病根”。
日前,美国最高法院判决判定谷歌复制甲骨文拥有版权的JavaAPI代码属于合理使用,让持续十余年的Android与其开发语言Java之间的纠葛告一段落。其实早年间Java之所以被谷歌看中选为Android的开发语言,就是考虑到其优越的跨平台特性与二进制分发打包能力。
由于Android系统在运行时需要首先打开虚拟机,然后将应用程序的Java代码动态编译为SoC能够直接识别的机器码,然而在Java这种计算机语言中,关于内存的分配是由程序自动完成的,而内存的释放则是由GC(GarbageCollection)完成。这种资源收支分离的特点尽管简化了开发者的工作,但这种“双线作战”的方式也加重了JVM、Dalvik和ART,这一系列Java虚拟机的工作量,所以这也是Java程序运行速度相对较慢的原因之一。
苹果iPhone为什么能够实现内存比同时期Android机型更小,但运行反而流畅的效果?除了出色的内存管理机制和更强的硬件外,iOSAPP开发用得最多的ObjectiveC和Swift都是不使用GC机制的Native语言,避免了额外的资源开销,自然也就提升了iOS的运行效率。
简而言之,由于Android使用的Java开发语言本身在性能方面的劣势,开发者为了尽可能提升APP的效能,自然会在最大限度上占用更多内存。可当手机里这个APP想多占一点,那个APP也想多占一点,最终的结果就是内存在越来越大的情况下,可以同时运行的APP数量却并没有发生变化,也就意味着硬件的提升就这样悄悄地被软件吞噬了。
所以对于内存容量有限的中低端机型来说,内存拓展技术无疑就很有意义了。然而这项技术从严格意义上来说,并不能被称为黑科技,而是“科研考古”,因为早在Android2.2时代,也就是十年前,Android就有了zram与swap两大解决内存不足的相关技术。
据了解,zram与swap是两种略有不同的技术路线。swap简单来说,就是Windows的虚拟内存技术,也就是将ROM作为RAM使用,它的优缺点也与虚拟内存类似,可以让系统同时运行很多的程序或是对内存有更大需求的程序,但读写速度则低于内存,并且这种反复擦写闪存的方法也更容易让闪存降速进而导致卡顿。
zram则是将物理内存中的一部分划分出来,将后台应用和前台应用的不活跃代码部分进行压缩,需要的时候将数据解压出来,通过降低数据规模的方式变相增大内存。但zram的代价,就是压缩数据需要CPU来负责计算和甄别APP中的哪些代码不活跃,所以这一过程就会降低SoC的运行效率。
当然,这并不意味着zram和swap在今天又被手机厂商重新拿出,就是毫无意义的了。事实上在5G时代,厂商为了让手机的续航表现更为出色,在系统策略上对于APP的后台驻留往往非常敏感,并且会更为积极的将用户刚刚切出后台的应用直接终止进程,而这就是大家所俗称的“杀后台”,以至于谷歌甚至要在Android11上应用“缓存应用冻结”功能。毕竟这种现象对于需要经常进行多任务操作的用户来说,是非常不友好的。
但需要注意的是,对于本就拥有大容量内存的高端机型来说,在物理内存足够的情况下,zram与swap其实都不是必须的,或者说为了使用体验最好不要使用这类技术。所以如今的内存闪存融合或内存拓展技术对于中低端机型的用户来说,可能会非常有用,但是旗舰机型在没有特殊需求的情况下并没有必要进行太多的尝试。