android多工程应用关系 android dependencies and android private libraries

来源:互联网 发布:华东理工大学知乎 编辑:程序博客网 时间:2024/05/03 17:59

1.被引用的项目在“Android”选项里设置“Is Library”打钩

2.引用项在“Android”选项里设置“add"被引用项

3.android Dependencies会显示引用项目,依赖项目

Android Private Libraries:表示放在libs里面的jar包引用,视为私有引用

Referenced Libraries:表示引用的外部jar包。


4.注意:

如果引用项目和被引用项目用到同一个jar包,版本需要保持一致。

Android Private Libraries和Referenced Libraries不能重复引用同一个jar包,两个都有时去掉一个。


在android工程里被依赖的工程如果创建了libs目录并且里边有第三方库,则会在android private libraries中显示,并且会在引用它的工程里的android private libraries里出现引用工程的android dependencies中会保护被引用工程的jar文件名,如果被引用工程同样引用其他工程,则在最终的引用工程中会包含被引用工程及该被引用工程引用的另外一个工程的jar包名称,简单的说也就是最终的引用工程会包含所有的jar包会出现在android dependencies和android private libraries中。



本文着重介绍如何创建Android library,并且在工程中使用此library提供的资源,具体步骤如下:
1. 创建一个Android工程,命名为sourceProj
2. 右键--properties,点击Android标签,然后选中最下面的Is library,把本工程设为android library。

3. 创建另一个Android工程,命名为MyProj
4. 
右键--properties,点击Android标签在Library选项框中,单机“添加”,选中刚才建立的android library,完成。


5.因为上述方法实际上是在一个工程中进行编译的,所以需要把重复的内容修改掉,例如main.xml,资源文件名字等等,然后就可以在MyPro中使用SourceProj中的java类和里面的资源文件了.

评论:由于上述方法相当于在一个工程中编译,所以工程之间资源名字相同的必须被处理为不相同的名字,比如两个工程都有strings.xml,例如两个工程都包含<string name="staff_doorman">Doorman</string>这个定义,那么会产生冲突,如果定义一样,那么可以把引用工程中的该值去掉,该引用工程会自动包含被引用工程相应的资源,也就是说在生成的apk包中会包含被引用工程的所有资源文件及其定义。

例如: 被引用工程strings.xml包含<string name="staff_doorman">Doorman</string>,那么最终引用工程编译好apk中会包含被引用工程该字符串值。

0 0
原创粉丝点击