2016-04-14 34 views
1

是否有可能使整個Android應用程序包被包含到另一個Android應用程序中?我可以將整個Android應用程序打包到庫中嗎?

我不是隻談論編譯成.jar文件的純java代碼。我指的是包括一切:Java代碼,佈局等,然後使用意圖與這個「庫」進行通信。我不想單獨安裝一個APK或單獨的應用程序。它就像是一個完整的apk被包含在另一個apk中,並使整個事情成爲一個新的應用程序。清單可能需要以不同的方式處理。

我看了這個教程,只是列出了普通的.jar和普通的java代碼。

http://www.vogella.com/tutorials/AndroidLibraryProjects/article.html

任何指針不勝感激。 thx!

+1

你肯定歡迎創建[庫模塊(http://developer.android.com/tools/projects/index.html#LibraryModules)。這在你所鏈接的教程中已經介紹過,並且穿插了一些關注JAR的舊材料。您是否「使用意圖溝通」取決於您,因爲您將同時編寫圖書館和應用程序。 – CommonsWare

+0

看起來像我其實可以。 aar文件。 http://tools.android.com/tech-docs/new-build-system/aar-format https://androidbycode.wordpress.com/2015/02/23/building-an-aar-library -in-機器人工作室/ – gmmo

回答

0

您可以創建.aar存檔,是的。有幾件事情瞭解這一點:

  • AAR的是建立一個圖書館項目,gradle這個插件「com.android.library」
  • 您仍然需要有一個聲明依賴一個外殼應用程序項目在從圖書館建造的aar上。
  • aar將擁有自己的清單和資源。清單和資源將得到合併到shell應用程序的清單中。你最好了解明確合併的過程。
  • 當然,aar會有自己的代碼,shell應用程序不能重複包含在aar中的類。
  • shell應用程序需要在自己的build.gradle中聲明自己的應用程序ID,以及使用'com.android.application'插件構建的應用程序所需的其他必需屬性。
  • 沒有任何應用程序設置可能與aar的設置衝突。例如,您不能定位比aar中的最低API級別更低的API級別。
  • 應用程序無法覆蓋aar中定義的任何資源。反過來,庫會覆蓋應用程序中定義的資源。

如果你是包括AAR直接進入應用程序的文件結構,就需要申報就可以了依賴這樣的(或類似):

repositories { 
    flatDir { 
     dirs 'libs' // place the aar in here 
    } 
} 
dependencies { 
    compile(name:'fileNameOfAarWithoutExtension', ext:'aar') 
} 

但是,如果你分發作爲一個maven依賴項,你可以簡單地使用maven座標。

可能有其他的事情就知道了,但是這是我能想到的把我的頭頂部。

相關問題