从android文件夹中删除了类文件,但仍然eclipse编译并运行没有问题。怎么样?

时间:2014-05-26 05:51:15

标签: java android eclipse

为了了解eclipse的工作原理,我从android.widget文件夹中删除了textview.java文件。但我仍然能够在手机上编译和运行应用程序并显示文本。这怎么可能?

Bundle.java文件的情况也是如此。我从android.os文件夹中删除它,并想看看eclipse中的mainactivity.java文件代码中是否会出现错误消息,但是import android.os.Bundle;语句下面没有红线,并且没有显示错误信息。我能够在手机上编译和运行应用程序。这怎么可能?

顺便说一句,我正在从与目标Android版本的API编号对应的文件夹中删除文件。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你的libs文件夹中有一个android.jar - >其中包含您需要的所有参考文献。

文件本身在设备上,而不是与您的项目一起编译,因此删除API文件夹的内容不会改变它

api文件夹的内容是为了能够将android.jar与源连接

见下图 enter image description here

enter image description here

  
    

平台版

  
     

不同设备可能运行不同版本的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 您声称已删除的代码"已删除"默认安装在您的设备上。 这就是你的应用程序继续运行的原因。