Android Studio中Android库和Java库的区别
在Android Studio中创建新模块时,我们可以在Android库和Java库之间进行选择。通过对两者的修补,我的理解是Android Studio中Android库和Java库的区别,java,android,eclipse,android-studio,android-library,Java,Android,Eclipse,Android Studio,Android Library,在Android Studio中创建新模块时,我们可以在Android库和Java库之间进行选择。通过对两者的修补,我的理解是Android库可以访问Android资源,而Java库只能访问Java资源 因此,在AndroidStudio中创建Java库就像在普通JavaIDE(如Eclipse)中创建新库一样。(它甚至似乎让我们可以访问RMI,而Android不支持RMI。) 这是正确的吗?还有其他的区别吗?安卓图书馆这是过去的“安卓图书馆项目” 它只是android模块,可以包含在您的项目中
Android库
可以访问Android资源,而Java库
只能访问Java资源
因此,在AndroidStudio中创建Java库就像在普通JavaIDE(如Eclipse)中创建新库一样。(它甚至似乎让我们可以访问RMI,而Android不支持RMI。)
这是正确的吗?还有其他的区别吗?安卓图书馆这是过去的“安卓图书馆项目”
它只是android模块,可以包含在您的项目中。正如您所说,它有android资源,您自己的项目也可以访问包含的库资源(如样式或布局)
此库类型必须用于创建自定义视图或活动或其他android元素就像每个项目类型的小说明所说,android库只是另一个android应用程序项目,通常被称为模块。Java库是Java项目的另一个词。
模块
和项目
之间的唯一区别是复杂性。
请看intellij
中关于模块及其区别的精彩描述:
基于模块的项目结构
此功能非常适合具有多个内部依赖项的复杂项目,尤其是J2EE项目。模块是项目的一个独立逻辑部分,它包含您的工作源代码、库、对目标Java SDK的引用等。它可以作为独立实体进行编译、运行或调试
一个项目可以由一个或多个模块组成。模块可能相互依赖。模块和库可以在多个项目之间轻松共享
这也是一本很好的读物。android库是aar,java库是jar。从技术上讲,两者都是罐子,但它们的结构组成彼此略有不同。例如,aar如下所示:
res <android resources dir>
values
AndroidManifest.xml
classes.jar
<classpath structure>
<.class's>
R.txt
<classpath structure>
<.class's>
META-INF
res
价值观
AndroidManifest.xml
classes.jar
META-INF
如前所述,java库不能包含任何android资源,如布局、值、颜色和样式。android库可以包含android资源,但不能包含任何原始android资产(即,您放入资产文件夹中的任何内容)。资源名称之间不发生冲突也是开发人员的责任。android开发者建议您为每个android库中的资源名称指定唯一的前缀。Java库不能引用任何android SDK类,如android.content.Context等)要绕过最后一个限制,您可以使用一些技巧,但这需要将aar转换为jar。这是可以做到的,只要你没有在aar中使用任何android资源。可能需要进行转换的原因是,您可以拥有一个“compileOnly”依赖项。目前,您不能对aar库具有compileOnly依赖性,但可以对jar库具有compileOnly依赖性。OSGI应用程序开发人员使用这种技术,他们需要引用包含android SDK类的接口。android开发者团队有一个未完成的请求,要求修改此CompileOnly限制