[英]Difference between Android library and Java library in Android Studio
在Android Studio中創建新模塊時,我們可以在Android庫和Java庫之間進行選擇。 通過兩者的修補,我的理解是, Android Library
可以訪問Android資源,而Java Library
只能訪問Java資源。
因此,在Android Studio中創建Java庫就像在普通的Java IDE(例如Eclipse)中創建新庫一樣。 (它甚至似乎使我們能夠訪問Android不支持的RMI。)
這是正確的嗎,還有其他區別應該注意嗎?
Android庫過去是“ Android庫項目”。
它只是android模塊,可以包含到您的項目中。 如您所說,它具有android資源,您自己的項目也可以訪問包含的庫資源(如樣式或布局)。
必須使用此庫類型來創建自定義視圖或活動或其他android元素
android庫是aar,而java庫是jar。 從技術上講,兩者都是罐子,但它們的結構組成略有不同。 例如,如下所示的aar:
res <android resources dir>
values
AndroidManifest.xml
classes.jar
<classpath structure>
<.class's>
R.txt
Java庫如下所示:
<classpath structure>
<.class's>
META-INF
如前所述,java庫不能包含任何android資源,例如布局,值,顏色,樣式。 一個android庫可以包含android資源,但不能包含任何原始android資產(即您放置在Assets文件夾中的任何內容),資源名稱彼此之間不沖突也是開發人員的責任。 android開發人員建議您為每個android庫中的資源名稱分配唯一的前綴。 Java庫無法引用任何android SDK類,例如android.content.Context等。)您可以采取一些技巧來解決最后的限制,但這涉及將aar轉換為jar。 只要您不在aar中使用任何android資源,就可以這樣做。 可能要進行這種轉換的原因是,您可以擁有“ compileOnly”依賴項。 當前,您不能對aar庫具有compileOnly依賴關系,但可以對jar庫具有依賴關系。 OSGI應用程序開發人員需要使用此技術,他們需要引用包含android SDK類的接口。 android開發人員團隊強烈要求修改compilieOnly限制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.