做过android开发的程序员都知道,在开发一款android软件的时候往往要考虑到各种适配的情况。例如几个比较常见的就
是屏幕的适配和系统版本的适配。从屏幕来看由以前的手机屏幕到现在的平板屏幕,从以前的低分辨率
屏幕到现在的高分辨率屏幕,都在不断的变化。还有就是android的版本从最初的android 1.5(纸杯蛋糕)到现在的android5.0(棒棒糖),每
到一个版本都有很大的变化,其性能上也有很大的提升。虽然相比较于以前android的最初版本到现在的android5.0有了很大的改善,但是
版本的过渡也给程序员带了很的困扰,例如:如果想要用新版本的一些特性,但又要考虑到以前版本的兼容。所以往往在开发的一款android软件
时候都是基于最低的SDK版本来进行开发的。就目前来看各个版本的市场占有率:
具体数据为:
“果冻豆”系统(Android 4.1.x和Android 4.2.x)占有率攀为37.9%;“姜饼”系统(Android 2.3.x)占有率为34.1%。
“冰淇淋三明治”(Android 4.0.x)为23.3%;“蜂巢”(Android 3.2)仅为0.1%;Android 2.2占有率为3.1%;Android 2.1为1.4%。
而谷歌6月初发布的数据显示:“姜饼”系统占有率最高,达36.4%;“冰激凌三明治”(android4.0)占有率为25.6%;android4.1/4.2“果冻豆”占有率为33%。
通过以上数据可以看出虽然大部分的用户所用的系统版本都是在android4.0以上,但是android2.3.x的市场占有率也有很多。
所以对于android开发者来说开发一款android软件想要获得更多的用户量,就要适配到合适的android SDK。作为android开发者来说要想获得很好的
用户体验,往往要考虑到以下几点:
一、 屏幕适配
在开发过程中最让android开发者蛋疼的便是屏幕适配问题,最常用的做法就是适配分辨率较低的手机。虽然能够适配到低分率的手机,但是如果相同的
布局放到高分辨率的手机时。显现的效果却又大相径庭,所以往往android开发者会采用自定义控件来适配手机屏幕,从而达到相同的显示效果。往往很多人
都觉得苹果手机的显示效果非常的细腻。其实可以对比一下早期苹果和android手机分辨率,早期比较流行的iPhone4的分辨率是960×640像素。
iPhone4采用3.5英寸IPS屏幕,同时加入了新的Retina Display(视网膜)显示技术,每英寸的面积里有326个像素,通常电脑显示屏幕的分辨率为72ppi,
iPhone4的分辨率为电脑的4倍多,所以显示会非常细腻。android早期比较流行的分辨率主要是480*320像素,从这可以便苹果手机为什么这么贵的原因了。
就目前流行的android和苹果来看,也是有很大的差距。下面是三星GALAXY S5、小米4和iphone6 plus的分辨率。
可以看出作为android开发者来说要兼顾到多少的手机适配从480*320像素到 1920x1080像素。而且这其中的像素过渡也是比较长的,这里像素过渡主要是
不同像素的版本还是存在的。原因在于现在还有不少的国内手机厂商所用的屏幕都没有一个稳定的版本,往往低端手机的屏幕分辨率都是相对较差。而高端
手机的分辨率都是比较高的。其实相对于android开发者来说,苹果开发者还是比较幸运的,因为就目前苹果手机过渡的几个版本来看无非就是iphone4~iphone6。
所以对于屏幕适配,苹果开发者考虑的还是比较少的。这也是为什么同一款应用,在android手机上的显示效果比苹果差的原因。其实还有一部分原因在于苹果
本身,细心的可以发现苹果对于ui的过渡处理都是优于andorid的。所以屏幕适配是影响android应用的原因之一。
二、android系统版本的适配
通过上面的android系统版本的市场占有率来看,作为android开发者肯定是要考虑到android系统版本适配的问题。一般就目前来说,作为android开发者来说
一般适配的android系统版本主要是针对2.3.x以上的系统版本。其实早期的几个比较经典的版本主要就是android2.2.x和2.3.x这两个版本,所以虽然目前最高的
android系统已经发展到android5.0。但是仍然有不少的用户还在使用2.2和2.3这两个系统版本。其实这里面也有手机制造商的原因,在android早期的时候手机制造
商们在手机里面嵌入系统时。并没有考虑到用于在拿到这款手机后系统升级的问题,因为他们宁愿让用于去重新买个最新系统版本的手机。也不愿用户在原有手机
的基础之上进行系统升级,也有可能是早期的手机并不能正常的运行着些高版本的系统。其实每一版的系统都有着很大的改变,其中比较失败的还是android3.0。因为
这个版本主要是适用于android平板。处于这个原因Google公司在2011年10月19日,仓促的发布了android4.0。该系统将手机与平板设备进行整合,拥有全新的UI界面
和Linux内核,支持虚拟按键。其实我们可以对比下两android系统版本所更新的内容,从中可以看出在基于低版本android系统开发和高版本系统开发对于应用有哪些影响。
以下对比出早期比较经典的android2.3和目前市场占有率较高的android4.0这两个版本的比较:
android 2.3更新内容 android4.0更新内容
增加了新的垃圾回收和优化处理事件 全新的UI界面
新的管理窗口和生命周期框架 全新的Chrone Lite浏览器,支持离线阅读、标签页、隐身浏览模式等功能
支持vp8和WebM视频格式,提供AAC和AMR宽频编码, 截图功能
提供了新的音频效果器 更强大的图片编辑功能
支持前置摄像头、SIP/VOIP和NFC(近场通信) 自带照片应用堪比Instagranm,可以加滤镜、加相框,进行360°全景拍摄,照片还能根据地点来排序
简化界面、速度提升 Gmail加入手势、离线搜索功能,UI更强大
一键文字选择和复制/粘贴 新增流量管理工具,可具体查看没给应用产生的流量
改进的电源管理系统 正在运行的程序可以像电脑一样进行相互切换
新的应用程序管理方式 人脸之别功能,同时前置摄像头可以进行面部解锁
增加In-app purchases功能 系统优化、速度更快
支持虚拟按键,手机可以不再拥有任何按键
更直观的程序列表
平板电脑和智能手机通用(这也是为什么说android 3.0是一个失败的产品原因)
支持更大的分辨率
专为双核处理器编写的优化驱动
全新的Linux内核(android 4.0已经采用的Linux内核版本是3.0)
增强的复制粘贴功能
全新的通知栏
更加丰富的数据传输功能
支持更多的传感器
全新的3D驱动,游戏支持能力得到提升
全新的谷歌电子市场(Google Play)
增强了桌面插件自定义功能
从这两个系统版本更新内容对比来看,早期的android系统与现在的高版本系统还是有很大的差距。这也是为什么有的android应用做的这么好,往往就是用到了
高版本的系统中的一些特性。其实对于android开发者来说基于高版本的android开发又何不是一种福利,说个简单的例子:android4.0中的动画就可以采用属性动画
而在2.3中是不支持的。属性动画要比2.3中所采用的动画更为简洁,一句代码即可搞定。但是往往我们需要考虑到用户量的原因,就不得不采用低版本的android SDK来开发应用。
三、应用内存的处理
很多的android开发者在开发过程中往往都注重在对于应用效果控制,而很少去管理自己的应用内存。使用过android手机的都有同一种感觉,那就是当手机所安装的应用过多的时候
就会出现手机卡顿或死机的情况。而且当应用装到一定的个数的时候往往就不能再安装应用了,其实也有很多的android用户抱怨说android太卡,运行程序特别慢。刚买的新手机还特
别流畅,当安装的个数逐渐增多的时候。便会出现这种情况,就算把应用卸掉还是没有以前那么流畅。只有将手机恢复出厂设置才会好一点,这也是为什么有很多的android用户转而投向苹果用户
其实主要原因有几下几点:1、android系统是允许后台长时间进程,一般的android应用都会通过应用启动后台服务和开机启动服务。除非在内存非常紧张的情况下才会将一些长时间没用过的
后台服务干掉。这也是android和iphone的区别之一,iphone是不允许长时间后台服务的。在一定的时间内,系统会自动将服务干掉不管你是否重要。这也是为什么苹果1G的运行内存用起来一点都不
卡的原因。就目前android设备来看,1G的运行内存已经不能满足用户的需求了。2、android应用存储在本地的数据量特别大,下面是截图的几个应用安装后所占用的内存。大家所熟悉的QQ,所占用的内存
是84M,单单就是数据存储就是54.7M。可想而知如果装的android应用越来越多,肯定是内存不够的。3、卸载应用数据保留,android应用在安装到手机之后往往会产生大量的数据。然而当用户将软件卸载后
这些数据并没有像用户想象的那样消失,而是存在了本地。其实可以想象下装了10应用,每个应用的数据占用内存是50m,卸载后留下的数据就是500M。可想而知对手机的内存影响有多大。
有问题就是有需求,这也是为什么会出现清楚残留垃圾的软件(360卫士,百度手机管家)
总结:以上分析纯属个人理论,具体的以实际为准。其实想要推动android的发展往往并不是手机制造商制造更好的手机,更需要的是android开发者能够做出更好的应用来吸引用户。
只有这样android才能立于不败之地,我想这也是为什么Google会将android开源。纵观android的发展,不得不说是一个奇迹的存在。为此,希望大家共同为android的发展努力。