【Android】lib依赖

通常一个大型项目由多个项目集成。那么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。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值