老问题了,手机对软件的兼容性是受处理器的arm,x86,mips等结构影响。对游戏的兼容性是受gpu的纹理压缩方式的影响。
“手机3D游戏兼容性产生的原因
现在Android平台大多数手机3D游戏都只有适用于Tegra2处理器的版本,因此那些采用PowerVRSGX系列GPU、高通Adreno系列GPU和ARM的Mali系列GPU的手机便出现了无法正常运行这些3D游戏的情况。这个游戏兼容性问题,就是所谓的没有数据包支持,究其根本原因,是因为各家GPU支持的纹理压缩格式不同。
目前安卓平台使用的GPU支持的纹理格式主要有以下几种:
PVRTC:PowerVR系列GPU支持
ATITC:高通Adreno系列GPU支持,来自以前的ATI
DXTC:nVIDIATegra系列的GeforceULP支持,其实是微软DirectX的东西,来源于以前的S3TC
ETC1:ARM的Mali系列GPU支持,以上三家也支持
上述几种纹理压缩格式都是互不兼容的,好在大家都支持OPENGLES要求的一种通用格式ETC1。
但是ETC1有个问题,就是不支持Alpah通道,只能把一个纹理拆成2个去间接实现,游戏厂商大概觉得比较麻烦吧。所以像地牢守护者等大作,只提供了PVRTC、ATITC和DXTC三种数据包,这样只支持ETC1的GPU就会有点悲剧了。”
除了以上4种gpu分类,还有一个新的博通系的gpu,自家的videocore,一般用通用数据包,由于加入安卓太晚,很多游戏都不兼容。
还有软件(非游戏)的兼容性问题是由处理器的结构引起的。比如k900的处理器z2580是x86,而其他手机的处理器大部分是arm结构,采用的指令集不同。安卓是基于arm处理器,x86指令要运行安卓就需要翻译才能运行,其他mips,powerpc结构处理器也是一样的问题。
k900的应用兼容问题。
mips则使用magiccode处理。
只要知道手机处理器的cpu和gpu,就能基本判断出其兼容性。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有