Проект библиотеки Android в виде jar-файла для распространения, например, Google Analytics

я виделэтот вопрос, и есть еще некоторые сомнения относительно создания файла JAR, который я могу распространять и может быть использован в любых приложениях для Android.

Что мое требование

As I said, I want to build and distribute a closed source library. I don't want the source code to be visible. In that library I don't want to use any assets, layouts, resources etc. But I want to use some android specific codes, like getting android device id.

Самый популярный ответ в вышеупомянутом связанном вопросе SO говоритcreate a regular java project and import android.jar in it. Я пытался сделать это, но я не знаю, как добавить android.jar в любой проект Java. Я хотел бы получить некоторые разъяснения по этому вопросу.

Кроме того, я хотел бы знать, есть ли какие-либо другие методы, использующие сам Android SDK (без использования проекта Java), создать файл JAR с закрытым исходным кодом библиотеки.

Я думаю, что я хочу, возможно, так какGoogle Analytics для Android-приложений кажется, сделал это. Я уверен, что в файле .jar, который они распространяют, они используют специфичные для Android коды, поскольку у них, похоже, нет другого способа получить информацию об устройстве для отображения в средстве просмотра аналитики.

EDIT : CAN SOMEONE CLARIFY THIS??

Я думаю, что добился определенного прогресса. Это то, что я сделал

Created a regular android project (not library project, the "is Library" checkmark is unchecked)

In the project I have coded out my logic. It uses some android specific classes like SharedPreference, UUID, PackageManager. But nothing related with assets, layouts also no class extending Activity. Just a java class extending java.lang.object

Exported the project using Project->rightclick->export->Java->JAR file. In the next screen I unchecked the checkbox near AndroidManifest.xml. Set a destination directory to export and clicked next thrice with keeping the default settings. Then I clicked Finish, and got a lovely libMyLibraryName.jar at my desktop.

Затем я создал еще один проект Android, добавил этоlibMyLibraryName.jar в новый проект, используяproject->rightclick->properties->java build path -> libraries->add external jar.

И я попытался использовать свой класс в библиотеке, в моем новом проекте

MyLibraryClass objClass = new MyLibraryClass(this);

И мне удалось скомпилировать и запустить успешно. Я даже отправил библиотеку одному из моих коллег, который смог использовать библиотеку на своем компьютере (просто убедившись, что проект библиотеки в моем рабочем пространстве не повлияет на проект, использующий ее).

Теперь у меня есть 2 вопроса.

1) My first question is , what they meant by the term "true library" in the below given documentation ? Это любой не Android-проект Java, который можно экспортировать в файл JAR?

However, a library project differs from an standard Android application project in that you cannot compile it directly to its own .apk and run it on an Android device. Similarly, you cannot export the library project to a self-contained JAR file, as you would do for a true library. Instead, you must compile the library indirectly, by referencing the library in the dependent application and building that application.

Ну, эта часть взята издокументация под заголовком «Библиотечные проекты».

2) My second question is, anything wrong with the way I have created the JAR file? Любые возможные подводные камни, которые могут укусить меня позже? Я хотел бы убедиться, что я не делаю что-то ужасно неправильное, прежде чем использовать это в своих важных проектах.

Я мог бы добавить, что я не пробовал метод создания проекта JAVA и импортаandroid.jar, Я готов попробовать это, если то, что я сделал в настоящее время, неверно.

Ответы на вопрос(1)

Решение Вопроса

android.jar будет находиться там, где вы установили свой Android SDK. Подplatforms каталог должен быть ряд других каталогов с именемandroid-<version>,android.jar Будет здесь. Выберите ту версию, которая соответствует минимальной версии Android, на которую вы ориентируетесь.

Когда у вас есть это, скопируйте его в свой проект. Если вы используете eclipse, я думаю, что вы можете просто вырезать и вставить баночки прямо в ваш проект, щелкнуть правой кнопкой мыши и добавить его для построения пути. Если вы не используете eclipse или любую другую IDE, вам просто нужно убедиться, что android.jar находится в пути к классам при создании файла JAR.

После этого вашу вновь созданную библиотеку Android можно поместить в любой проект Android.

В ответ на ваши дополнительные вопросы:

What they mean by a true library is a jar file as opposed to an Android library project.

I don't think there's anything wrong with the way you created the jar file. I would have made it using the android.jar as I mentioned above but your way should also work. To verify this I would examine the jar contents and make sure all you have in there is .class files.

 Krishnabhadra31 мая 2012 г., 11:12
пожалуйста, посмотрите мои изменения
 Krishnabhadra01 июн. 2012 г., 06:21
Ну, в конце концов, я сделал проект Java, добавил android.jar, закодировал мою логику и экспортировал файл JAR. Я могу использовать эту библиотеку без проблем. Большое спасибо за вашу помощь.

Ваш ответ на вопрос