Android targetSdkVersion的作用

前言

今天把自己的测试机子升到7.0,在开发中运行了一个关于拍照的Demo,突然遇到颠覆了我的世界观的问题,7.0版本在运行代码时不做拍照权限处理,居然不闪退,再次试了下6.0依然是没有出现闪退,卧槽!!!,第一反应就是targetSdkVersion.......

解析
targetSdkVersion我在网上搜了一遍,网上讲的我觉得是一头雾水,经过总结,我认为很简单:

导入包版本>targetSdkVersion(24)
如导入25版本包也会变红导致没用如下

targetSdkVersion(24) > 手机的版本(6.0)
对应项目会运行手机版本内一切特性。譬如项目targetSdkVersion是24,那么项目里没做6.0权限管理,调用危险权限相机就会闪退(利大于弊)

**手机的版本>targetSdkVersion **
项目运行效果为targetSdkVersion 版本。譬如项目targetSdkVersion是22,那么项目里没做6.0(23)权限处理,调用危险权限如相机不会出现闪退和提示,照常运行,项目特性运行到22版本。

**手机的版本=targetSdkVersion **
如果目标设备的API版本正好等于此数值, 他会告诉Android平台:此程序在此版本已经经过充分测,没有问题。不必为此程序开启兼容性检查判断的工作了。 也就是说,如果targetSdkVersion与目标设备的API版本相同时,运行效率可能会高一些。 但是,这个设置仅仅是一个声明、一个通知,不会有太实质的作用

用较低的 minSdkVersion 来覆盖最大的人群,用最新的 SDK 设置 targetSdkVersion和 compile 来获得最好的外观和行为。强烈推荐targetSdkVersion升到最新版本。

以上是我想到的粗略的整理,有错误的可以纠正

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,067评论 25 708
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 4,480评论 0 12
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 首先我们来看几个术语 HEAD 这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交 Index inde...
    hades574阅读 351评论 0 1
  • 申明:这是一篇广告文。 讲师:游峰 适用人群: 喜欢项目管理和喜欢Project的同学。学习目标: 掌握操作要领,...
    小名一峰阅读 1,390评论 0 1