美文网首页Android技术知识
#星光极客漫谈#安卓组件化发展的思考

#星光极客漫谈#安卓组件化发展的思考

作者: 智慧星光 | 来源:发表于2019-10-25 16:11 被阅读0次

    智慧星光是中国大数据50强企业,本系列文章提供内部攻城狮独家分享编程经验、工作思考、技术干货等优质内容,我们是领先的认知智能大数据运营商,也是前沿技术、经验的传播者。


    本期作者:智慧星光政务事业部  Android开发工程师赵健

    为什么要架构 

    1.1对产品层次的理解

    都知道做出一个优秀的产品多么重要。但为什么要做产品,目的不过也就是为了赚钱。

    每一个产品都有自己的特色,作为一个优秀的开发,不仅要有实现产品需求的能力,还应该拥有对未来产品需求变化而做的架构能力。这也是我们今天要分享的内容。

    1.2浅谈架构

    架构是什么?有一句非常有名的话可以概括:Architecture is like teenage sex,everybody talks about it,nobody really knows what is it。也就是说架构这东西是没有具体含义的。

    架构需要解决目前实际需要的问题。对目标系统的边界进行界定,按某个原则划分,设立沟通机制,并将其合为一体,完成目标系统的所有工作。

    对公司产品的思考 

    2.1对舆情秘书未来的展望

    我们的主要业务是大数据分析,而我们的舆情秘书APP是数据的展示。所以我们要以数据提供的思路来规划舆情秘书APP的未来。

    智慧星光拥有舆情秘书、智慧商情、星光文本超脑等多款产品,数据采集快全准,累计数据2000亿+,能够帮助政府机构、企事业单位精准、及时、全面的掌握关于自身的互联网舆情信息,提高舆情应对能力,及时化解矛盾,处理好政府和民众;洞察用户、洞察市场,深化品牌价值。

    舆情秘书移动端

    2.2基本功能

    做好基础的功能,包括舆情浏览(显示舆情数据)推送预警(对舆情数据的处理)事件分析(更深层次的定制化的数据分析)等更多的舆情信息。做好APP中每个功能模块的展示以及各种各样的逻辑处理。

    2.3更赚钱的功能

    现在的舆情信息主要还是提供给大型机构,包括政府。而对于以后可能会有更多更多的方面需要用到我们的舆情秘书。可以是这样:

    a. 单独使用舆情秘书APP

    b. 作为一个或多个模块使用我们的APP部分功能

    c. 定制APP内容,可能只是部分功能的定制

    d. 我们的APP镶嵌更多的对外功能

    举个实际的例子:

    美团APP的外卖模块和美团外卖APP的主页功能是一样的,并且通过他们的技术文档获知,这一外卖模块的代码是相同的,只是拼接到了不同的APP中而已。如图:

    两个模块都是惊人的相似,我认为这是我们舆情APP所发展的方向:就是深度内嵌到客户的App中,这也应该努力的方向

    Android组件化架构

    前面讲了这么多对未来的展望,一切不能只是空谈,而是要理论结合事件,将基础的代码功能要进行强化,而且要根据需要架构整个层次。

    3.1基础架构

    (1)基础库Base,封装很多的工具类

    (2)App结构层,具体的App框架

    (3)利用文件夹,分开各种功能模块

    (4)应用层打包成具体的应用

    这种层次结构保持着高内聚,并不低耦合,不适用于大规模的开发,对代码质量也不高,需求的变更适用性不强。

    3.1.2模块化

    模板层服务于多个分发业务的组装。

    3.1.3插件化

    用户希望拥有新体验的同时,又不希望App频繁更新。

    3.1.4组件化

    不同的功能可以任意的组装,适应各种需求,各种产品的产出。

    3.2 组件化分发

    3.2.1Activity分发

    通过ModuleContext应用各个外置模块。

    3.2.2Fragment分发

    3.2.3View分发

    3.2.4层级限制

    3.3 组件化基础

    3.3.1AndroidManifest

    (1)如果功能Module有Applicaiton,主Module没有自定义Appilcaiton,使用功能Application。

    (2)如果主功能Module有Application,则使用主Application。

    (3)多个功能Module有Applicaiton,解决冲突后,加载最后一个module的Applicaiton。

    (4)主功能Module,功能Module也有Applciaton, 最后使用主功能Applicaiton。

    3.3.2Application

    这个是整个应用的上下文环境,通过这个上下文的生命周期获取全局使用的Context,便于统一管理,避免滥用导致的内存泄露。

    3.4组件化优化

    这里的优化不是代码的优化,而是工具的优化,脚本文件的问题,这里简单的概括为,将各个模块的配置文件单独创建一个公共文件common.gradle进行版本号,依赖库引用的统一控制。

    3.5 组件化编程

    3.5.1本地广播

    注册

    发送

    3.5.2组件化通信机制

    由于各个组件化模块都是分离开的,所以需要一个解耦的通信机制:

    3.5.3组件化跳转

    统一的路由控制,使用时候进行注册,这个即解耦合,又可以进行模块间的跳转。

    3.6 团队化编程

    架构是优化产品的工具方法,是一个人人需要遵守的大纲和规范。但开发过程中需要人人参与,所以提高每一个人开发能力是一个急需解决的事情。

    3.6.1培训和分享

    其实,培训和分享是两件事,也可以作为一件事情来做。以领导为主的,下属积极参与的形式来展开分享是一种不错的方式。

    分享的东西可以是多种多样的,自己拿出来自己能够拿的出手的东西来分享,不仅可以更有效的传递知识,而且还增加了大家的积极主动性。

    3.6.2代码ReView

    回顾写过的代码是一种跟分享不同的存在,Review代码更具有针对性。

    对移动端未来的预测

    随着5G的发展,移动端会进一步成为人与人、人与物、物与物的主力,不仅仅手机开发,有可能还是各种物联网的移动端开发。

    降低开发成本,促成利益的最大化。近些年来跨平台开发一直是众多互联网公司推崇的开发方式。就像PC端之间的跨平台开发一样,移动端的跨平台一定会成为主流。即一套代码可以在多个平台运行。

    随着华为推出的鸿蒙系统,我们国家越来越认识到拥有自己知识产权的重要性,移动端的软件力度会进一步加强。

    移动APP会是一个非常方便的工具,就像锤子手机的老罗所说的那样,产品是为人服务的,一定要让用户感觉到爽、方便才行。

    移动端是很有前途的 

    未来将是移动互联网时代,手机App将会是企业移动互联网必备的身份证,是企业未来移动信息终端的敲门砖。手机APP开发的不断创新,始终是用户的关注焦点,随着互联网越来越开放化,随着各类移动终端设备的普及,人们逐渐习惯了使用APP上网的方式,而目前国内各大集团公司、电商企业,均拥有了自己的APP客户端,标志着APP的商业使用已经逐渐普及,这为手机APP提高市场占有率提供了条件。

    在未来没有主动适应移动互联网的发展趋势的企业都很大可能将被迅速的淘汰或边缘化,新的市场格局和主导力量随即形成。移动互联网APP网站用户规模,用户的消费能力都对于整个产业体系产生深远的影响,APP显现出来的商业价值表示移动营销的时机已经到来,在未来,企业将会把APP作为市场营销的主战场。

    相关文章

      网友评论

        本文标题:#星光极客漫谈#安卓组件化发展的思考

        本文链接:https://www.haomeiwen.com/subject/pxzsvctx.html