通常一个大型项目由多个项目集成。那么android项目在集成时如何处理项目之间的依赖关系呢?

一个android项目通常由代码和资源文件组成。如果把代码和资源文件打成Jar包供其他工程使用,则Jar包中的资源文件将无法被打包到最终的APK文件中,致使程序无法正常运行。

Android为我们提供了另一种方案。

假设有一个base工程和A工程,A工程依赖base工程。

1.将base工程做成library工程。

在project.properties文件中加上

android.library=true

或者使用图形界面配置,右击工程——》Properties——》Android——》勾选Is Library


2.clear一下工程。

此时会发现,在bin目录下生成了一个Jar文件,该Jar文件包含编译后的class文件(不包含R文件)。再仔细观察Gen目录下的R文件,所有的常量都变成了变量(去掉了final关键字)。这是因为资源文件的ID在最终打包进APK文件时才会确定。所以,当一个工程被做成library工程时,只要switch case语句引用了R类,都必须改成if...else...语句(case后面只能跟常量)。

3.给A工程添加依赖

右击工程——》Properties——》Android——》Add


将base工程添加进来即可。

4.将base工程AndroidManifest.xml文件中的相关配置(Activity、Service等等)复制到A工程AndroidManifest.xml文件中。

至此,将base工程集成进A工程基本完成,base工程中的资源文件会自动打包到APK文件中。但是由于base工程中的资源文件与A工程中的资源文件会被打包到同一目录下,所以两个工程中的资源文件不能重名,否则base工程中的资源文件无法打包到APK中。

还可以参考android-support-v7-appcompat项目,再建一个工程base-lib,将步骤2中生成的Jar包拷贝到base-lib工程的libs目录下,再将base中所有的资源文件拷贝到base-lib中,然后只需要把base-lib添加到A工程就行了,就像添加base工程一样。这种方式很适合对外发布Android API。




更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  6. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  7. Android2.2中的APK安装参数installLocation
  8. 18 .Android中创建与几种解析xml的方法
  9. Android托管c++的log

随机推荐

  1. Android单行显示ellipse和singleLine
  2. android基础入门(二)——创建android工程
  3. 如何安装apk文件在Android仿真器中
  4. Android探索之旅 | Android简介
  5. Android音频开发(6):Mp3的录制 - 使用Lame实
  6. android:layout_gravity 和 android:grav
  7. Android 三类框架的理解以及MVVM框架的使
  8. Android(安卓)之 使用File类在SD卡中读取
  9. Android系统架构-----Android的系统体系
  10. Android studio学习之TextView、EditText