簡體   English   中英

Android Studio Java庫模塊與Android庫模塊

[英]Android Studio Java Library Module vs. Android Library Module

我期望的最終結果是有一個項目可以輸出共享相同代碼庫的Mobile,Tv和Wear應用程序的不同產品風格。 因此,我希望代碼庫成為所有三種應用程序類型的依賴項,其中每個應用程序模塊只包含活動和與代碼庫的交互。

我的第一個想法是在我新創建的項目中添加一個“Android庫模塊”,但我注意到這只是一個新的應用程序模塊,它有自己的資源和一切。 我希望代碼庫更像“Java庫”,但它需要訪問像“android.graphics.Color”這樣的包。

所以簡而言之,實現這個結果的正確方法是使用一個引用了android sdk的java庫,還是我只是錯誤的方式?

繼續這個問題Android庫是否需要清單,app_name,Icon?

中間沒有。 如果您想要訪問Android API,那么該庫需要是一個Android庫,以便構建系統可以正確地將其鏈接到依賴項目。 Android Libraries確實擁有您可能不需要的資源和其他東西,但如果您願意,可以忽略這些內容並將其視為純Java庫。 即使您沒有使用資源,您也可以發現指定要合並到依賴應用程序的AndroidManifest.xml屬性的功能。

Android庫項目不會構建完全成熟的APK作為其輸出; 它生成一個AAR,它在概念上類似於JAR存檔,但具有對Android項目有用的資源和元信息。

定義術語的補充答案

Android Studio 文檔定義了一個模塊 ,如下所示:

模塊是源文件和構建設置的集合,允許您將項目划分為離散的功能單元。 您的項目可以有一個或多個模塊,一個模塊可以使用另一個模塊作為依賴項。 每個模塊都可以獨立構建,測試和調試。

所以基本上一個模塊是你大項目中的一個子項目。

模塊類型

  • Android應用程序模塊 - 應用程序模塊通常是您在正常項目中使用的模塊。 編譯它時,您將獲得一個將在設備上運行的APK文件。 以下是存在的不同類型的應用程序模塊:
    • 手機和平板電腦模塊
    • Android Wear模塊
    • Android電視模塊
    • 玻璃模塊
  • 庫模塊 - 的目的是共享代碼。 例如,您可以擁有一個包含幾個不同應用模塊的項目。 它們使用的公共代碼可以位於庫中。
    • Android庫 - 除了Java代碼之外,還允許您包含Android資源文件和清單。 如果您正在制作Android項目並想知道要使用哪種庫,請選擇Android庫。 編譯時,它會創建一個AAR(Android存檔)文件。
    • Java Library - 這只允許您包含Java代碼文件,不包含Android資源文件。 這對於跨平台代碼共享很有用。 編譯時,它會創建一個JAR(Java Archive)文件。
  • Google雲端模塊 - 此類模塊是Google Cloud后端,用於與客戶端應用進行通信。

另外一點我沒有看到很好的記錄:一個android庫模塊可以依賴於另一個android庫模塊或java庫模塊,但是一個java庫模塊不能依賴於android庫模塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM