2013-03-25 161 views
1

我所做的如何在不共享源代碼的情況下創建和使用Android庫?

我已經創建了一個包含完整的自定義屬性幾種自定義視圖庫項目。該庫還包含測試佈局以測試視圖。

我也讀:https://code.google.com/p/android/issues/detail?id=9656#c81

因此,圖書館的測試佈局中我利用http://schemas.android.com/apk/res-auto命名空間。

我試圖做

然後我開始了一個新的項目,以消耗庫中,包括圖書館這個項目是共享源代碼時非常容易;在測試應用程序的主要活動中,我可以很容易地使用setContentView(R.layout.libactivity)

來擴大測試佈局但是,在關閉庫項目並試圖使用庫的jar之後,證明是困難的!

我在庫的/ bin文件夾中找到了庫jar - 但只包含類和沒有資源。

然後我輸出了一個庫的jar - 包含資源文件以及.class文件。但這是如何使用?

具體問題

怎麼可能誇大,我包括在庫中的libactivity測試活動?

我知道在stackoverflow上有類似的問題 - 但它們似乎已經過時並且相互衝突,因爲Google可以將資源文件包含在庫中。

+0

http://stackoverflow.com/questions/17400469/android-creating-library-project-without-source-code – abdessamed 2014-04-04 09:14:54

回答

2

下面是我已經能夠無需共享源代碼創建一個庫項目。它需要兩個項目:基礎庫和發佈庫。

基地圖書館 - 這就是你把所有的源代碼,即所有的活動,自定義視圖等,您可以把資源文件在這個庫中,如果你想要的,但並不需要它。

版本庫 - 包含來自基本庫的bin /文件夾的jar以及您希望包含的任何資源文件。如果您已將任何資源文件包含在基礎庫項目中,則需要將它們複製到此項目中。

當您要使用您的代碼時,您將添加發布庫與包含任何其他共享庫相同。您的源代碼將可用,但隱藏,因爲它在jar文件中。唯一需要注意的是您的資源文件將會顯示,因爲它們位於共享庫項目中。不幸的是,我無法找到讓這些不可見的方法。

因此,要具體說明您的情況,您需要將自定義視圖置於基本庫項目中。測試佈局需要放入發佈庫項目中。

你的第三個項目(一個測試庫)只需要對發佈庫的引用,你應該很樂意去。

+0

據我所知,它在jar文件中的源代碼不隱藏。將「jar」更改爲「zip」並將其解壓縮。所有源代碼都可用於複製。 – 2013-07-29 13:36:14

0

哈...這是一個很好的問題,如果你要導出您圖書館項目了個XML,並不重要......

然後添加遠銷庫JAR到libs文件夾你的啓動項目,你會發現這些XML在你的R文件中。

讓我知道,如果它的工作...

相關問題