Android 動態加載插件與WebNativeActivity構想

動態加載技術,咱們常見的動態加載技術,web或者webapp是最典型的一類。git


一.動態加載插件技術

1. 常見的web技術github

2.DL框架,相似Lanucher的技術web

https://github.com/singwhatiwanna/dynamic-load-apk安全

3.Android-Plugin-Framework框架網絡

https://github.com/limpoxe/Android-Plugin-Framework app


以上三種模式,第一種成本較低,但體驗相對差,每次都須要請求網絡。第二種和第三種是純Native的技術,都比較強大,都使用了DexClassLoader,但DL框架有個明顯的缺陷是不夠安全,由於他能夠啓動獨立的apk,試想一下,有個apk給你偷偷的下載其餘你不知道的apk,而後默認啓動,這明顯不符合用戶意願,固然風險也是相對較高的,至於Android-Plugin-Framework,我的比較推薦,由於他避免了非註冊apk獨立運行的問題。框架


二.WebNativeActivity構想實現動態加載

WebNativeActivity 意思是將Activity做爲一個相似WebView,運行Native代碼的容器,這樣咱們的app值註冊至少1個Activity就行,運行的layout和drawable文件從網絡下載下來以後加載,(固然能夠保存到本地,甚至能夠及時更新)webapp


可行性研究分析spa

1layout問題插件

對於layout咱們能夠本身定義DSL或者使用自定義的layout.xml文件,而後經過咱們本身的XMLParse來實現UI

固然咱們也能夠使用LayoutInflater+LayoutInflater.Factory2,更加快速,並且能直接獲取xml文件的屬性

2.資源問題

對於資源的訪問規則,咱們須要本身定義一套訪問規則,由於原生規則可能沒法和layout匹配

3.邏輯問題

咱們能夠經過DexClassLoader加載Dex實現邏輯,固然也能夠藉助WebView

相關文章
相關標籤/搜索