Java 如何根据目标设备分离库?
我正在为一些具有定制硬件的设备开发一个应用程序,它们来自不同的制造商,但应用程序级别的目的和逻辑是相同的,每个设备都有其SDK。是否可以根据目标设备过滤每个SDK 我在想C/C++中的预处理器,它在make文件中设置一个标志,您可以在代码中查询并过滤代码中的某些部分 你知道如何在Android中处理类似的事情吗 使现代化 装置 该设备具有一些硬件功能,如打印机、LED、EMV读卡器。大概是这样的: SDK 这些SDK作为模块导入到项目中,主项目将引用它们 接口 有一组抽象类定义了常见的行为,如读卡、打印支票等。对于这些行为,有必要根据每个设备调用特定的函数。例如,来自不同供应商的每个设备都有一种打印发票的方法 我想做的事。 其思想是仅使用每个设备所需的SDK生成APK,并跳过与目标设备不同的实现 带有预处理器的示例。Java 如何根据目标设备分离库?,java,android,gradle,sdk,Java,Android,Gradle,Sdk,我正在为一些具有定制硬件的设备开发一个应用程序,它们来自不同的制造商,但应用程序级别的目的和逻辑是相同的,每个设备都有其SDK。是否可以根据目标设备过滤每个SDK 我在想C/C++中的预处理器,它在make文件中设置一个标志,您可以在代码中查询并过滤代码中的某些部分 你知道如何在Android中处理类似的事情吗 使现代化 装置 该设备具有一些硬件功能,如打印机、LED、EMV读卡器。大概是这样的: SDK 这些SDK作为模块导入到项目中,主项目将引用它们 接口 有一组抽象类定义了常见的行为,如
谢谢 我会这样处理这个问题:
如果您在解决方案中没有使用proguard(或proguard的任何替代方案),您可能会面临引入它的问题,但最终您仍然需要它,因此花时间解决这些问题是值得的。信息不足。SDK是否共享应用程序知道的某些界面?SDK在编译或运行时可用吗?如何消费SDK?使用产品口味,每个硬件一种口味。将每个硬件代码放在相应的flavor源集中,实现一些您在
main
中的代码可以引用的常见API。@ror感谢您的回复,我添加了您要求的详细信息:)@CommonsWave谢谢您的建议,我会看一看的!太好了,谢谢你的回复!。我将开始在一个独立的项目中进行一些测试,看看这是如何工作的。
#if defined(DEVICE1)
void printInvoice(char * msg){
sdk_device1.print(msg);
}
#endif
#if defined(DEVICE2)
void printInvoice(char * msg){
sdk_device2.print(msg);
}
#endif