如果没有显示的声明该属性,系统指定一个默认值1,表明你的程序兼容Android系统的所有版本。如果应用并不是兼容所有的版本的android系统(举例来说,应用用到了API3 才引用的API),而且你没有声明minSdkVersion属性,当应用安装到API的级别小于3的系统上且试图访问不可用的API时,系统将会异常终止。有鉴于此,请确定,应用已显式声明 minSdkVersion属性。
:android:targetSdkVersion
::一个整数用来指定应用目标的API级别。如果没有设置,默认值等于minSdkVersion所给的值。
::该值用来告诉系统应用已经在目标版本上进行测试以及系统可以不启用任何兼容性行为来维持你的应用的向前兼容性。应用同样可以在老版本上运行(向前一直追溯到minSdkVersion).
::当android演变为一个新的版本,一些行为甚至外观可能会改变。如果,用户平台的API级别比应用声明的targetSdkVersion版本高,系统可以启动兼容性行为来确保你的应用程序继续以你期望的方式工作。“你可以通过指定targetSdkVersion与应用可运行的平台的API等级相匹配来禁用这种兼容性行为。例如,将值设置为“11”或更高,允许系统使用一个新的默认主题(整体)到你的应用程序并且禁止
::屏幕兼容模式当程序安装更大的屏幕上的时候(因为API11隐式的支持更大的屏幕)。
::有许多兼容性的行为是可以设置的,这些行为描述可以参考Build.VERSION_CODES.
::为了维护您的应用程序沿着每个Android版本发布,你应该增加这个属性的值,以符合最新的API级别,然后在相应平台版本上彻底地测试您的应用程序。
:android:maxSdkVersion
::一个整数来制定应用支持的最大的API级别.
::在Android1.5,1.6,2.0和2.0.1,系统会在安装应用程序和系统更新时重新验证这个属性的值。在任何情况下,如果应用程序的maxSdkVersion属性是低于系统本身所使用的API级别,那么系统将不允许应用安装。在系统更新后重新验证失效后,系统会立即将此应用从设备移除。
::为了说明这个属性如何影响系统更新后您的应用程序,考虑下面的例子:
::应用程序在它的manifest声明maxSdkVersion=“5”,并且发布在谷歌电子市场。用户的设备运行Android1.6(API等级4)下载并安装应用程序。几个星期之后,用户接收到Android2.0(API等级5)空中系统更新。安装更新后,系统会检查应用程序的的maxSdkVersion,并成功地重新验证它。应用的功能和正常一样。然而,一段时间后,设备接收到另一个系统的更新,升级到Android2.0.1(API等级6)。系统更新后,应用程序不能再通过重新验证,因为系统自身的API级别(6)现在是高于应用支持的最大的API级别(5)。系统就可以在用户可见之前移除该应用.
* 警告* :不建议声明此属性。首先:是没有必要去设置属性来阻止应用被安装在新的android平台上,根据设计,android平台是完全向后兼容的,假如你的应用使用标准的API,就应该会在新版本上正常工作.二:请注意,设置这个属性后,其结果是在系统升级到更高的API等有后,应用将会从用户的设备上被移除掉。你的应用可能被安装到的大多数设备,都会收到定期的系统升级信息,在设备这个发生之前,你应该充分考虑到这种情况对应用影响。.
:介绍在:
::API等级4
:未来版本的Android(超过Android2.0.1的)将不再检查或执行安装过程中验证maxSdkVersion属性。然而,在呈现给用户可供下载的应用时,电子市场依旧将其作为作为一个过滤器使用。。
介绍在:
:API等级1
什么是API等级
========
:API等级是由Android平台提供的用来唯一识别API框架版本号的一个整形数值。.
:Android平台提供了一个API框架,应用程序可以使用其与底层的Android系统进行交互。该框架API包括:
:😗 一套核心的包和类
:😗 一个XML元素和属性集来声明一个manifest文件
:😗 一个XML元素和属性集来声明访问的资源
:😗 一组intent(意图工具)
:😗 一组系统权限,应用程序可以请求,也可以强制允许包含在系统内.
:每个后续的android平台会把他提供的更新包含在android API中.
:API升级的模式是设计向后兼容的,所以新的API仍然兼容早期的API版本,也就是说大部分分的变化是新增加API或者对原有的进行替换,例如:部分API被升级,这些老的被弃有,但是不会删除,使现有的应用程序仍可以使用它们。在极少数情况下,部分的API可能被修改或删除,这种变化通常只需要确保API的健壮性和应用程序或系统的安全性。所有其他API部分,无需修改。
:Android平台提供的API框架指定了一个整数标识符,称为“API级别”。虽然每一个Android平台版本精确地支持一个API等级,但是其隐含的支持所有早期的API级别(直至API等级1)。 Android平台提供的API 初始版本(API等级1)和后续发行版本的API等级是递增的。
下表指定API级别支持的每个版本的Android平台:
{|style="border-spacing: 0px;margin: 4px 4px; width: 90%; border-left:1px solid #ccc;border-top:1px solid #ccc; "
|-style="background:#DEE8F1; "
! style=“border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px” | 平台等级
! style=“border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px” | API等级
! style=“border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px” | 版本代号
! style=“border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px” | 备注
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
| style=" border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
| style="border-right:1px solid #ccc;border-bottom:1px solid #ccc; padding:5px 15px; " |
|- style=" vertical-align:top;"
总结
可以看出,笔者的工作学习模式便是由以下 「六个要点」 组成:
❝ 多层次的工作/学习计划 + 番茄工作法 + 定额工作法 + 批处理 + 多任务并行 + 图层工作法❞
希望大家能将这些要点融入自己的工作学习当中,我相信一定会工作与学习地更富有成效。
下面是我学习用到的一些书籍学习导图,以及系统的学习资料。每一个知识点,都有对应的导图,学习的资料,视频,面试题目。
**如:我需要学习 **Flutter的知识。(大家可以参考我的学习方法)
- Flutter 的思维导图(无论学习什么,有学习路线都会事半功倍)
- Flutter进阶学习全套手册
- Flutter进阶学习全套视频
大概就上面这几个步骤,这样学习不仅高效,而且能系统的学习新的知识。
总结
可以看出,笔者的工作学习模式便是由以下 「六个要点」 组成:
❝ 多层次的工作/学习计划 + 番茄工作法 + 定额工作法 + 批处理 + 多任务并行 + 图层工作法❞
希望大家能将这些要点融入自己的工作学习当中,我相信一定会工作与学习地更富有成效。
下面是我学习用到的一些书籍学习导图,以及系统的学习资料。每一个知识点,都有对应的导图,学习的资料,视频,面试题目。
**如:我需要学习 **Flutter的知识。(大家可以参考我的学习方法)
- Flutter 的思维导图(无论学习什么,有学习路线都会事半功倍)
[外链图片转存中…(img-30uaxngT-1725903093131)]
- Flutter进阶学习全套手册
[外链图片转存中…(img-binRRCTG-1725903093132)]
- Flutter进阶学习全套视频
[外链图片转存中…(img-D9PifRmS-1725903093132)]
大概就上面这几个步骤,这样学习不仅高效,而且能系统的学习新的知识。