uniapp打包的apk是怎么实现的?

uniapp打包的apk是怎么实现的?
如果是内嵌的网页,那么网页试运行在一个什么样的环境里面?

阅读 3k
2 个回答

之前的答案不大严谨,我再更新下:

uni-app 提供了两种模式,一种是题主说的“内嵌网页”,通过安卓本身的浏览器视图组件 webview 实现,是相对传统的 hybird 方案,好处是兼容性好;还有一种比较新的模式就是 nvue 引擎渲染,好处是性能相对高

内嵌网页的方案不用多说

要理解 nvue 的跨平台方案,首先要了解对应的平台应用是如何运作的

以安卓为例,一个应用的界面,可以通过 xml 文件描述,那只需要把 DOM结构 转换为对应的 xml标签 不就能实现 UI复现 了吗,比如一个 div 可以对应安卓的各种布局容器(比如线性布局、相对布局);再比如 img 可以变为 图片视图组件。当然 uniapp 主要是针对 vue组件 ,但也大同小异

同理,逻辑层的 js 代码也可以转变为 java 或者 swift 代码,最终通过 Android StudioXCode 打包为对应平台的应用

uni-app 打包成apk时,会根据不同的渲染引擎生成页面放进apk基座。如果是 vue 页面的话,还是通过 webview 实现(类似于微信小程序);如果是 nvue 页面,则会通过weex实现(大致方案也就是楼上所说的,此处就不再赘述)。
另外,uni-app 中的各种原生操作API是在apk基座中通过 Java/Kotlin 实现,页面端与基座端通信以实现调用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题