Я видел этот вопрос и еще несколько сомнений относительно создания файла jar, который я могу распространять и могу быть использован в любых приложениях для Android.
Какое мое требование
- Как я уже сказал, я хочу создать и распространять закрытую исходную библиотеку. я не хотите, чтобы исходный код был видимым.
- В этой библиотеке я не хочу использовать какие-либо активы, макеты, ресурсы и т.д. Но я хочу использовать некоторые специальные коды для Android, например идентификатор устройства Android.
Самый популярный ответ в связанном выше SO-вопросе говорит создать обычный Java-проект и импортировать в него файл android.jar. Я пытался это сделать, но я не знаю, как добавить android.jar для любого проекта java. Я также хотел бы получить разъяснения по этому поводу.
Кроме того, я хотел бы знать, есть ли какие-либо другие методы, использующие сам sdk android (без использования java-проекта), создать файл jar с закрытой исходной библиотекой.
Я думаю, что я хочу, потому что Google Analytics для родных приложений для Android, похоже, это сделал. Я уверен, что в файле .jar, который они распространяют, они используют специальные коды Android, поскольку нет никакого другого способа заставить их отображать информацию в средстве просмотра аналитики.
РЕДАКТИРОВАТЬ: МОЖЕТ ЛИ ЧТО-НИБУДЬ СКАЗАТЬ ЭТО?
Я думаю, что добился определенного прогресса. Это то, что я сделал
-
Создан обычный проект Android (не проект библиотеки, "есть" Библиотека" не отмечена)
-
В проекте я закодировал свою логику. Он использует некоторые андроиды конкретные классы, такие как
SharedPreference
,UUID
,PackageManager
. Но ничего не связано с активами, макеты также не распространяются на классActivity
. Просто класс java, расширяющийjava.lang.object
- Экспортировать проект с помощью Project- > rightclick- > export- > Java- > JAR
файл. На следующем экране я снял флажок рядом с
AndroidManifest.xml
. Установите целевой каталог для экспорта и нажмите три раза, сохранив настройки по умолчанию. Затем я нажал Закончите, и на моем рабочем столе появился прекрасный libMyLibraryName.jar.
Затем я создал другой проект android, добавив этот libMyLibraryName.jar
в новый проект, используя project- > rightclick- > properties- > java build path → libraries- > add external jar.
И я попытался использовать мой класс в библиотеке, в моем новом проекте
MyLibraryClass objClass = new MyLibraryClass(this);
И мне удалось скомпилировать и запустить. Я даже отправил библиотеку одному из моих сотрудников, который смог использовать библиотеку на своем компьютере (просто убедитесь, что проект библиотеки в моей рабочей области не влияет на проект, используя его).
Теперь у меня есть 2 вопроса.
1) Мой первый вопрос: что они подразумевают под термином "истинная библиотека" в нижеприведенной документации? Является ли это любым проектом java-проекта, который не может быть экспортирован в JAR файл?
Однако проект библиотеки отличается от стандартного Android проект приложения, в котором вы не можете скомпилировать его непосредственно .apk и запустить его на устройстве Android. Аналогично, вы не можете экспортировать проект библиотеки для автономного файла JAR, как вы бы это делали для истинной библиотеки. Вместо этого вы должны скомпилировать библиотеку опосредованно, путем ссылки на библиотеку в зависимой заявке и здании это приложение.
Хорошо, эта часть взята из документации в разделе "Библиотечные проекты".
2) Мой второй вопрос: что-то не так с тем, как я создал файл JAR? Любые возможные ошибки, которые могут укусить меня позже? Я хотел бы убедиться, что я не делаю что-то ужасно неправильно, прежде чем использовать его в своих важных проектах.
Я бы добавил, что я не пробовал метод создания проекта JAVA и импорта android.jar
. Я готов попробовать это, если то, что я сделал в настоящее время, неверно.