您好,登錄后才能下訂單哦!
這篇文章主要介紹“Container應用設計原理是什么”,在日常操作中,相信很多人在Container應用設計原理是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Container應用設計原理是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
以安卓為例子,我把我們發布到安卓應用市場的app解壓出來研究了一下。
上圖是一個cordova的總體框架的描述,可以看到cordova主要由兩部分構成。
第一部分:Cordova Application是Cordova框架獨立于不同手機操作系統的一個封裝層。具體包括
1)Web app(包括具體的app的HTML/JS/CSS代碼等);
2)Cordova框架已經封裝好的核心插件(如相機、存儲等系統調用),這塊是Cordova的核心部分。當然,開發者也可以基于它的插件體系,擴展出新的插件;
第二部分:Mobile OS就是具體的手機操作系統層了,Cordova目前支持大部分的手機OS:ios、android、wp、blackberry等等
第二部分我們在這里就不贅述,都是mobile OS的各種原生功能。
那么我們先來看第一部分的webapp這一部分,我們將下載下來的apk文件解壓縮,如下所示是一個很經典的安卓app的apk包的結構:
上文中講過, 用Cordova工具將C4C Aurora的項目文件打包成Android或者iOS原生應用后,以Android平臺為例,客戶安裝apk在安卓設備上后,運行在安卓手機上的C4C應用實際運行在WebView中。
WebView里加載的JavaScript和HTML文件實際上已經保存在了Cordova構建出來的項目包(即apk文件)里。在運行時,這些資源文件通過Embedded server加載到WebView里。
當然,手機C4C應用上所有需要顯示的Transaction數據,比如在手機C4C應用上打開Account工作中心,看到的所有Account數據都來自對應的C4C tenant,這些數據的讀取請求通過embedded Server發送到C4C tenant的后臺 ABAP系統上去。
Jerry在博客( https://blogs.sap.com/2017/08/17/step-by-step-to-package-a-fiori-application-into-your-android-device-using-cordova/)中有寫到如何用cordova創建一個fiori 風格app, 文中有講到我們在開發這樣一個app的時候會有一個默認的index.js生成,我們基于這個文件為入口進行開發cordova的應用,我們在assets->www下面找到了這個index.js文件,同時我們看到了幾個zip包,這幾個zip分別來自我們C4C開發組所開發的oberon和lead cod,里面包含了我們開發的javascript代碼和樣式表文件,這些文件即是上文提到的保存在cordova構建出來的項目包里的代碼和html文件。
我們打開一個oberon.zip看一看里面的內容,比如我現在打開的是我們開發的RUI client下面的所有javascript代碼和樣式表文件的目錄,library-preload.js就是我們開發的javascript代碼壓縮之后的合集,其中也包括一些我們會用到的UI5的類庫。
通過jerry的博客我們得知應用運行時會先加載這個js文件,那么打開這個文件看一下上文提到的oberon.zip等zip里面的代碼是如何被加載和運行的。
可以看到這里加載了兩個js文件,運行了一個app.initialize()方法. 這個方法被定義在加載的第二個js文件js/index.js里面,打開這個index.js文件之后發現的確是這里的initialize 方法加載了sap的UI標準庫,主題庫,語言等。
上文中講了第一部分中的webapp,那么我們來看看開發者自己開發的插件這一部分,在Jerry的博客中有寫到如何用java開發一個自定義的cordova插件: https://blogs.sap.com/2017/08/18/step-by-step-to-create-a-custom-cordova-plugin-for-android-and-consume-it-in-your-ui5-application/,文中有提到我們如何在UI5的application中去調用我們開發的cordova插件,我們在這個解壓出來的包里面也可以看到這些去消費插件的這些js class:
打開一個調用名片掃描插件的文件夾,我們發現與開發的時候文件目錄基本一致, /platforms/android/assets/
到此,關于“Container應用設計原理是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。