关于android的sdk版本和分辨率

来源:互联网 发布:华润置地薪酬 知乎 编辑:程序博客网 时间:2024/06/06 00:16

有一篇文章较好地说明了该问题: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应该怎么设置呢?

原创粉丝点击