Android Studio中minSdkVersion、targetSdkVersion、compileSdkVersion、buildToolsVersion的理解

Android面试:compileSdkVersion、targetSdkVersion、minSdkVersion作用与区别 作用 Android Studio 新建一个工程后,build.gradle里会有compileSdkVerson、targetSdkVersion、minSdkVersion这几个字段,这些配置有啥意义呢? compileSdkVersion: 和编译时有关。比如我们当前compileSdkVersion=28(Andorid 9.0),Android 10 新增了有关5G的api。我们的app想尽早使用5G相关的api,这时只需要将compileSdkVersion=29(Android. 阅读详情

1.minSdkVersion和targetSdkVersion
targetSdkVersion表示能够使用的最高的SDK版本(API)。
minSdkVersion表示支持的最低的SDK版本(API)。
换言之,minSdkVersion和targetSdkVersion相当于一个区间。在这个区间内的设备都能够正常的执行我们开发的app。换句话说,如果你想使用Android刚刚推出的新特性或者较高版本的新功能,但是呢,这对于你的app又不是必须的,那么我们就可以将targetSdkVersion设置为我们想使用的新特性的SDK版本号(一般来说就是最高的版本),然后把minSdkVersion设置成低版本号保证一部分人能够使用你的app。

举一个样例:假如你想给你的app增加大量的手势操作(sdk 7才引入的),然而这些手势操作能够被Button啊或menu等取代,在这样的情况下,手势操作就是一个额外的加分功能,而不是一个必须的功能,因此你就须要把targetSdkVersion设置为7,把minSdkVersion设置为3(这是举个样例,如今没人还在用这么老的设备了)这样即使是使用老设备的用户也能够用你的app了。

然后你所要做的就是要在代码里推断版本号,假设是大于等于7的版本号中就使用手势操作,小于7的版本号中就使用button等取代,这样使用了新手机的用户就能够体验到你app中酷炫的新功能了。

另外一个样例:假设你想给你的项目增加Android 5.0的Material Design,有一些用户可能会升级到5.0而使用到你的新特性,而有一部分用户的手机硬件太老,不支持升级到5.0,除非他们换新手机。那么你就要为他们进行向下兼容,不至于损失这部分用户,这样你的targetSdkVersion设置为21。minSdkVersion能设置为8.
2.compileSdkVersion和buildToolsVersion
1、CompileSdkVersion是你SDK的版本号,也就是API Level,例如Android-25、Android-26、Android-27等等.
2、buildeToolsVersion是你构建工具的版本。
3、可以用高版本的build-tool去构建一个低版本的sdk工程,例如build-tool的版本为28.0.3,去构建一个sdk版本为27的
例如:

compileSdkVersion 27
buildToolsVersion "28.0.3"

这样也是OK的。
4.其中比较重要的目录包括【build-tools】【platforms】【platform-tools】【tools】
【build-tools】里面是不同版本(例如"28.0.3")的build工具,这些工具包括了 aapt打包工具、dx.bat、aidl.exe等等
【platforms】是存放不同API-level版本SDK目录的地方
【platform-tools】是一些android平台相关的工具,adb、fastboot等
【tools】是指的安卓开发相关的工具,例如android.bat、ddms.bat(Dalvik debug Monitor Service)、draw9patch.bat等等

注意:在app的build.gradle中compileSdkVersion和targetSdkVersion应该保持一致。
下面是SDK的API-Level和Android版本的对应表:
Android与API对应表

Unity Android构建:compileSdkVersion与buildToolsVersion配置全攻略 在Android应用开发中,compileSdkVersion和buildToolsVersion是构建配置的核心参数,它们分别定义了编译时使用的API级别和构建工具版本。理解其原理对于确保项目顺利编译至关重要:compileSdkVersion决定了代码能调用的API范围,而buildToolsVersion则包含了aapt、d8等实际执行资源编译、代码转换的工具链。正确配置这些版本号的技术价值在于避免构建失败、确保与第三方SDK(如广告、支付插件)兼容,并满足Google Play商店的上架要求。在Un 阅读详情

相关推荐

界面上下固定_基于ANSYS的胶粘结构界面开裂有限元计算

引言:目前工程上主要有螺栓,过盈,焊接和胶粘四种常用的连接方式,本文基于ANSYS Workbench环境,引入内聚力模型来实现对胶粘结构界面开裂失效的计算,文中的界面失效参数为随意给定,不是工程实际测试数据,仅起到演示作用!1.问题的描述如图所示给出了胶粘结构的三维模型,该胶粘结构由上下钢板组成,中间通过胶粘接到一起。(胶不需要建模,其影响主要通过内聚力模型实现)上下板的材料为结构钢,...

weixin_29473667的博客 1万+

详解 MinSdkVersion、CompileSdkVersion、TargetSdkVersion 三者的区别、作用与关系(超详细图文教程)

对 Android 项目来说,MinSdkVersion、CompileSdkVersion、TargetSdkVersion 这三个属性是必不可少的,贯穿于应用开发的始终,它们的作用也非常重要,只有搞清楚它们三者的内在含义和逻辑关系才能「正确」地设定或修改它们的数值,以确保应用在不同版本的 Android 系统上正常的运行。用较低的 minSdkVersion 来覆盖最大的人群,用最新的 SDK 设置 targetSdkVersion 和 compileVersion 来获得最好的外观和行为。

指尖流连敲击梦想,代码行行承载远方! 2万+

树莓派教程(基于python编程)--入门篇

一:格式化SD卡 SD卡插入读卡器连接电脑,使用SDFormatter对SD卡进行格式化 (重装烧录也要进行着SD卡格式化操作) 二:下载官方镜像 http://downloads.raspberrypi.org/raspbian_latest 三:烧录SD卡 使用Win32DiskImager将镜像烧录到格式化后的SD卡 SD卡盘根目录(/boot)下新建一个命名为ssh的...

qq_42109746的博客 6万+

Android之targetSdkVersion详解

Google 官方发布文章解析 compileSdkVersion、minSdkVersion 以及 targetSdkVersion 的含义,以及合理设置各个值的意义,原文Picking your compileSdkVersion, minSdkVersion, and targetSdkVersion(后面简称 “原文”),还有翻译版。 其中,compileSdkVersion 和 mi...

LVXIANGAN的专栏 1万+

PDS联合Modelsim仿真报错(Error loading design) line6报错 -novopt已禁用 (全网最详细!!!!!)

发现这个文档是Pango自动生成的,也就是说每一次我们点击"Run Behavior Simulation"的时候,PDS都会自动生成一次这个./run_behav_simulate.tcl文件,所以就算我们这一次把这个文件修改了,我点击"Run Behavior Simulation"想让它再跑一次正确的仿真,它此时又重新生成了这个带有-novopt的错误tcl文件,仿真依旧不能成功。问题真的是出在这里,那我们修改这个./run_behav_simulate.tcl文件就好了,但事实并非如此!

weixin_74058783的博客 3193

python批量生成CAD图纸

python批量生成CAD图纸

轩逸云的博客 1万+

compileSdkVersion、targetSdkVersion以及minSdkVersion三者关系

minSdkVersion: app运行要求的手机最低安卓版本。比如安卓手机版本是19(安卓4.4),minSdkVersion是21(安卓5.0)。那么编译出来的apk将无法安装到该手机上 compileSdkVersion :参与编译的sdk版本。比如想要使用安卓10的5g,需要将compileSdkVersion改为>=29(安卓10),否则无法在代码当中找到相关api targetSdkVersion:目标版本,兼容旧版本的api。虽然由compileSdkVersion编译通过了,但是最终运

LJ_GOD的博客 3002

Python爬虫实战:中国土地市场网招拍挂数据抓取与分析

本文详细介绍了如何使用Python爬虫技术从中国土地市场网抓取土地招拍挂数据,并进行初步的数据分析与可视化。文章涵盖了爬虫的基本原理、反爬虫策略应对、数据清洗与存储、数据分析与可视化等多个方面,为土地市场研究者提供了一套完整的数据获取与分析解决方案。

2201_76125261的博客 688

Android14 适配之——targetSdkVersion 升级到 34 需要注意些什么?

上一篇所说内容是所有 App 安装到 Android14 设备上的影响和需要注意的内容,本篇接下来就要介绍当 targetSdkVersion 升级到 34 时,App 需要注意和修改的地方。1. 核心功能变更1.1 前台服务类型在 targetSdkVersion >= 34 的情况下,必须为应用内的每个前台服务(Foreground Service)指定至少一种前台服务类型。什么是前台服务?

weixin_42504805的博客 5706

RK3399外设驱动之MIPI

RK3399外设驱动之MIPI 文章目录RK3399外设驱动之MIPIMIPI命令解析入口代码mipi显示配置实例rk3399mipi驱动rk mipi驱动注册过程rk32_mipi_dsi.c解析 内核版本 Linux4.4 平台 rk3399 作者 nineyole MIPI命令解析入口代码 MIPI的入口代码如下:kernel\drivers\video\rockchip\screen\lcd_mipi.c static int __init rk_mipi_screen_in

学无止境 2231

uniapp - 实现扫码功能自定义扫描二维码/条码界面+手电筒轻触照亮+扫码屏幕添加手动输入框,手机扫描二维码并跳转过程,调用手机原生摄像头进行扫码且自动识别执行事件(uniApp安卓苹果App端)

uniapp,app端,安卓app,苹果ios,uniapp扫码识别,二维码展示和扫码,uniapp如何实现扫码功能,uni-app实现扫码功能,二维码和一维码/条码扫描,UniApp实现扫描二维码,uniapp开发原生app页面的扫码功能,自定义扫码界面,uniapp怎么调用扫一扫功能,app自定义扫码界面,uniapp 自定义扫一扫页面,扫码手电筒功能,自定义扫描框,扫码报错怎么办,扫码黑屏,扫一扫摄像头黑屏,uniapp扫码原生插件,最新扫码组件,连续扫码,uniapp APP扫码,扫码后如何处理跳转

✅ 精选推荐文章 1万+

Android Studio中buildToolsVersion,miniSdkVersion,compileSdkVersion,targetSdkVersion的版本设置问题

compileSdkVersion 26 //告诉Gradle用哪个版本的SDK版本编译你的应用,和运行时无关 buildToolsVersion "28.0.2" //最好使用sdkbuildtools的最新版本 defaultConfig { minSdkVersion 21 //应用可以运行的最低版本,低于该版本,应用无法...

天空的理想的专栏 2104

交换机背板带宽、交换容量与包转发率到底是啥?

在网络工程中,交换机是核心设备之一,而关于它的性能指标,背板带宽、交换容量、以及包转发率往往成为人们衡量其性能的重要参数。这些术语的定义、关系、以及在实际场景中的应用,都对交换机的选型与部署有着重要意义。本文将为您全面解读这些概念,帮助您深入了解交换机的核心性能指标。

网络技术联盟站 1551

compileSdkVersion, buildToolsVersion,minSdkVersion 和 targetSdkVersion的区别与意义

每个Android studio项目中都有一个Build.gradle(Module app)可以看到这样的一段设置 android { compileSdkVersion 29 buildToolsVersion “29.0.3” defaultConfig { applicationId “包名” minSdkVersion 24 targetSdkVersion 29 versionCode 1 versionName “1.0” testInstrumentationRunner “androidx

wstcl的博客 1072

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Android中compileSdkVersion、buildToolsVersion、minSdkVersion和targetSdkVersion的含义作用

AndroidStudio中的build.gradle中包含了这些值,compileSdkVersion和minSdkVersion还比较通俗易懂,compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK版本去编译你的项目,minSdkVersion表示当前项目...

weixin_33725239的博客 542

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Android 中 compileSdkVersion 、buildToolsVersion 、minSdkVersion 和 targetSdkVersion的含义作用...

AndroidStudio中的build.gradle中包含了这些值,compileSdkVersion和minSdkVersion还比较通俗易懂,compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK版本去编译你的项目,minSdkVersion表示当前项目支持的最低安卓系统版本,buildToolsVersion则是指构建工具的SDK版本,也就...

MarkRZJ的博客 270

关于build.gradle四个版本号的含义

在一个Android studio的项目中,每一个module的build.gradle文件里面都标明了四个版本号,他们分别是compileSdkVersion,buildToolsVersion,minSdkVersion,targetSdkVersion 很多人都不是很能弄清楚这四个版本的区别。在这里我仅发表个人理解,如果有错,希望指正 compileSdkVersion compile...

findsafety的专栏 1411

由targetSdkVersion引发的血案

首先,说下android studio的 build.gradle中几个sdkVersion的概念: 1.compileSdkVersion 表示当前项目的编译版本,即让Android Studio以什么SDK版本去编译项目。 2.buildToolsVersion 表示构建工具的SDK版本,也就是Android Studio中设置的Andriod SDK版本。buildToolsVer...

gengbaolong的博客 841

Android Build 相关全面总结

1、build.gradle里面的几个版本说明 compileSdkVersion compileSdkVersion表示当前项目的编译版本,即你想让AndroidStudio以什么SDK版本去编译你的项目,因此在你编写代码调用系统提供的相关api时, 都是基于该版本的api的。例如 compileSdkVersion 25,当你查看系统api源码时,查看的就是 api level为25的系统源...

u010349644的专栏 684

Android OpenGL ES环境搭建实战:从配置到首个渲染画面

图形编程是移动应用开发中的重要领域,OpenGL ES作为嵌入式设备的图形API标准,在Android、iOS等平台被广泛用于游戏渲染、实时滤镜和AR特效等场景。其核心原理是通过EGL管理渲染上下文,并将GPU加速能力封装为标准化接口,开发者借助GLSurfaceView即可在Android上快速构建渲染管线。然而在实际工程中,环境搭建并非只是装上IDE那么简单——EGL版本不匹配、模拟器GPU兼容性差、GLSurfaceView生命周期处理不当,都可能导致黑屏、崩溃或渲染失败。本文从技术选型出发,梳理了m

weixin_33860553的博客 355

Unity项目导出Android Studio全流程:JNI交互、Gradle配置与原生开发实战

在移动应用与游戏开发中,跨平台引擎与原生平台的深度集成是提升应用能力的关键技术路径。其核心原理在于通过引擎提供的桥接接口(如JNI)实现脚本语言与原生代码的互操作,从而突破引擎本身的功能限制。这一技术的核心价值在于能够灵活调用平台专属API、集成第三方原生SDK,并实现高性能模块的定制开发。典型的应用场景包括接入特定支付服务、集成定制音视频处理库、实现复杂设备交互或与现有原生应用模块融合。本文聚焦于Unity引擎与Android原生开发的无缝衔接,详细解析了从项目导出、Gradle工程配置到JNI双向通信的

weixin_30565327的博客 536

2014年Android开发环境搭建全指南

Android开发环境搭建是移动应用开发的基础环节,涉及JDK配置、IDE选择和SDK管理等多个技术要点。在2014年Android Studio刚推出稳定版时,开发者需要特别注意Gradle构建系统的兼容性问题,以及模拟器性能优化等实践细节。通过合理配置环境变量和SDK组件,可以确保开发环境同时支持Android 4.x到5.x版本的开发需求。对于需要维护旧项目的团队,掌握多版本管理和构建失败排查技巧尤为重要。本指南特别适用于需要兼顾新旧项目兼容性的开发场景,其中HAXM加速和Gradle依赖冲突解决是提

390

Android的一些基本概念你弄懂了吗?-Gradle、Gradle插件及编译打包相关汇总

概念 1、何为Gradle?何为Gradle插件? Gradle 我们知道Android的构建系统是使用Gradle来构建应用的,Gradle是一种构建工具,它使用一种基于Groovy的特定领域语言来实现的。 软件开发过程不仅仅是编写代码,还涉及到对项目的管理,例如添加项目依赖,打包,签名,发布等一系列操作,后面这些就是Gradle替我们做的事。Gradle通过编写一个名为build.gr...

u010349644的专栏 620

5分钟激活Windows 11与Office:KMS_VL_ALL_AIO 完整使用指南

KMS激活工具 KMS_VL_ALL_AIO 是一个开源免费的单文件脚本,它在本地模拟一台 KMS 授权服务器,一次运行同时搞定 Windows 与 Office 的激活,之后按周期自动续期,不用你再惦记到期时间。本文面向 Windows 7/8.1/10/11 与 Office 2010 至 2024 的用户:先用一张表判断你的机器走哪条激活通道,再按编号步骤完成 Windows 11 永久激活

gitblog_00054的博客 237

Android Studio新版生存指南:Gradle、JDK、SDK与模拟器深度适配

Android Studio已演进为融合构建系统、UI预览与性能分析的移动开发操作系统,其核心不再只是IDE界面,而是Gradle构建生命周期、JDK版本契约、SDK层级依赖与Hypervisor虚拟化能力的有机集成。理解AGP与Gradle的严格版本矩阵、项目JDK与IDE运行时JBR的分离机制、ARM64/x86_64系统镜像与CPU虚拟化指令集的硬性匹配,是保障环境稳定的基础前提。这些底层逻辑直接决定Compose Preview渲染、ViewBinding生成、真机调试连通等高频开发体验。本文聚焦2

weixin_34411563的博客 338

AndroidStudio中一些配置的记录

一、关于compileSdkVersion、minSdkVersion、targetSdkVersion 的理解 compileSdkVersion:编译应用时使用的SDK的版本号,重点就是“编译”这两个字,它能影响的就是应用编译时的行为,不管它如何改变都不会影响到应用的运行时行为。AndroidStudio有预编译的功能,如果使用低版本的SDK则无法编译新的API,所以为了更好的利用新的API

Duckdan的博客 359
上一篇: AndroidStudio中Failed to resolve: com.android.support:appcompat-v7:27.0.1的问题
下一篇: Xposed基本知识整理
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值