我是靠谱客的博主 殷勤心锁,最近开发中收集的这篇文章主要介绍多个APP合并为一个APP开发的实现方案需求一、方案一——仍然分三个APP开发二、方案二——合并为一个APP开发总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

需求

目前开发了在线娱乐、收音机、本地音乐三个APP,需要开发一款APP集成这三个模块功能。
具体要求:左侧显示导航栏,包含“在线娱乐”、“收音机”、“本地音乐”按钮,点击可进入相应模块功能。

目前已知有两种实现方案,具体如下


一、方案一——仍然分三个APP开发

三个APP具有布局完全一致的左侧导航栏,点击导航栏完成APP之间的切换。这里通过三个APP来回跳转的方式,实现了让用户看起来是一个APP。其中需要注意:

1.在每个APP中,在BaseActivity中统一显示、控制左侧导航栏。注意每个活动取消切换动画,背景设置为透明色,这样可保证APP之间来回切换时看着像一个APP。

2.多个娱乐类应用在后台时,需要考虑点击图标应该打开哪个应用,需要每个APP都需要通过发送接收广播来记录应该启动哪个APP,这个过程就相当繁琐;

2.灵活度低,如果导航栏需要新增/删除/修改时,需要去三个APP中进行修改。

二、方案二——合并为一个APP开发

按照一般的开发会存在一个问题:如果按照默认活动启动模式,记录三个模块的栈顶Activity,模块A依次打开A1-A2-A3,再点击导航栏按钮模块B依次打开B1-B2-B3,再次点击模块A按钮跳转到A3后,点击返回按钮则会跳转到B3页面而非A2。

1.结合singleTask和taskAffinity实现一个APP中有三个任务栈,使用三个任务栈分别管理相应模块(可避免上述问题);

2.使用MyApplication在活动关闭、打开、退出APP时分别记录三个模块的任务栈列表;

3.存在的问题,由于会创建三个任务栈,所以在创建第二个、第三个任务栈时会出现黑屏现象,目前仍未解决。考虑到手机APP之间跳转貌似没有此现象,应该是能够解决的;

4.后续开发建议可考虑组件化开发,三个功能模块分别为三个模块,这样每个模块可单独运行。

总结

很多车机已经将娱乐类APP融为一个大的APP,大多数车厂的案例也只是左侧导航栏点击控制界面的切换,再点击了导航栏按钮后只有一个页面,不会存在从这个页面切换到下一个页面的情况,即每个模块只有一个页面,这种情况使用fragment就能实现。
参考吉利、领克车型,每个模块会有很多个页面,这个就与我们的需求类似。
参考了手机APP,比如支付宝中嵌套了很多第三方应该,跳转会有一个类似loading的页面后才会跳转到第三方应用,而且支付宝与第三方应用没有共同布局,即类似于我们需求的左侧统一导航栏,查找资料用的可能是插件化技术,故不满足我们的需求。
请教了同行,同行给出了两个解决思路,也即上述的两种方案思路,故按照这两种思路进行了实践有了上述的总结。

最后

以上就是殷勤心锁为你收集整理的多个APP合并为一个APP开发的实现方案需求一、方案一——仍然分三个APP开发二、方案二——合并为一个APP开发总结的全部内容,希望文章能够帮你解决多个APP合并为一个APP开发的实现方案需求一、方案一——仍然分三个APP开发二、方案二——合并为一个APP开发总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部