Библиотеки Android Jar
Как вы настраиваете проект, который может привести к созданию файла библиотеки jar, который можно использовать для Android?
Я хочу создать пользовательскую библиотеку во всех проектах.
Несколько других вопросов:
- Нужно ли его компилировать для конкретной версии Android-sdk?
- Когда пакет андроидов скомпилирован против библиотеки jar, классы, необходимые для работы с кодом, скомпилированы с основным кодом в apk или включены все jar?
- Любые заметные оптимизации или подводные камни, о которых мне нужно знать, с использованием флага вместо того, чтобы напрямую интегрировать код?
- Нужно ли подписывать банку, как это нужно для apk?
Ответы
Ответ 1
Google просто выпустит новую версию SDK, которая обрабатывает общие библиотеки!
https://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject
ADT 0.9.7 (май 2010 г.)
Проекты библиотеки:
Плагин ADT теперь поддерживает использование библиотечных проектов во время разработки, способность, которая позволяет хранить общий доступ к Android код приложения и ресурсы в отдельный проект развития. Ты можешь затем обратитесь к библиотечному проекту из других Android-проектов, и время сборки, инструменты компилируют общий код и ресурсы в рамках зависимые приложения. Больше информация об этой функции доступный в разработке в Eclipse с документом ADT. Если вы не разработка в Eclipse, SDK Tools r6 предоставляет эквивалентную библиотеку поддержка проекта через конструкцию Antсистема.
Ответ 2
Нет ничего особенного в настройке вашего проекта, чтобы создать файл jar, который будет работать в приложении для Android. Просто создайте обычный проект Java в Eclipse.
-
Его вообще не нужно компилировать на Android. Вы можете включить любой файл jar, если он не ссылается на классы, которые не включены в Android. Просто включите свой файл jar в свой путь сборки ваших проектов Android в Eclipse, и он будет автоматически включен в ваш файл APK.
-
Не уверен, но я предполагаю, что все классы в файле jar будут включены в APK.
-
Я не думаю, что просто включение некоторых классов в jar vs. в проекте напрямую будет иметь какое-то значение в полученном APK.
Ответ 3
Я задал myselft тот же вопрос: могу ли я экспортировать и повторно использовать макет в Android. Я попробовал следующее: экспортировать проект с ресурсами XML в JAR файл, а затем попытаться получить доступ к макету через него R.layout. Конечно, это не сработало, так как R.layout.main был целым числом, таким же целым числом, которое было связано с единственным макетом (relative.xml), определенным в хост-проекте R.layout.
Android файлы SDK kompiles размещают XML файлы в виде ресурсов View, а XML файлы в включенном JAR файле не являются файлами xml-макетов, они не скомпилированы, а идентификатор не связан с ними в R.layout.
Если вы хотите экспортировать макет из своего проекта, вы должны экспортировать его как XML и импортировать его в новый проект как ресурс макета, а не как часть внешней библиотеки.
Если вы хотите повторно использовать макеты из JAR, вам нужно создать подкласс в представлении и создать макет из кода. Затем вы можете создать экземпляр и установить созданный экземпляр в виде представления активности или добавить экземпляр в представление своей деятельности.
Ответ 4
Эта работа для меня!!!. если вы хотите использовать файл .jar в своем приложении из проекта библиотеки, который использует такие ресурсы, как attrs.xml
(и пусть другие, такие как макеты, строки и т.д.), которые генерируют R.java. вы должны в eclipse перейти к export->Java/Jar file->
и проверить Экспорт всех выходных папок для отмеченного projects -> Finish
... это гарантирует, что во время выполнения ваше приложение, использующее эту банку, не генерирует исключение для отсутствующих кланов и ресурсов.
Конечно, включить банку в новый проект. project properties-> Java build path -> Libraries -> Add external jar ->
, и все готово.
Надеюсь на эту помощь!
Ответ 5
чтобы создать файл jar, вы должны использовать опцию Экспортировать Eclipse.
В диалоговом окне экспорта выберите java, а JOP - подпроцесс.
Затем отображается мастер, где вам нужно сделать некоторые выборы. Вам нужно указать место, где будет храниться файл jar.
Ошибка, которую я сделал в первый раз, когда я создал файл jar, должен был включить манифест Android. При добавлении созданного файла jar я получил конфликт с манифестом с двойным андроидом.
Ответ 6
Вы можете использовать настраиваемый метод для динамического доступа к файлу R, например, ссылка ниже.
Упаковывать файлы ресурсов Android в распространяемый файл Jar
public static int getResourseIdByName(String packageName, String className, String name) {
Class r = null;
int id = 0;
try {
r = Class.forName(packageName + ".R");
Class[] classes = r.getClasses();
Class desireClass = null;
for (int i = 0; i < classes.length; i++) {
if(classes[i].getName().split("\\$")[1].equals(className)) {
desireClass = classes[i];
break;
}
}
if(desireClass != null)
id = desireClass.getField(name).getInt(desireClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (SecurityException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
return id;
}
Ответ 7
Если вы посмотрите файл android.jar в файле platform/android-X.X/android.jar, он включает в себя элементы XML-макетов, поэтому вы также сможете их создать. Я просто не уверен точно, как вы это делаете и как вы ссылаетесь на них в другом проекте.