2011-06-13 45 views
8

我注意到,當我將現有的Android應用程序項目轉換爲Android庫項目by checking the "is Library" checkbox時,項目的源代碼或XML文件中沒有任何更改。檢查「is Library」複選框是否在「Cover」下面?

那麼選中「is Library」複選框時會發生什麼?內部有哪些變化,包和/或項目文件?我可以在哪裏瞭解更多關於這方面的信

爲了更好地解釋我的問題:

  1. 我什麼興趣知道(主要 爲了排除故障)是 什麼從圖書館 包區分應用程序包「的掩護下」?
  2. 事實上,一個項目是 「庫項目」標記爲 某處?如果是的話,它在哪裏 (顯然不是在源 文件甚至沒有在資源XML 文件)將其標記

回答

6

Managing Projects from the Command Line page

的創建LIB-項目命令創建 標準項目結構 包括預設屬性, 指示構建系統,該 項目是一個庫。它通過 加入這一行到項目的 default.properties文件:

android.library=true

換句話說,它是由構建系統,而不是由操作系統使用的特性。

更新:我在我的iPhone上,因此我不打出整個釋義,但是這裏有一篇相當不錯的博客文章,討論Java JAR和Android庫項目之間的區別,包括dex工具如何添加資源和地塞米松代碼.apk文件:

http://devmaze.wordpress.com/2011/05/22/android-application-android-libraries-and-jar-libraries/

+0

@Doug Stephen +1已經回答了問題#2。您是否也碰巧知道「封面」下的應用程序包與Library包的區別? – an00b 2011-06-20 16:20:43

+0

@ an00b檢查我的答案更新。希望能幫助到你。 – 2011-06-20 16:34:45

+0

@Doug Stephen +50。 :) 謝謝! – an00b 2011-06-20 16:45:50

5

從devsite:http://developer.android.com/guide/developing/projects/projects-eclipse.html

您還可以指定一個Android 項目作爲一個圖書館項目,其中 允許它與其他依賴它的 項目共享。一旦 Android項目被指定爲 庫項目,則不能將 安裝到設備上。

+0

這從我張貼在我的問題的鏈接的,但它沒有解釋發生了什麼** **內部。抱歉沒有很好地解釋我的問題。我有興趣知道什麼(主要[用於疑難解答的目的](http://stackoverflow.com/questions/6325826/unable-to-instantiate-activity-caused-by-classnotfoundexception))是區分應用程序包和庫封裝「在封面下」。 – an00b 2011-06-13 16:24:36

1

庫項目不像您習慣使用jar那樣打包爲獨立的可再發布文件。它與您的應用程序的apk文件合併。

您鏈接到的頁面在Referencing a library project部分中提到它。

只要Properties對話框關閉,Eclipse就會重建項目,包括庫項目的內容。

+0

感謝和+1突出顯示此。我想了解的是,項目是「圖書館計劃」的事實是否被標記爲某處**?如果是這樣,它在哪裏標記(顯然不在源文件中,甚至不在res XML文件中)? – an00b 2011-06-14 12:55:28