zoukankan      html  css  js  c++  java
  • 【转】 Pro Android学习笔记(八五):了解Package(4):lib项目

    目录(?)[-]

    1. 什么是lib项目
    2. 小例子
    3. Lib的实现

    文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处:http://blog.csdn.net/flowingflying/

    上一次我们学习了通过共享UserID实现深度的代码和资源共享,实际上lib库,同样也可实现类似的功能。

    什么是lib项目

    lib项目和一般的项目一样是java代码和资源的集合,最终并不生产*.apk文件,而是作为其他项目的一部分,编译到其他项目的*.apk中。

    一个lib项目有自己的包名,可以使用其他的JAR文件。目前一个lib项目并不能成为一个JAR文件,但在未来版本可能会支持。 一个lib库不能参考另一个lib库,但这也可能未来版本中支持。Eclipse ADT将lib的java源文件编译到一个JAR文件,然后在编译到应用项目中,并不是直接将原文件拿过来重新编译。

    从SDK工具v15.0开始,lib项目中的资源ID不是final了。lib项目和主项目都可以通过各自的R.java来访问lib项目的资源。如果主项目和lib项目的资源ID重复,则主项目的优先。如果你要区分两个项目的资源ID,可以加上不同的前缀,例如lib_。

    主项目可以使用任意数目的lib项目,可以设置各lib项目的优先级。lib中的组件(例如activity)需要在主项目的manifest文件中定义。我们并不一定要在lib的manifest中定义组件,但这样做会有更好的可读性。

    小例子

    小例子很简单,我们创造一个库,名字叫TestLib,实现一个简单的activity,名字为TestLibActivity。我们再建立一个App,名字叫TestUseLib,主Activity中点击菜单,则调起lib中的TestLibActivity。

    Lib的实现

    和普通的App相似,只是在创建的时候,指定为lib,如下图所示:

    如果我们将project选择为library,我们将不能在模拟器上运行。为了检查代码是否正确,我们通常一开始作为普通的project,即App来创建,在检查一些正确后,在将项目的属性该为库。在Eclipse中,点击项目名按右键,然后选择Propertiest,进入对话框,将项目的属性修改为Library,如图所示:

    这个TestLibActivity的代码实现很简单,就不在此列出,可以到我的资源下载。

    相关小例子源代码可在Pro Android学习:了解package的小例子中下载。

    相关链接: 我的Android开发相关文章

  • 相关阅读:
    UPDATE 时主键冲突引发的思考【转】
    MySQL Sandbox安装使用
    主从复制1062错误解决方法
    InnoDB log file 设置多大合适?
    EXPLAIN 命令详解
    【机器学习】ID3算法构建决策树
    连续属性离散化处理
    【机器学习】决策树基础知识
    【机器学习】模型评估与选择
    【机器学习】单层感知器
  • 原文地址:https://www.cnblogs.com/blongfree/p/5048082.html
Copyright © 2011-2022 走看看