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 的好处显而易见,模块化设计实现代码共享,便于管理提高效率,避免不必要

的吃屎经历。


更多相关文章

  1. Android(安卓)10适配要点,作用域存储
  2. 为Android的apk应用程序文件加壳以防止反编译的教程
  3. android动态加载class文件(DexClassLoader可从SD卡加载)(android插
  4. [置顶] 写了个Android聊天客户端框架,基本聊天功能、数据库、服务
  5. 深入探索 Android(安卓)包体积优化(匠心制作)
  6. Android(安卓)模块化、组件化、插件化及热修复,大集结篇。
  7. 清除Android工程中没用到的资源
  8. 资源分享-良心资源,适合初,中级程序员
  9. ubuntu 10.10 64Bit下编译android和android SDK

随机推荐

  1. Android中shape中的属性大全
  2. android TV端各类焦点问题
  3. Android(安卓)开发手记一NDK编程实例
  4. Android(安卓)创建与解析XML(一)—— 概述
  5. Android(安卓)开发有哪些新技术出现?
  6. 转:如何运行Android(安卓)sdk sample中的
  7. 【小萌伴Android】相关文章目录
  8. 自学android,记录小知识一
  9. Android(安卓)HttpURLConnection应用技巧
  10. Android(安卓)Runtime Permission 详解