Android Library 工程实现模块复用 (代码及资源文件)

来源:互联网 发布:java 文本按行读取 编辑:程序博客网 时间:2024/06/15 05:07
1. 情境
    通常我们开发的 app 不止一个,并且这些 app 中有一些通用的模块,比如一些 util 方法或
者我们自定义的控件。通常我们将这部分代码 copy 到不同的工程中实现复用,随之而来的麻烦
就是当我们对这部分代码稍有该动就需要同时在多个工程中进行修改,这种重复性工作的感觉跟
吃屎差不多。
    那么有什么好的方法实现复用并切避免吃屎?那就是使用 Android 中的 Library 工程,并
且相比 jar 包而言,他可以实现资源文件的复用甚至覆盖。
2. 具体步骤
• 创建 library 工程

    新建 Android Project,命名为 demo-common,建议不 Create Activity


将 demo-common 设置为 library


点击 ok,然后查看一下 properties 文件中的变化


完成公共的模块,这里我们实现一个 activity 一个 util 类和一个自定义的 view。
TextUtil 实现一些静态方法,MyImageView 是 eoe 中一个开发者模仿 winphone

磁贴效果的控件。


•创建新的的工程

新建一个 Android Project,命名为 demo-project


为 demo-project 添加 demo-common 的引用


看一下添加 demo-common 后,demo-project 的变化


其中多了一个 R.java 文件,但是两者的内容相同。
新生成的 R 文件包含并且覆盖了 demo-comment 中 R 文件的所有定义的资源 id。
包含就是为 common 中的资源生成 id 供 project 使用;覆盖就是 project 中的资源
id(或 name)与 common 同名时会保留 project 的,生成 apk 后,common 中的
代码所使用的是 project 中的资源。

properties 文件中也多了一个引用的定义。


在 demo-project 中使用 TextUtil 和 MyImageView,并且实现界面的跳转。



注意:使用 common 中的 Activity 时,需要在 project 的 manifest 文件中进行相应
的声明。因为 manifest 配置文件是独立给工程的,不能复用。例子中我没有在 common
的 manifest 声明 AboutActivity,但是在 project 中必须声明。
3. 总结
使用 Library 的好处显而易见,模块化设计实现代码共享,便于管理提高效率,避免不必要

的吃屎经历。

原创粉丝点击