工程架构、需求分析及maven私服搭建

架构模式

  • 传统架构:单一App工程,所以的代码都往一个工程里面累计,代码量指数级膨胀,编译时间长;业务逻辑和基础功能模块耦合度太高,代码复用性为0.
传统架构
  • 模块化工程架构:最上层是宿主层APK,不存放任何的逻辑,是一个空壳子,唯一作用就是对外产生一个APK。第二层是业务组件层,包含首页业务,登录业务,搜索业务,详情业务。第三层是通用业务组件,是一个公司APP所有都通用的东西,最下层是功能组件,与任何业务逻辑都没有关系。每个层分层情况非常清楚,如果要形成一个新的App分厂迅速的,宿主层基本可以复用,只需要改一下包名即可。基础业务组件和功能组件基本可以复用,只需要更换一下业务代码即可。
模块化架构
  • 企业级组件化架构:模块化的主要一个缺点就是业务层的强依赖,导致工程的强耦合。组件化和模块化没有什么太大的区别,主要求别就是业务组件层的路由化改造,解耦业务模块之间的强耦合,工程的可扩展性大大提高。
组件化架构

项目需求分析

  • 需求分析
    App的主页主要有我的,发现,朋友这三个功能模块,在我的这个功能模块中主要存放与用户相关的数据。而发现是一个Fragment的列表,可以实现加载更多和下拉刷新。朋友这个页面主要包含列表的下拉刷新。菜单栏,加载侧滑菜单,可以点击立即登录跳转到登录功能,登录完成再次回到主页,同时刷新我们的用户信息,点击搜索会跳转到搜索页面,点击下面的底部菜单栏会跳转到播放音乐页面去播放音乐,点击右上角的分享会跳出分享菜单,可以把歌曲分享到想要分享的平台。有一个notification来表示当前所正在播放的歌曲,通过一个红心来添加和收藏,同时可以点击播放上一个,播放下一首,以及暂停等功能。当然可以滑动音乐比方页面来切换歌曲,以及有一个歌曲的总列表。

  • 功能模块才分落地
    嘴上是宿主工程,这个工程的为一作用就是生成我们的apk,下一层是业务组件,包含首页业务(主要是三个侧滑菜单)、登录业务、搜索业务和音乐播放业务。第三层是lib_common_ui,即基础业务组件,公共UI模块,这个模块存放App中所用到的自定义view和其他的一些公共组件,最下层是与业务无关的功能组件。


    项目的模块划分

maven私服

  • 概述
    本地仓库比较鸡肋,远程仓库中的中央仓库一般有一些大的组织去维护,一般有Mavencenter和jcenter等,中央仓库面向全球的开发者,第二个部分就是私服,与中央仓库的区别是,中央仓库是部署在公网的,而私服部署在局域网,只有在这个局域网内的用户才能下载依赖包,其他可以包括个人见一个maven仓库然后发布到maven公网上,供其他人使用。几乎所有的公司都有自己的maven私服,。


    maven体系

    maven私服优势
  • maven私服搭建流程
    1 下载开源工程nexus3.16.2,安装,启动nexus服务
    2 打开浏览器,输入localhost8081,8081是nexus启动的默认端口,进入nexus首页,这就是maven私服的管理平台,创建两个maven仓库,一个是releases,主要用来上传releases版本的第三方库,另一个是snapshots,上传快照版本,仓库地址通过copyURL拷贝出来,仓库类型都是hosted类型
    3 maven仓库引入自己的项目中
    在buildscript中和allproject中引入
    配置仓库地址
    设置用户名密码
    有多少个仓库就引入多少个
    4 上传脚本配置代码
    在各自的库gradle中引入maven
    配置uploadArchives{}
    指定上传的工程名,版本号,描述信息
    5 完成上传
    对应的tasks中upload中双击uploadArchives构建当前工程并且完成上传,上传完毕后就会在nexus管理页面看到这个库

工程buildgradle文件优化

创建一个gradle文件,这个文件用来存放所有的compileSDK和最小SDK这些编译使用的常量,把这些固定的常量提取到一起,方便管理,在根工程中引用,根工程就有了自定义ext中的三个属性,那么就可以在子工程中使用root工程中定义好的这些属性。以后想要换个SDK版本或者添加一个依赖,重新编译即可引入,方便管理,消除魔法数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335