【发布时间】:2016-05-25 13:55:23
【问题描述】:
我问这个是为了确认我对在 android 中使用 compileSdkVersion 的理解。
Android sdk 在路径 (Your sdk root)/Sdk/platforms/android-(sdk version) 下为每个版本提供了实现。因此,如果您将 compileSdkVersion 设置为 20 并且如果您在您的代码,在构建 apk 之后,apk 将使用从(您的 sdk 根目录)/Sdk/platforms/android-20/andriod.jar 获取的 Activity.class 实现打包。
所以假设谷歌在 android-22/android.jar 的 Activity 实现中添加了一个方法说“public void f1()”,我用 compileSdkVersion 22 编译我的代码,我从我的代码中调用方法 f1() 和我将在 android 版本 20 的设备上运行该应用程序。
问题1:如果f1()方法是java层的方法而不是调用C/C++实现的东西,它会在设备中正常运行吗?
当我在我的 android studio 中打开 View.class 文件并将 compileSdkVersion 设置为 23 时,我可以在导入列表中看到一个项目 'android.widget.ScrollBarDrawable'。但是当我进入 (Your sdk root)/Sdk /platforms/android-23/android.jar 我永远无法在小部件文件夹中找到“ScrollBarDrawable”类(我遇到了许多这样的实现,这些实现在 android sdk 中不存在)
问题2:那么当apk被打包时,apk builder从哪里得到实现android.widget.ScrollBarDrawable.class?
对不起我的英语不好:(
【问题讨论】:
标签: android android-studio android-version android-components