gpt4 book ai didi

Android笔记之:App模块化及工程扩展的应用

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android笔记之:App模块化及工程扩展的应用由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1.需求     无论是在.net还是java平台,合理的分层架构是最普遍的模块化思路之一。     dll,jar文件无不风靡盛行,无处不在。     一天,tx团队和我说,我们现在要做android上做三个论坛的客户端,一个是新闻论坛,一个是文学论坛,一个是音乐论坛。除了数据,界面和很少的模块不一样,其他的都一摸一样。     jar是我第一刻就想到的东西,但是共用的jar文件无法方便的共享资源或者覆盖资源。     而我们也不会傻傻的单独做三个客户端的吧,也不会傻傻的做3个客户端再傻傻的copy3份,依次修改吧.

2.问题    在android工程中如何开发一个共用framework,能共用资源,代码,但是也能扩展?  。

3.使用硬编码判断    有人提出了一种方案, 在代码里面判断:

复制代码 代码如下:

if(新闻论坛) {
   //加载新闻论坛的资源
   //执行新闻论坛的代码
   //显示新闻论坛的效果
}else if(文学论坛) {
   //加载文学论坛的资源
   //执行文学论坛的代码
   //显示文学论坛的效果
}else if(音乐论坛) {
   //加载音乐论坛的资源
   //执行音乐论坛的代码
   //显示音乐论坛的效果
}
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" ,如下图.

Android笔记之:App模块化及工程扩展的应用

      第三步: 新建主工程新闻论坛tianxianews。     第四步: 右键tianxianews,选择properties,在android标签页,点击add,选中common。如下图.

Android笔记之:App模块化及工程扩展的应用

    查看最后的工程结构:

Android笔记之:App模块化及工程扩展的应用

    此时此刻,common工程天衣无缝成了tianxianews工程的一部分。     我们展开tianxianews工程的gen目录:      。

Android笔记之:App模块化及工程扩展的应用

    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市场走向更强大,技术走向更强悍.

最后此篇关于Android笔记之:App模块化及工程扩展的应用的文章就讲到这里了,如果你想了解更多关于Android笔记之:App模块化及工程扩展的应用的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com