Android Jar библиотеки


Как настроить проект, который может привести к файлу библиотеки jar, который может быть использован для android? Я хочу создать пользовательскую библиотеку для всех проектов.

несколько вопросов:

  1. должен ли он быть скомпилирован против конкретной версии Android sdk?
  2. когда пакет android компилируется против библиотеки jar, классы, необходимые для работы с кодом, компилируются с основным кодом в apk или весь jar получает в том числе?
  3. какие-либо заметные оптимизации или подводные камни, о которых мне нужно знать, используя jar вместо прямой интеграции кода?
  4. нужно ли подписывать банку, как это нужно apk?
7 54

7 ответов:

Google просто выпустить новую версию SDK, который обрабатывает общие библиотеки!

https://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

ADT 0.9.7 (май 2010)

библиотека проектов:
плагин ADT теперь поддерживает использование библиотечных проектов во время развития, возможность которая позволяет сохранять общий Андроид код приложения и ресурсы отдельный девелоперский проект. Вы можете затем обратитесь к проекту библиотеки из других проектов Android и, в время сборки, инструменты компилируют общий код и ресурсы как часть зависимые приложения. Больше информация об этой функции доступно в разработке в Eclipse с документом ADT. Если это не так разработка в Eclipse, SDK Tools r6 предоставляет эквивалентную библиотеку поддержка проекта через муравейники строить система.

нет ничего особенного, что вам нужно сделать для настройки вашего проекта, чтобы создать файл jar, который будет работать в приложении для Android. Просто создать обычный Java-проект в Eclipse.

  1. Он не должен быть скомпилирован против Android вообще. Вы можете включить любой файл jar, если он не ссылается на классы, которые не включены в Android. Просто включите файл jar в свой путь сборки ваших проектов Android в Eclipse, и он автоматически будет включен в ваш APK файл.

  2. Не уверен, но я предполагаю, что все классы в файле jar будут включены в APK.

  3. Я не думаю, что просто включение некоторых классов в jar против непосредственно в проекте будет иметь какое-либо значение в результирующем APK.

Я задал себе тот же вопрос: Могу ли я экспортировать и повторно использовать макет в Android. Я попробовал следующее: экспортируйте проект с XML-ресурсами в файл JAR, а затем попробуйте получить доступ к макету через его R. layout. Конечно, это не сработало, как и R. layout.main было целое число, то же самое целое число, которое было связано с одним макетом (относительным.xml), определенный в макете R. хост-проекта.

Android SDK компилирует XML-файлы макета в ресурсы представления и в виде XML-файлов в включенный файл JAR не является XML-файлами макета, они не компилируются, и никакой идентификатор не связан с ними в R. layout.

Если вы хотите экспортировать макет из своего проекта, то вы должны экспортировать его как XML и импортировать его в новый проект как ресурс макета, а не как часть внешней библиотеки.

Если вы хотите повторно использовать макеты из JAR, вам нужно создать подкалы представления и построить макет из кода. Чем вы можете создать его экземпляр и установить созданный экземпляр в качестве Просмотр действия или добавление экземпляра в представление действия.

эта работа для меня!!!. если вы хотите использовать .jar-файл в ваше приложение из проекта библиотеки, который использует такие ресурсы, как attrs.xml (и предположим, что другие, такие как макеты, строки и т. д.), которые генерируют R.java. вы должны в eclipse перейти к export->Java/Jar file-> и проверить экспортировать все выходные папки для зарегистрированного projects -> Finish... это гарантирует, что во время выполнения ваше приложение, которое использует эту банку, не создает исключение для отсутствующих классов и ресурсов.

конечно, чтобы включить банку в вас новый проект перейти к. project properties-> Java build path -> Libraries -> Add external jar -> и вы сделали.

надеюсь, что это поможет!

чтобы создать файл jar, вы должны использовать опцию экспорта Eclipse. В диалоговом окне экспорт выберите java и jar подопции. Затем появится мастер, в котором вам нужно сделать некоторые выборы. Вам нужно указать место, где будет храниться файл jar.

ошибка, которую я сделал в первый раз, когда я создал файл jar, должна была включать Манифест Android. При добавлении созданного файла jar я получил конфликт двойного манифеста android.

вы можете использовать пользовательский метод для динамического доступа к 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;
}

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