为了了解eclipse的工作原理,我从android.widget文件夹中删除了textview.java文件。但我仍然能够在手机上编译和运行应用程序并显示文本。这怎么可能?
Bundle.java文件的情况也是如此。我从android.os文件夹中删除它,并想看看eclipse中的mainactivity.java文件代码中是否会出现错误消息,但是import android.os.Bundle;
语句下面没有红线,并且没有显示错误信息。我能够在手机上编译和运行应用程序。这怎么可能?
顺便说一句,我正在从与目标Android版本的API编号对应的文件夹中删除文件。
感谢您的帮助。
答案 0 :(得分:0)
你的libs文件夹中有一个android.jar - >其中包含您需要的所有参考文献。
文件本身在设备上,而不是与您的项目一起编译,因此删除API文件夹的内容不会改变它
api文件夹的内容是为了能够将android.jar与源连接
见下图
平台版
不同设备可能运行不同版本的Android平台, 例如Android 4.0或Android 4.4。每个连续的平台版本 通常会添加以前版本中不可用的新API。以表示 哪一组API可用,每个平台版本指定一个 API级别。例如,Android 1.0是API级别1,Android 4.4是 API级别19。
API级别允许您声明最低版本 您的应用是兼容的,使用清单标记及其 minSdkVersion属性。
例如,日历提供程序API已添加到Android 4.0(API 等级14)。如果您的应用无法在没有这些API的情况下运行,您应该 将API级别14声明为应用程序的最低支持版本 这样:
......
minSdkVersion属性声明了用于的最小版本 您的应用程序兼容,targetSdkVersion属性声明 您已针对应用优化的最高版本。
Android的每个连续版本都提供了应用程序的兼容性 这是使用以前平台版本的API构建的 您的应用应该始终与Android的未来版本兼容 使用记录的Android API。
注意:targetSdkVersion属性不会阻止您的应用 安装在高于平台版本的平台上 指定的值,但它很重要,因为它表明了 系统您的应用程序是否应该继承更新的行为更改 版本。如果您未将targetSdkVersion更新为最新版本 版本,系统假定您的应用需要一些 在最新版本上运行时的向后兼容性行为。 例如,在Android 4.4中的行为更改中,会创建警报 现在使用AlarmManager API默认为系统不准确 可以批量应用警报并保留系统电源,但系统会 如果您的目标API级别,请保留您应用的先前API行为 低于" 19"。
但是,如果您的应用使用在较新平台中添加的API 版本,但不要求它们的主要功能,你 应该在运行时检查API级别并优雅降级 API级别太低时的相应功能。在这种情况下, 将minSdkVersion设置为应用程序可能的最低值 主要功能,然后比较当前系统的版本, SDK_INT,是Build.VERSION_CODES中的一个代号常量 对应于您要检查的API级别。
取自:enter link description here 您声称已删除的代码"已删除"默认安装在您的设备上。 这就是你的应用程序继续运行的原因。