0 Вопрос: Поддерживает ли Android аппаратно-зависимую реализацию сторонних библиотек?

вопрос создан в Thu, May 2, 2019 12:00 AM

Я собираюсь начать работу над библиотекой для Android, которая предоставит собственный видеоплеер (оболочка вокруг ExoPlayer для интеграции с нашей CMS, рекламой, аналитикой и т. д.)

Некоторые базовые подробности реализации будут меняться в зависимости от конкретного устройства, на котором работает проигрыватель (Android Mobile и Android TV). Я планировал эффективно построить что-то вроде следующего:

Main SDK
  |- MobilePlayer SDK
  |- TVPlayer SDK
  |- CMS API SDK

Однако если бы кто-то собирал мобильное приложение, используя этот SDK, он использовал бы только «MobilePlayer» и «CMS API». «TVPlayer» будет мертвым весом.

Поэтому меня интересуют некоторые средства условного связывания и компиляции только той реализации, которая требуется для конкретного устройства. Если бы кто-то собирал приложение для Android TV с использованием моего SDK, я бы хотел, чтобы он связывал TVPlayer, а не переполнял приложение неиспользуемым MobilePlayer. Точно так же, если бы кто-то собирал приложение для Android Mobile с использованием моего SDK, я бы хотел, чтобы он связывал MobilePlayer, а не переполнял приложение неиспользуемым TVPlayer.

Возможно ли это? Требуется ли создание двух отдельных SDK («Main-TV» и «Main-Mobile»)? Существуют ли директивы компилятора для импорта только той реализации, которую я хочу, или компилятор Java поддерживает некоторую форму встряхивания дерева?

Обратите внимание, что я действительно ищу шаблон стратегии , но он решен в время компиляции, а не во время выполнения.

    
0
  1. Обычно библиотеки libs предлагают общий модуль "core" вместе с выбором других модулей. Предположим, что все ваши функции разделяют основную логику, кто-то будет зависеть от "sdk-core" и "sdk-tvplayer", если они хотят только материал для ТВ-плеера
    2019-05-02 15: 16: 54Z
  2. Что находится в Main SDK? Если это просто обычные вещи, разве здесь не следует инвертировать зависимости, когда SDK проигрывателя зависят от основного SDK?
    2019-05-02 15: 31: 09Z
  3. Main SDK должен был быть одним JAR-файлом, который можно включить в проект, который инкапсулировал как CMS API, так и XPlayer. Он не добавляет никаких функций, но предоставляет одна библиотека, которую вы можете импортировать в ваш проект и начать работать (например, как ExoPlayer предоставляет exoplayer, а также exoplayer-core, exoplayer-hls, exoplayer-ui, exoplayer и т. д. - библиотека и т. д. - библиотека включает в себя только одну дочернюю библиотеку, в которую входит только одна библиотека JAR, в которую входит только одна JAR-библиотека, в которую входит только одна JAR-библиотека, в которую входит только одна библиотека JAR, в которую входит только одна библиотека JAR, в которую входит только одна JAR-библиотека, в которую входит только одна библиотека JAR, в которую входит только одна библиотека JAR, в которую входит только одна JAR-библиотека, в которую входит только одна библиотека JAR, в которую входит только одна библиотека JAR, в которую входит только одна библиотека JAR, в которую входит только одна JAR-библиотека, в которую входит только библиотека JAR. одиночная зависимость и получить всю функциональность)
    2019-05-02 15: 42: 44Z
0 ответов                              0                         
источник размещен Вот