compilesdkversion「compilesdkversion 29」
如何选择 compileSdkVersion,minSdkVersion 和 targetSdkVersion
minSdkVersion:是指兼容的最低系统版本,看需求要兼容到哪个版本了,目前情况下来说13或14就可以兼容绝大部分机型了。
minSdkVersion:是指向上兼容到的版本。一般都是最高版本,是 Android 提供向下兼容的主要依据。

compileSdkVersion:指的是编译版本,建议用最新的版本,以避免使用新版本弃用的API,同时可以使用新特性。缺点是个别API使用方法和之前不一样了,得现查,即使如此,对提升个人能力也有很大好处。所以我的建议是用最新的编译版本。
以上是个人理解,可以参考下这篇文章写的更详细,
怎么修改默认Android Studio中的compileSdkVersion
可以在新建你的Module的时候选择修改,如果是想修改已存在的项目CompileSDKVersion的话,可以点击File-Project Structure。打开如图所示界面,选择你要修改的Module,在下图位置修改成你想要的CompileSDKVersion,点击应用即可。
Android Studio 是一个全新的 Android 开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
北京时间5月16日,在I/O大会上,谷歌推出新的Android开发环境--Android Studio,并对开发者控制台进行了改进,增加了五个新的功能。
Android Studio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。
Android关于BuildToolVersion与ComplieSdkVersion的区别
AndroidStudio:Android应用的开发工具,类似如Eclipse
Gradle:一个构建工具;这类的构建工具有Ant,android eclipse开发用到的就是;Maven;
buildToolsVersion:Android构建工具的版本;
compileSdkVersion:编译版本,运行当前项目所需要的Android SDK版本;
compileSdkVersion是告诉gradle用哪个SDK版本来编译,和运行时要求的版本号没有关系;
buildToolsVersion的版本需要大于等于compileSdkVersion;高版本的buildTools可以构建低版本编译的Android程序;
这种情况就是说compileSdkVersionbuildToolsVersion,这是不允许的;
targetSdkVersion:是 Android 系统提供前向兼容的主要手段;在 Android 4.4 (API 19)以后,AlarmManager 的 set() 和 setRepeat() 这两个 API 的行为发生了变化。在 Android 4.4 以前,这两个 API 设置的都是精确的时间,系统能保证在 API 设置的时间点上唤醒 Alarm。因为省电原因 Android 4.4 系统实现了 AlarmManager 的对齐唤醒,这两个 API 设置唤醒的时间,系统都对待成不精确的时间,系统只能保证在你设置的时间点之后某个时间唤醒。
这时,虽然 API 没有任何变化,但是实际上 API 的行为却发生了变化,如果老的 APK 中使用了此 API,并且在应用中的行为非常依赖 AlarmManager 在精确的时间唤醒,例如闹钟应用。如果 Android 系统不能保证兼容,老的 APK 安装在新的系统上,就会出现问题。
Android 系统是怎么保证这种兼容性的呢?这时候 targetSdkVersion 就起作用了。APK 在调用系统 AlarmManager 的set()或者setRepeat()的时候,系统首先会查一下调用的 APK 的 targetSdkVersion 信息,如果小于 19,就还是按照老的行为,即精确设置唤醒时间,否者执行新的行为。
源码如: