导航相关知识梳理

这篇具有很好参考价值的文章主要介绍了导航相关知识梳理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

接下来轮到了专业知识---》android知识--》通用的知识

导航相关的知识整理开始了,应该是要一个星期差不多的。每天加一点

百度地图,高德地图,百度地图相关的虽然比较全面,每个模块都有了解,毕竟自己带了多个相关项目,但目前市面上应该不需要百度地图的定制开发了,所以很可惜,跳过

高德地图,由于高德是sdk开发模式,比较纯碎,基于sdk的HMI定制开发。所以没有比较深的难点,但可以从开发效率,app性能,app稳定性 三个方面来评价自己的app是否优秀(目前对比高德公版app)。然后是具体的专业知识相关的总结,我这边主要是引导,巡航,主页,以及提供第三方接口。

先说开发效率,我接触了好几种代码结构(框架),接下来我会对比他们,以及我自己弄的代码结构,累了,歇一歇。

 文章来源地址https://www.toymoban.com/news/detail-790754.html

一:看下高德sdk demo 的代码结构:
autoui 对view的封装                 依赖 无
basemap 对 主页view的封装   依赖common + business
bussness 对sdk 接口的封装     依赖 autoui
common 对 mvp结构的封装    依赖 autoui
driver 实现mvp及对view封装   依赖common + business
search 实现mvp及对view封装  依赖common + business
user 用户中心                               依赖common + business
app 启动激活 依赖所有

二:再看下我们的项目:
autoui 对view的封装                依赖 bussness
basemap 对 主页view的封装  依赖 driver
bussness 对sdk 接口的封装   依赖 无
common 对 mvp结构的封装    依赖 autoui
driver 实现mvp及对view封装   依赖 search
search 实现mvp及对view封装 依赖 naviinteface
naviinteface通过aidl对外接口  依赖 common
app 启动激活+用户中心             依赖 basemap

一目了然,我们的开发人员没有意识到分层的概念,为了项目中的具体问题,随意改动了依赖关系
其实高德原来的demo有明显的分层的概念:

底层是 common + business 上层是 driver,search,user等功能模块。
每层模块之间是独立的,且下层模块是不能依赖上层模块。


我也是中途接手引导模块,一直也没等到自己负责新项目的机会,有点遗憾。

我们的另一个项目对代码依赖有了改观

hmi :对ui逻辑处理

core : 对高德sdk的封装

把 bussniss层下移到一个独立app里面,并将各个模块的服务类也放到了bussniss里面
把hmi相关的放到另一个app里面,APP之间通过aidl进行交互。

这样物理上将两层进行分割开,这样的目的主要是为了兼容不同的引擎,到时候只需切换core app 就能实现百度,高德,腾讯的切换,不过这种想法很傻叉,没有厂商愿意支付多个导航APP的钱,但代码结构得到了改善。

我但从代码结构上看
比之前的项目是不是好了很多。代价是性能降低。分层还是分app?(但各个app内部模块还是一团),其实还是要跟每个开发人员讲清楚里面的分层理念(强制要求:不要改动依赖项),分APP 更耗人力,更费性能,但对开发人员要求降低了。


但这些都没有 解决view的混乱,以往出问题70%的地方都出在view里面,这里经常改动,经常变更,我只改造了引导 + 主页 两个模块,因为我负责这两个模块(项目很少了,只有一个项目了,只能大家分着搞,
以前我一个人都搞一两个项目,有什么想法都能自己改造,现在只能自己模块搞搞,其他项目都是换UI,是的,部门快黄了)。
引导和主页中的控件全都是自定义控件,根据lifecycle监听生命周期,根据eventbus(我们消息分发用的是eventbus,我更愿意lister)监听各自想要的底层事件。
自己控制自己的显示隐藏,数据更新等。我改动后感觉很好用,而且更换UI的时候,只需调整各个自定义view自己的xml,逻辑根本不用动。
好了,代码结构就分析到这里,没想到提出离职到走人这么快,意想不到

明天还要继续,继续分析模块内部的代码结构,一层一层的来,但愿时间充足

 

 

