从Android资源ID索引谈起

还是前一篇博客遗留下的问题,如果使用者直接拷贝资源过去用,那种情况是不是不能兼容呢?前同事做了一些兼容处理,就是把全部的 R.XX.YYY 打到另外一个文件中,然后通过

getResources().getIdentifier(name, defType, sPackageName)

去索引(PS:解开某联想游戏sdk,发现他们也是这样做的)。前一篇博客的遗留的问题就解决了。

我本来以为getIdentifier只会去找主包下的资源,所以绕过后,gradle/aar引用(不拷贝资源引用)的方式应该会报错。(但其实并没有,还是能索引得到。)反编译打出来的包,aar中的资源都在解压放到主包下面了。

那么,如果资源名称相同,怎么确定我索引到的是library中的,而不是主包中的?
或者深入点问,getIdentifier 这个如何做索引?

//TODO

猜你喜欢

转载自blog.csdn.net/yeshennet/article/details/80359571