多個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的頁面後才會跳轉到第三方應用,而且支付寶與第三方應用沒有共同佈局,即類似於我們需求的左側統一導航欄,查詢資料用的可能是外掛化技術,故不滿足我們的需求。
請教了同行,同行給出了兩個解決思路,也即上述的兩種方案思路,故按照這兩種思路進行了實踐有了上述的總結。
相關文章
- django中多個app的路由實現DjangoAPP路由
- iOS開發-第一個AppiOSAPP
- 如何開發一個免費的app?APP
- 多個excel檔案合併成一個excel表的方法 如何快速合併多個excel檔案Excel
- 多個excel合併Excel
- 如何實現一個手帳 AppAPP
- 如何去開發一個webAppWebAPP
- Xcode一個project生成多個AppXCodeProjectAPP
- Iori的工具箱 之 C# 實現多個圖片合為一個TiffC#
- 如何把多個pdf合併成一個pdf文件?
- 智慧合約Dapp系統開發(方案)APP
- 多個excel檔案合併到一個檔案中的多個sheet表中Excel
- 開發一個MyBatis通用Mapper的輪子MyBatisAPP
- 十個最適合 Web 和 APP 開發的 NodeJS 框架WebAPPNodeJS框架
- 10 個最適合 Web 和 APP 開發的 NodeJS 框架WebAPPNodeJS框架
- 遊戲陪玩app開發,前端實現一個輪詢需要如何做?遊戲APP前端
- app開發的幾個步驟APP
- 多個 EXCEL 檔案如何合併成一個檔案Excel
- 合併多個工作薄workbooks到一個工作薄workbook
- iStylePDF把多個PDF合併成一個PDF檔案
- 用Flutter實現一個小說閱讀AppFlutterAPP
- 一種app模組化實現方案APP
- 「Git」合併多個 CommitGitMIT
- python多個txt合併Python
- 想開發iPhone App?來看看這個6個適合新手的專案吧iPhoneAPP
- 開源一個上架 App Store 的相機 AppAPP
- 混合開發實戰:App里拉起一個小程式(IOS篇)APPiOS
- DAPP開發流程 | DAPP智慧合約開發APP
- java多執行緒與併發 - 自己實現一個簡單的鎖(實現Lock介面)Java執行緒
- 通過Guava實現兩個包含不同物件的List合併成一個ListGuava物件
- python合併多個csv檔案需要注意的問題(合併多個列名問題)Python
- 以太坊智慧合約開發環境搭建以及第一個Dapp開發環境APP
- 直播賣貨APP開發多場景開發解決方案APP
- oracle 合併多個sys_refcursorOracle
- 智慧合約DAPP理財返現系統開發技術方案APP
- 微信配置Universal Link解決方案支援多個appAPP
- 實現一個併發任務執行框架框架
- 用Java實現一個通用併發物件池Java物件