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

相关文章
相关标签/搜索