APP、H5 身隐、小程序測試區(qū)別
●運行環(huán)境
原生App直接運行在操作系統(tǒng)的單獨進行中(安卓中可以開啟多進程)廷区,而小程序運行環(huán)境是微信開發(fā)團隊基于瀏覽器內(nèi)核完全重構(gòu)的一個內(nèi)置解析器,針對性做了優(yōu)化贾铝,配合自已定義的開發(fā)語言標準隙轻,提升了小程序的性能 埠帕。是一種應用,并非完整的瀏覽器玖绿,只用到一部分H5技術(shù)敛瓷,無法調(diào)用window對象和document對象
H5是一種技術(shù),依附的外殼是瀏覽器镰矿,琐驴,包括WebView,可以隨意使用瀏覽器中常用的window對象和document對象
●開發(fā)成本
原生app的開發(fā)涉及到Android/IOS多個平臺秤标、開發(fā)工具绝淡、開發(fā)語言、不同設(shè)備的適配等問題苍姜,開發(fā)成本大牢酵;一款完善的雙平臺 App 平均的開發(fā)周期約3個月;
小程序只需要開發(fā)一個就可以在?Android/IOS等不同平臺不同設(shè)備上運行衙猪,平均開發(fā)周期約2周馍乙,僅為App的六分之一。
原生APP需要在商店上架(安卓的需上架各種商店)垫释;
小程序是微信團隊提供了開發(fā)者工具并規(guī)范開發(fā)標準丝格,不用考慮瀏覽器兼容性,小程序 一次開發(fā)就可以自動適配所有手機棵譬,開發(fā)成本相對低显蝌;
H5 的開發(fā),涉及開發(fā)工具(vscode订咸、Atom等)曼尊、前端框架(Angular、react等)脏嚷、模塊管理工具(Webpack 骆撇、Browserify 等)、任務(wù)管理工具(Grunt父叙、Gulp等)神郊,還有 UI 庫選擇、接口調(diào)用工具(ajax趾唱、Fetch Api等)屿岂、瀏覽器兼容性等等。盡管可可定制化非常高鲸匿,可以有自己的配置模板爷怀,但對于項目中各種外部庫的版本迭代、版本升級带欢,開發(fā)成本比小程序相對高些运授;H5頁面由于無法被單獨沉淀用戶(無法直接關(guān)注)烤惊,一般都是配合公眾號或者APP(html5打包APP)的產(chǎn)品形態(tài)
●系統(tǒng)權(quán)限
原生app調(diào)用的是系統(tǒng)資源,即系統(tǒng)提供給開發(fā)的API都可以使用吁朦;
小程序是基于微信的柒室,所有功能都受限于微信,不能繞過微信直接使用系統(tǒng)提供的API
原生app可以給用戶推送消息逗宜;
小程序不允許主動給用戶發(fā)送消息雄右,只能回復模版消息。
原生App有獨立的數(shù)據(jù)庫纺讲,可以做離線存儲擂仍;
小程序只能存儲到localStorage,無法做離線存儲熬甚。
原生app需要下載逢渔,安裝包比較大;
小程序無需下載乡括,可以通過小程序碼等方式通過微信直接打開肃廓。
H5不能獲取系統(tǒng)權(quán)限(如網(wǎng)絡(luò)通信狀態(tài)、數(shù)據(jù)緩存能力等)诲泌,大多應用被定位在業(yè)務(wù)邏輯簡單盲赊、功能單一的場景中。
●運行流暢度
原生App運行在操作系統(tǒng)中敷扫,所有的原生組件可以直接調(diào)用GPU進行渲染角钩;
小程序運行在微信的進程中,只能通過WebView進行渲染呻澜。用HTML+CSS+JS開發(fā)惨险,配合微信的解析器最張渲染出來的原生組件的效果,比H5體驗上更好辫愉。
H5應用面對復雜的業(yè)務(wù)邏輯或豐富的頁面交互時,需要不斷的對項優(yōu)化來提升用戶體驗恭朗。
●下載 與安裝 ? ??
App 從應用商店(如 App Store)里下載屏镊;
小程序 通過微信(掃描二維碼、搜索)直接獲得痰腮;
App 安裝在手機內(nèi)存中,就像自己買了輛車放在車庫里隨時開膀值;
小程序 不需要安裝误辑,召之即來用完拜拜;
●占用空間
App 會一直存在手機中占用空間歌逢,太多的 App 可能會導致內(nèi)存不足巾钉;
小程序 因為不需要安裝,占用內(nèi)存空間忽略不計秘案;
●機會
App 市場已經(jīng)飽和砰苍,幾乎所有的領(lǐng)域都已經(jīng)被覆蓋阱高;
小程序是一片藍海,在新的使用場景下有很多瓜分蛋糕的好機會讨惩;