AIDL界面更新后如何使Android应用程序向后兼容

问题描述

当 AIDL 界面更新时,如何让 Android 应用向后兼容?

例如,如果我的应用访问一个 AIDL 接口来完成 IPC 调用

import tensorflow as tf 
import cv2
import os
import matplotlib.pyplot as plt
import numpy as np
img_array = cv2.imread("Training/0/Training_233976.jpg")

img_array.shape

plt.imshow(img_array)

Datadirectory = "Training/"

Classes = ["0","1","2","3","4","5","6"]

for category in Classes:
    path = os.path.join(Datadirectory,category)
    for img in os.listdir(path):
        img_array = cv2.imread(os.path.join(path,img))
        plt.imshow(cv2.cvtColor(img_array,cv2.COLOR_BGR2RGB))
        plt.show()
        break
    break

在不同的平台上,相同的 AIDL 更新为新版本,不仅更改了原始 sampleMethod 的参数,还添加了另一种方法
interface SampleAidl {
    int sampleMethod(int i);
}

AIDL 名称和包保持不变。


我有一个标志可以决定使用哪个版本的 AIDL。 问题是,是否有任何解决方案/线索表明我的应用程序可以在编译时包含两个版本的 AIDL,然后运行时仅通过标志选择正确的一个

或者唯一的方法是,我的应用需要有不同的版本来支持不同的 AIDL?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...