Android 编译版本、support、主题版本那些事

compileSdkVersion, minSdkVersion , targetSdkVersion

  • compileSdkVersion:编译版本,控制可以使用哪些 API 。不会被包含到 APK 中
  • minSdkVersion :最低兼容版本
  • targetSdkVersion:应用运行时使用的版本,即使使用了高版本API也不会生效
  • 合理的关系 minSdkVersion <= targetSdkVersion <= compileSdkVersion
  • 理想的关系 minSdkVersion (lowest possible) <= targetSdkVersion == compileSdkVersion (latest SDK)

v4 v7 v13

1. 概述

Google为了在较低版本中兼容高版本的控件和布局以及相关的一些主题(Theme),推出了兼容包,方便开发人员在较低版本中使用高版本的效果。

  • support-v4 : 该系列包用在API Level 4(即Android 1.6)或者更高版本以上。它包含了相对于正常SDK中更多的内容。比如说:Fragment、NotificationCompat、LoadBroadcastManager、ViewPager、PageTabStrip、Loader、FileProvider等。
  • support-v7 : 该系列包是为了考虑在API level 7(Android 2.1)及以上使用高版本效果而设计的,v7包含了v4的所有效果(v7中包含v4包的,即v7依赖于v4),v7当中支持了很多新的效果,最新的版本中还支持了Material Design的多种新的布局和空间。比如说:RecyclerView、TabLayout、ToolBar、CardView等等新的包。
  • support-v13 : 该兼容包系列主要是为了兼容API level 13(Android 3.2)以上的,是为了针对于平板兼容开发的,由于平板屏幕较大,因此该系列增强的对Fragment效果的支持,使得Fragment能够在平板的各个版中兼容(一般手机开发者不用该包)。
  • v14(兼容4.0及以上)系列并没有见过有使用的地方,因此这里不赘述,不过手机开发应该很少用到
  • v17(兼容4.2及以上)主要是为了支持电视设备,并为电视设备提供了一系列的组件。如下:BrowseFragment, DetailFragment, PlaybasckOverlayFragment, SearchFragment 具体导入跟上面v4、v7一样。
2. 注意事项
  • 引用appcompat-v7包的时候就不需要引用v4了,gradle会自动加入所有v4包的依赖,并且是和v7相同的版本
  • support-fragment 依赖于v4所有其他子 Module,等价于引入v4包
    在这里插入图片描述
  • v4的依赖冲突其实是不同版本v4的冲突,并且是本地lib和maven引入不同版本才会冲突

Theme

  • Hoho Theme:在4.0之前Android可以说是没有设计可言的,在4.0之后推出了Android Design,而在程序实现上相应的就是Holo风格,所以你看到有类似 Theme.Holo.Light、 Theme.Holo.Light.NoActionBar.Fullscreen等主题,就是4.0的设计风格,但是为了让4.0之前的版本也能有这种风格怎么办呢?这个时候就不得不引用v7包了,所以对应的就有Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar,如果你的程序最小支持的版本是4.0,那么可以不用考虑v7的兼容。
  • Material Design Theme:5.0版本,Android推出了Material Design的概念,对应的程序实现上就有 Theme.Material.Light、 Theme.Material.Light.DarkActionBar等。,但是这种风格只能应用在在5.0版本的手机,如果在5.0之前应用Material Design该怎么办呢?引用appcompat-v7包,这个时候的Theme.AppCompat.Light、 Theme.AppCompat.Light.DarkActionBar就是相对应兼容的Material Design的Theme
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值