到了这里,关于导航相关知识梳理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 多线程基础知识点梳理

    进程(process):进程是计算机中的一个任务,比如打开浏览器、IntelliJ IDEA。 线程(thread):线程是进程内部的子任务。比如IDEA在敲代码的同时还能自动保存、自动导包,都是子线程做的。 进程和线程的关系就是一个进程包含一个或多个线程。 线程是操作系统调度的最小任

    2024年02月04日
    浏览(33)
  • 计算机语言知识点梳理

    python是一门强类型、动态型、解释型语言语言 JavaScript是一门弱类型、动态性、解释型语言 typescript是一门强类型、静态型、编译型语言 Java是一门强类型、静态型、编译型语言 变量大小写区分 html css sql java javascript python typescript c 弱类型语言和强类型语言 强类型语言也称为强

    2024年02月09日
    浏览(34)
  • 8086 汇编语言知识点梳理

    机器语言是机器指令的集合 机器指令是一台机器可以正确执行的命令 机器指令由一串二进制数表示 汇编语言的主体是汇编指令 汇编指令是机器指令便于记忆的书写格式 汇编指令是机器指令的 助记符 汇编指令:机器码的助记符,有对应的机器码 伪指令::没有对应的机器

    2024年02月08日
    浏览(43)
  • AI大模型知识点大梳理

    AI大模型是指具有巨大参数量的深度学习模型,通常包含数十亿甚至数万亿个参数。这些模型可以通过学习大量的数据来提高预测能力,从而在自然语言处理、计算机视觉、自主驾驶等领域取得重要突破。 AI大模型的定义具体可以根据参数规模来分类。根据OpenAI的分类方法,

    2024年02月09日
    浏览(40)
  • HTML+CSS阶段知识点梳理

    目录 一、简单的网页结构 二、常用标签  三、列表  四、CSS引入方式 五、常用选择器  1、标签(元素)选择器 2、id选择器 3、class选择器 4、通配选择器 5、复合选择器 6、关系选择器 7、属性选择器 8、伪类选择器 9、a元素的伪类 10、伪元素选择器 11、继承 12、选择器的权重

    2024年02月05日
    浏览(28)
  • 网络安全知识点梳理(期末不挂科)

    本文一篇帮你梳理清晰,内容覆盖整个大学网络安全知识点 👌🏻   干货满满不看后悔 👍👍👍 📝个人主页→数据挖掘博主ZTLJQ的主页 ​ 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️python系列专栏 - 从零开始学python   第一章 漏洞类型 一、操

    2024年02月13日
    浏览(32)
  • K-means算法(知识点梳理)

    目录 一.K-means算法的原理和工作流程 1.算法原理 2.工作流程 二.K-means中常用的距离度量方法 1.欧几里得距离(欧氏距离) 2.曼哈顿距离 3.切比雪夫距离 三.K-means算法中K值的选择 1.手肘法 2. 轮廓系数         手肘法和轮廓系数的实现 四.初始点的选择 1.随机选择 2.最远距离 

    2024年02月16日
    浏览(35)
  • C语言指针入门学习、知识点梳理(四)

    本篇内容:指针星号的三种含义以及指针在函数调用时,与实参、形参的变量传递关系,如何通过被调函数修改主调函数普通变量的值。 传送门: C语言指针入门学习、概念梳理(一) C语言指针入门学习、概念梳理(二) C语言指针入门学习、知识点梳理(三) C语言指针入门

    2024年02月09日
    浏览(31)
  • 第15章 数据管理成熟度评估知识点梳理

    ◼ 能力成熟度评估(Capability Maturity Assessment,CMA)是一种基于能力成熟度模型(Capability Maturity Model,CMM)框架的能力提升方案,描述了数据管理能力初始状态发展到最优化的过程 。【神仙,也是有段位的】CMA 概念源于美国国防部为评估软件承包商而建立的标准。20 世纪 8

    2024年04月15日
    浏览(39)
  • 《高等工程数学》各知识点解题思路梳理(基于AI模型)

    1.给定线性空间的一个基,求一给定向量在该基下的坐标 假设给定线性空间 V V V 的一个基为 { v 1 , v 2 , ⋯   , v n } {mathbf{v}_1,mathbf{v}_2, cdots, mathbf{v}_n} { v 1 ​ , v 2 ​ , ⋯ , v n ​ } ,要求一个向量 v mathbf{v} v 在该基下的坐标。 由于 { v 1 , v 2 , ⋯   , v n } {mathbf{v}_1,mat

    2023年04月08日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包