Android(安卓)引用外部项目库
项目中要集成其他项目由于集成项目庞大不想机械的copy,就想将集成的项目做成项目库,这样以后集成项目升级,本项目里面升级扩展也方便。
集成步骤和方法: 1.库项目的结构 一个库项目是一个包含了源码和资源的项目,它可以被其他的项目引用,从而让其他项目使用它包含的代码和资源。多个Android应用程序项目可以引用同一个库项目,同一个Android应用程序项目也可以引用多个库项目。2.库项目创建和使用
库项目就是一个完整的android项目我们只需要配置一下他的lib属性就可以了就可以作为一个lib项目来使用。步骤:右键需要作为lib的项目---》Properties---》android----》
Library----在isLibrary的前面勾选复选框即可。
引用外部项目库笔记" src="https://img.it610.com/image/info8/8317d6bdb5dc4dc0a2d19670e1a987ae.jpg" alt="Android 引用外部项目库_第1张图片" name="image_operate_92621348032965607" width="360" height="360" style="border:1px solid black;">
我们在其它android的项目中怎么使用库项目了?,也很简单:
跟上面的步骤一样,只是在Library中不是选择Is Library 而是 add 添加一个Lib项目
例:
引用外部项目库笔记" src="https://img.it610.com/image/info8/5b96e310e9644f7393cbec080546443e.jpg" alt="Android 引用外部项目库_第2张图片" name="image_operate_35471348032975980" width="360" height="360" style="border:1px solid black;">
lib项目中使用的过程中需要注意的事项
在使用库项目的时候,因为Android项目结构及编译工具的特殊性,我们需要注意一些要点,列举如下:
1.工作项目和库项目的资源名称,如果名称重复,编译器会优先使用工作项目(也称为子项目)的资源,这个特点在项目中也可以利用,比如自己想要替换资源文件的东西,只需要命名相同就可以了;
2.无法将一个库项目导出为一个jar文件;
3.库项目的Android系统版本必须等于或低于工作项目的系统版本;
4.每一个库项目都会生成一个R文件,工作项目被编译时,将会合并工作项目和库项目的R文件,如果R文件中有常量同名,将使用工作项目R文件中的常量;如果引用了多个库项目,库项目中的R文件有常量重名,将根据库项目被引用的顺序来确定常量的使用优先级。
库项目使用的场景
库项目确实为重复代码代码带来了很大的好处。但是并不是什么情况下都是适用的,就像前面提到的适合做一些特定逻辑上的处理,比如新浪微博我们开发新浪的一些功能可以使用新浪微我们提供的lib项目,它里面主要封装了一些接口的操作。我们只需要调用就可以了,这种场景库项目来对指定的接口完成指定的事情。如果使用同一个lib项目时接口有很大的改变就不适合使用lib,因为在lib项目中封装的逻辑处理是不能改变的包括接口的调用。和异常的一些处理。我们必须之前做好足够的设计。在对各种android的控件定义格式的尽量使用style来完成,来方便不同子项目来调用同一个库项目修改控件属性的修改性。
最后说一下资源冲突问题有上面注意点:
1.工作项目和库项目的资源名称,如果名称重复,编译器会优先使用工作项目(也称为子项目)的资源,这个特点在项目中也可以利用,比如自己想要替换资源文件的东西,只需要命名相同就可以了;
我们知道本项目的优先级最高。但要注意一点的是string里面的国际化问题。一般集成的项目都很完善国际化分辨率什么的都支持,自然自己的项目就支持了这些功能,这样就会出现你在string里面定义了一个key跟项目库里面的key一样但结果值缺以项目库的为准的现象,为什么?因为手机去找value-zn(一般手机默认是语言是中文)的资源了,由于你本来项目里面没有国际化,所以自然去项目库里面找资源了,最容易出现的问题就是app_name总是项目库的名字。
还有一点要提醒的是 在清单文件中声明库组件 在应用项目的清单文件中,你必须加入应用使用、从库项目输出的所有组件的声明。例如,你必须声明全部的,更多相关文章
- [Android(安卓)之美] 那些你不知道的APK 瘦身,让你的APK更小
- android/NDK开发assets资源中文名打包问题
- g1安装android软件详细攻略
- 如何访问android的asset目录和res目录下的文件
- Android(安卓)热补丁技术——资源的热修复
- 无标题文浅入浅出 Android(安卓)安全 (三) Android(安卓)本地用户
- Android(安卓)拼接两个图片
- Android热修复(一):底层替换、类加载原理总结 及 DexClassLoader类
- Android换肤的两种思路