我正在开发一个需要访问实现它的应用程序的布局项目的库。我知道如何去做的唯一方法就是反思。换句话说,如果我创建一个构造到音乐库API是这样的:从我的Android库访问应用程序R类
public MyLibraryAPI(String packageName) {
Class appR = Class.forName(String.format("%s.R", packageName));
...
}
而且,开发者将与他的包名称作为构造函数参数实例库。
我最终需要的是让我的内部类知道开发人员布局(.xml文件)中使用的Android视图 - id和类型。有没有办法实现这一点,没有反思和逃避性能开销?我敢肯定,这是无法完成的,但如果有专家看到我没有注意到的情况,我会问。
编辑:此外,默认情况下,proguard混淆了保护代码,但因此无法为运行时实现反射的手段提供JVM,所以如果我使用反射,我不得不要求开发人员转为他或她的R课关闭proguard混淆,这是一个无赖。
你可以使用注释处理器吗?类似于Butterknife的工作方式? –
是的,我可以使用注释处理将执行移动到编译时。但是,从开发人员的角度来看,这需要更大的努力,因为他必须为绑定提供注释。或者我错了?我仍然只是辩论,我并不倾向于任何一方。无论如何感谢您的回复。 – NitroNbg