关于android的sdk版本和分辨率

有一篇文章较好地说明了该问题:http://community-china.developer.motorola.com/t5/MOTODEV-%E5%8D%9A%E5%AE%A2/%E6%82%A8%E7%9A%84-Android-%E5%BA%94%E7%94%A8%E5%85%B7%E6%9C%89%E5%85%BC%E5%AE%B9%E5%90%97/ba-p/1616

如果您还不熟悉兼容模式,我首先介绍一下相关背景。兼容模式的出现是为了扩展支持API级别4的多种屏幕密​度。最初的Android设备设计成支持HVGA(480x320)模式下的中等分辨率(160dpi)。​为这些设备设计的大多数应用都是在API级别3下编译。当显示屏扩展到包括低分辨率(120dpi)和高分​辨率(240dpi)时,Android架构设计需要确保这些程序还能兼容160dpi分辨率的设备。当时​的方案是定义一种兼容模式,使得那些程序能按比例放大或缩小,以此来仿真HVGA的160dpi分辨率。A​ndroid1.6开始,Android平台把160dpi作为正常的屏幕密度,并把运行在160dpi分​辨率的设备分配了逻辑密度系数1.0. 120dpi分辨率的设备的逻辑密度系数为0.75,240dpi分辨率的设备的逻辑密度系数为1.5. 运行在兼容模式下的程序根据相应设备的系数来缩放。通过缩放比例来模拟正常的屏幕密度,这样应用在各种设备​上都显示一致的效果,这就是所谓的在兼容模式下执行应用。下面是一篇介绍这一原理的MOTODEV 英文博客。

http://developer.android.com/guide/practices/scree​ns-support-1.5.html#CompatMode.

通过下面两种方式之一可以设置兼容模式:

  • 在 SDK 1.5下编译,也就是设置 minSdkVersion 为 3
  • 在SDK 1.6 或更高版本下编译,也就是设置 minSdkVersion 和 targetSdkVersion 为 3

<uses-sdk android:minSdkVersion="3"
android:targetSdkVersion="3"/>

兼容模式在显示屏为VGA及其VGA衍生模式的设备上能按设计的方式工作,但当显示屏不属于这个范围时,​它会使应用产生不完美的显示效果,如阴影方框效果。

按我的理解,当初设计兼容模式是为了可以使应用程序可以自动适应屏幕分辨率的变化,系统会自动缩放你的界面。但到后来,设备的分辨率越来越高,该方法虽然可以“兼容”,但效果并不好,毕竟系统的缩放只能在一定程度上解决该问题。如果程序员可以根据设备分辨率的大小,采用不同显示质量的图片资源,如分辨大的设备采用HD资源,分辨小的设备采用低分辨的图片,可以在不同的设备上获得显示最佳效果。


另外,转一下各Android SDK版本号的含义:

NDK也有多个版本:


真的很容易混淆啊,不同版本SDK和NDK搭配的应用,mini SDK和target NDK应该怎么设置呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值