资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
-本文转载自仁人教育Android 学习系列(6)-App 模块化及工程扩 展这篇文章是 Android 开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用。1.需求无论是在.net 还是 java 平台,合理的分层架构是最普遍的模块化思路之一。dll,jar 文件无不风靡盛行,无处不在。一天,tx 团队和我说,我们现在要做 android 上做三个论坛的客户端,一个是新闻论坛,一个是文学论坛,一个是音乐论坛。除了数据,界面和很少的模块不一样,其他的都一摸一样。jar 是我第一刻就想到的东西,但是共用的 jar 文件无法方便的共享资源或者覆盖资源。而我们也不会傻傻的单独做三个客户端的吧,也不会傻傻的做 3 个客户端再傻傻的copy3 份,依次修改吧。2.问题在 Android 工程中如何开发一个共用 Framework,能共用资源,代码,但是也能扩展? 3.使用硬编码判断有人提出了一种方案, 在代码里面判断:1.if(新闻论坛) 2. /加载新闻论坛的资源3. /执行新闻论坛的代码4. /显示新闻论坛的效果-本文转载自仁人教育5.else if(文学论坛) 6. /加载文学论坛的资源7. /执行文学论坛的代码8. /显示文学论坛的效果9.else if(音乐论坛) 10. /加载音乐论坛的资源11. /执行音乐论坛的代码12. /显示音乐论坛的效果13. 14. PS:这是一种很无奈的办法,代码丑陋,扩展性差,有没有更好的办法呢?复制代码4.使用 Android Library 分离工程Android Library 提供了一个类似于其他平台的库的概念,这个库不仅能公用代码,还能共用资源,还能覆写资源。Android Library 是以工程的颗粒来复用,引用它的工程,其实就是引用它的代码,然后生成 R.java 和主工程需要的资源,而剔除 Library 中被覆盖的资源。其中 Library 中的AndroidManifest.xml 不能复用,也就是说主工程必须重新定义 AndroidManifest.xml,这个也很容易理解,AndroidManifest.xml 本来就是工程的一个配置文件,一般来说不具备共用的库的通用性。步骤如下:第一步:新建 Android 工程 common。-本文转载自仁人教育第二步:右键 common,选择 Properties,在 Android 标签页,选中“Is Library“ ,如下图。第三步: 新建主工程新闻论坛 tianxianews。第四步: 右键 tianxianews,选择 Properties,在 Android 标签页,点击 Add,选中common。如下图。-本文转载自仁人教育-本文转载自仁人教育查看最后的工程结构:此时此刻,common 工程天衣无缝成了 tianxianews 工程的一部分。我们展开 tianxianews 工程的 gen 目录:-本文转载自仁人教育eclipse 为了生成了两个 R.java,一个是 common 工程的,一个 tianxianews 工程的,但是内容是一摸一样的,这样做的好处是:R.java 里面的内容包括两个工程资源,第一,tianxianews 工程通过 R.java 能调用到 common 工程的资源;第二,如果有覆写的资源,生成 apk 的时候,tianxianews 工程覆盖 common 工程的资源,因为两个 R.java 内容一样,common 代码调用的 R.java 中的资源,实际上调用的是 tianxianews 资源,这个特性类似如面向对象的继承的概念。我们还可以另外新建 tianxiamusic,tianxialiterature 工程,都引用 common,这样我们三个工程就能共用 common,这样我们就可以只在 common 一个工程中开发了。在这里,具体的使用步骤我没有截图出来,主要是没什么技术,也没什么好说的,就是两个字:覆盖。 5.小结Android Library 为 Android 模块化和工程扩展提供了一个很好的工具或者方式。随着项目的增大,资源的共享,模块化和扩展的这种需求更是日益凸显,它不仅去掉了代码的丑-本文转载自仁人教育陋,而且减少了开发量,带来的益处不少。同时由此我们也可以看出来 Android 的不成熟,他们为我们大型工程提供的方案还是太少,这可能也有源自手机平台本身的局限性吧,我们期待 Android 市场走向更强大,技术走向更强悍。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号