Android的几种SdkVersion(complie target min)

本文解释了Android开发中compileSdkVersion、minSdkVersion和targetSdkVersion的作用:compileSdkVersion决定项目编译使用的SDK版本;minSdkVersion设定应用运行所需的最低Android版本;targetSdkVersion指示应用在哪个版本进行了测试及兼容性优化。

之前就看过一次关于compileSdkVersionminSdkVersiontargetSdkVersion的帖子,但是对于第一个和第三个当时也没太懂,最近又找了些资料,发现一篇不错的博客,最后放上地址。于是将自己的理解赶紧写下来。
1.compileSdkVersion
首先,这个东西发挥着用是在我们的项目编译期间,它决定了用那个版本的SDK去编译我们的项目,他会去检查代码中是否有在当先设置的编译版本不能调用的方法,就比如Material Design风格的东西是5.0,也就是API Level 21开始出来的,如果你项目中有用到这些东西但设置的compileSdkVersion版本低于21,你编译的时候是会出错的,提示你找不到那些资源。

2.minSdkVersion
这个其实是最好理解的,app运行的最低版本,这个会在我们安装应用程序的时候发挥作用,安装的时候系统会检查手机的android版本,如果低于我们设置的minSdkVersion的值,是无法安装我们的app的,比如我们设置minSdkVersion为21也就是Android5.0,但是我们手机是Android4.3,这样手机就无法安装,一般在应用商店准备下载的时候就会提醒版本过低。

3.targetSdkVersion
这个标识着我们的应用在哪个版本上进行过测试,他会在兼容方面发挥作用,比如我们手机是Android 6.0的系统,这个时候如果有危险权限,会在app运行的时候动态请求,我们如果把targetSdkVersion设置23(6.0)或者更高,运行时权限就会发挥作用,但是如果设置更低,比如设置21(5.0),权限会在我们安装时一次申请完,不会触发6.0的动态权限,他会告诉手机系统启动兼容模式去运行我们的app。

更过的详情和设置这些版本的注意事项参见这里,写的很详细如何选择 compileSdkVersion, minSdkVersion 和 targetSdkVersion
多谢观看,如果有错误,欢迎指出!!

### 含义 Compile output 指的是编译输出,即编译器在对代码进行编译处理后所生成的结果文件。在 Java 开发里,编译输出通常是 `.class` 文件,这些文件是 Java 源代码经过编译后得到的字节码文件,可在 Java 虚拟机(JVM)上运行。 ### 配置 - **IntelliJ IDEA 中配置项目的 Compile output**:在 IntelliJ IDEA 里,若项目的编译输出路径设置出错,可能会致使编译失败。存在两种配置方式,一种是指定 Project 选项中设置的 out 文件路径;另一种是使用模块编译输出路径(Use module compile output path)。若项目没有 out 文件夹,可在项目目录中自行创建一个。配置时,右键点击项目的 Build Module XX,若报错可点击 Configure 进入窗口,选择好项目的 out 文件夹,点击 “Inherit project compile output path”,然后重新 Build [^1][^3]。 - **Maven 项目的 Compile output 配置**:Maven 项目默认的编译输出目录是 `target/classes`。若执行 Maven 的 compile 命令时,提示无法创建资源输出目录(Cannot create resource output directory),就需要检查该目录的路径和权限 [^4]。 ### 使用 - **运行编译后的程序**:编译输出的 `.class` 文件能够在 JVM 上运行。通过 `java` 命令可执行这些文件。例如,若有一个名为 `HelloWorld.class` 的文件,可使用以下命令运行: ```sh java HelloWorld ``` - **调试编译输出**:在开发过程中,可能需要对编译输出进行调试。调试工具能够帮助开发者查看程序的执行流程、变量的值等信息。 ### 示例代码 以下是一个简单的 Java 程序及其编译运行过程: ```java // HelloWorld.java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } } ``` 使用 `javac` 命令编译该文件: ```sh javac HelloWorld.java ``` 编译后会生成 `HelloWorld.class` 文件,使用 `java` 命令运行: ```sh java HelloWorld ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值