tas*_*had 2 java eclipse android
昨天刚从Eclipse搬到Android工作室,我正在设法弄清一切。在我的构建等级中,我现在看到一个“ compileSdkVersion”,而且我似乎无法弄清楚它是什么。我知道minSdk会告诉GooglePlay该应用程序可以处理多长时间的设备。并且那个targetSdk告诉设备是否天气,它应该切换到前向兼容性。但是我不知道什么是compileSdk以及应该如何处理。另外,作为一个附带问题,如果我将targetSdk设置为21,则在sdk 16上运行的设备是否以兼容模式运行?谢谢你的帮助!对此,我真的非常感激!
编辑:我请不要将我链接到android开发者网站。我已经读过,但我不明白为什么如果已有最小,最大和目标sdk版本,则在不同的sdk中进行编译会有所不同。再次感谢您的帮助!
这是gradle代码。
apply plugin: 'com.android.application'
android {
compileSdkVersion 17
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "com.devname.myapp"
minSdkVersion 10
targetSdkVersion 21
}
buildTypes {
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:21.0.0'
compile files('libs/libGoogleAnalyticsServices.jar')
}
Run Code Online (Sandbox Code Playgroud)
对我的帖子的回复很好,但是我需要它对我无言以对。
TL; DR我的深入解释
targetSdk意味着您已经在该设备上对其进行了测试,并且可以确保您的应用在所有设备上均可运行。从根本上说,这是android的一个“警告”,它说您的应用程序可以在此之前运行。如果设备版本高于此版本,则 android会自动将兼容性设置应用于相关设备。如果android版本低于此版本,则它将正常运行,因为targetSdk表示您的应用设置为哪个版本。如果我将targetSdk设置为16,则所有不超过16个的东西都可以使用,并且使用16以上版本的API的所有设备都将自动进入兼容模式,以使其正常工作。
compileSdk =您的应用使用了多少个功能。如果它使用的功能仅在Android L上可用,则必须使用API 21编译应用程序,因为这是Android L的API版本。如果使用较低的compileSdk版本,则应用程序将无法构建,因为它不会能够找到您的应用具有的功能,因为这些功能不在较低的版本中。如果您的应用程序未使用特定于更高版本的功能,则可以不理会它。平均而言,如果您的应用没有使用Android新版本专有的功能,则只需将compileSdk设置为17。
等等,但是targetSdk和compileSdk有什么区别?
好问题。targetSdk基本上是对Android操作系统的提示,它说:“嘿,由于我已经测试了此应用,因此保证该应用程序可在不超过此数量的所有设备上运行。”
compileSdk基本上是在与Android开发软件交流,“嘿,在构建此应用程序时,请确保包括该Android版本中的所有功能,因为我需要这些功能才能使该应用程序正常工作。
仅当您使用该Android版本中的功能时!
如果您没有在Lollipop中使用功能,则没有理由将compileSdk设置为21!你怎么会 您不需要它,因此没有理由使用所有这些额外功能来构建它。
| 归档时间: |
|
| 查看次数: |
3576 次 |
| 最近记录: |