很久没有更新博客了,因为工作的需要,目前为公司开发一个sdk以供公司各个项目的集成。
我们在开发过程中,可以把我们的sdk项目依赖到宿主程序中,等待功能完成之后,把sdk以jar导出,注意,导出jar时候只导出src下的java代码,其他代码都不要导出。
然后在宿主程序中将之前对依赖关系去掉,取而代之的将我们刚打包到jar放到我们宿主程序的libs中,另外将sdk中的资源文件拷贝到宿主程序中,但是我们会发现,在sdk中目前是调用不到宿主程序中的资源的,我们可以通过
Resources resources = activtiy.getResources();
String packageName = activtiy.getPackageName();
int layoutId = resources.getIdentifier("pay_dialog_layout_v","layout", packageName);
这种方式来调用,activity为宿主程序传入到sdk中的上下文环境,resources.getIdentifier()方法中,第一个参数为资源文件的名字,第二个参数为帷幕资源文件的类型,第三个参数为宿主程序的包名,我们通过这种方式既可以在sdk中调用到宿主程序的资源,从而实现和交叉编译相同的效果,这就是我们集成的很重要的问题。