Я разрабатываю приложение для некоторых устройств с нестандартным оборудованием, они от разных производителей, но цель и c на уровне приложения одинаковы, каждое устройство имеет свой SDK. Можно ли фильтровать каждый SDK в соответствии с целевым устройством?
Я думал что-то вроде препроцессоров в C / C ++, он устанавливает флаг в файле make, который вы можете запрашивать в коде и фильтровать некоторые разделы в код.
Есть идеи, как обрабатывать что-то подобное в Android?
Обновление
Устройство
Устройство имеет некоторые аппаратные функции, такие как принтер, светодиоды, картридер EMV. Примерно так:
введите описание изображения здесь
SDK
Эти SDK импортируются как модули в проект, на них ссылается основной проект.
Интерфейсы
Там есть набор абстрактных классы, которые определяют общее поведение, такое как чтение карты, печать чека и т. д. c. Для этого поведения необходимо вызывать определенные c функции для каждого устройства. Например, у каждого устройства от разных поставщиков есть способ распечатать счет.
Что я хочу сделать.
Идея состоит в том, чтобы сгенерировать APK только с SDK, необходимым для каждого устройства. и пропустите те реализации, которые отличаются от целевого устройства.
Пример с препроцессорами.
#if defined(DEVICE1)
void printInvoice(char * msg){
sdk_device1.print(msg);
}
#endif
#if defined(DEVICE2)
void printInvoice(char * msg){
sdk_device2.print(msg);
}
#endif
Спасибо!