Android开发之Is Library篇
一、生活场景描述
由于公司有一个项目开发的时间比较长,项目里堆砌的代码也比较多,并且有些功能在给不同客户发布的时候有些功能还不需要,这样功能模块分离就很有必要了。
所以,Library就被推到了前台,被我们运用起来。
二、注意事项
1.两个Library不能互相引用
2.Library中的Drawable文件不能被项目中使用(该项有待进一步确认)
3.由于在项目中使用的上下文对象是属于当前项目,所以在Library中获取文件对象Context.getAssets().open("fileName.txt"); 该文件应该放在项目里的assets。(该项有待进一步确认)
4.Library中不能使用View注入框架(如:BufferKnife),因为Library R文件里文件的id都是静态变量,而需要的是常量(Android项目中生成的就是常量)。但是,如果把框架放在Library中,项目中是可以用该框架的。
5.Library可以有自己的子Library
6.缓存问题:如果在编码时,一个子Library中的代码修改了,父Library中不能加载子Library中修改的代码,需要把子Library取消引用,再导入引用就好了。
7.若使用库中的activity之类的,需要在项目的AndroidManifest.xml中重新定义。因为manifest 配置文件是独立给工程的,不能复用。可以在Library不声明Activity,但是在project中必须声明。
8.资源同名的话,项目中的资源会覆盖库中的资源。
9.使用Library之后properties 文件中会多了一个引用的定义。
10.Android Library可以重复使用java类,android组件和资源,但是assets的资源不会被重用。
11.问题:如果两个子Library需要互相引用各自的Activity该怎么办?