插件化兼容性调研

一、机型兼容

对市场主流厂商的主流机型进行验证,除MI Pad没有通过验证,其他的机型都通过了验证,说明VirtualAPK基本能适应当前主流机型及主要安卓版本。

表1 机型兼容调研


编号


厂商


机型


系统版本


Android版本


DEMO验证


1


谷歌


Pixel


8.0


?


2


小米


Mix
2


MIUI
9.1


7.1


?


3


小米


MI
Pad


MIUI
9.2


4.4.4KTU84P


×


4


小米


Note
5A


MIUI
9.1


7.1


?


5


华为


Nova
2s


8.0


?


6


华为


P8


6.0


?


7


TCL


A3A
4G(5099U)


8.0


?


8


三星


galaxy
s7 edge(SM-G9350)


7.0


?


9


金立


M2017


Amigo
os 3.5.11


6.0


?


10


OPPO


A57


ColorOS
V3.0


6.0


?


11


OPPO


R11s


ColorOS
V3.2


7.1


?


12


VIVO


Y67A


FunTouch
OS_2.6


6.0


?


13


魅族


Pro
6 Plus


Flyme
5.2.7.2A


6.0


?


14


一加5T


A5010


H2OS
3.7.0


7.1


?

二、版本兼容

Android 系统版本目前更新到P版本(预览版本1), 由于FQ的限制,所以目前暂未验证VirtualAPK在P版本的兼容性。

表1描述了VirtualAPK适配Android 版本的情况,覆盖的安卓系统版本有4.4、6.0 ~ 8.0,除Android 4.4版本没有通过验证, 其他的系统版本都通过了验证。

三、插件化的困境

  • 插件化已经沦落为修bug的工具

    这跟插件化的初衷不一样,插件化是实现新功能,而不是修复bug。

  • 插件化现在有一个更好的替代品——RN

    RN会是真正实现动态化的最佳方式,至少我是这么认为的。

  • 插件化技术只在中国有市场

    国外的公司根本不看好这项技术,这可能是因为他们用GooglePlay,而谷歌官方不建议用插件化这种方式。国外开发者不敢越雷池半步。

  • 四大组件都需要做插件化吗?

    根据经验,做一款电商或旅游类的App,有一两百个Activity,Service用得很少,Content-Provider
    和BroadcastReceiver基本不用。所以,这种App实现Activity和Service的插件化就够了。像手机助手这样的App,非常频繁使用四大组件,所以四大组件都必须实现插件化,这也是张勇当年在360开发出DroidPlugin支持四大组件的原因。

四、P版本发布时间过程

尽管Android
9.0将于2018年8月发布,但不会立即提供给所有Android设备。首先,Google
Pixel设备将提供更新,然后我们将开始在9月份的IFA
2018展会上看到新款手机在开箱即送。

3月:预览版1(初始版本,alpha)

5月:预览2(增量更新,测试版)

6月:预览版3(最终API和官方SDK,Play发布,测试版)

6月:预览版4(测试发布候选版)

7月:预览版5(发布候选版,用于最终测试)

五、总结

经过对市面主流厂商华为、小米、OPPO、VIVO等的主流机型验证,VirtualAPK几乎可以适用Android
6.0 ~ 8.0的大部分机型,P版本由于FQ原因暂未验证。

插件化框架最大的风险是谷歌不支持插件化。

h2.western { font-family: "Liberation Sans", sans-serif; font-size: 16pt }
h2.cjk { font-size: 16pt }
h2.ctl { font-size: 16pt }
p { margin-bottom: 0.25cm; line-height: 120% }

h2.western { font-family: "Liberation Sans", sans-serif; font-size: 16pt }
h2.cjk { font-size: 16pt }
h2.ctl { font-size: 16pt }
td p { margin-bottom: 0cm }
p { margin-bottom: 0.25cm; line-height: 120% }

原文地址:https://www.cnblogs.com/tgltt/p/9542587.html

时间: 2024-08-08 18:52:54

插件化兼容性调研的相关文章

Android架构设计之插件化、组件化

如今移动app市场已经是百花齐放,其中有不乏有很多大型公司.巨型公司都是通过app创业发展起来的:app类型更加丰富,有电子商务.有视频.有社交.有工具等等,基本上涵盖了各行各业每个角落,为了更加具有竞争力app不仅功能上有创性,内容也更加多元化,更加饱满,所以出现了巨大的工程.这些工程代码不停添加如果没有一个好的架构所有代码将会强耦合在一起,功能直接也会有很多依赖,那么就会出现很多问题:例如: 1.修改功能困难,牵一发动全身.很多地方如果api写的不好,封装不优雅,那么就会出现改一个地方需要改

Android插件化的兼容性(中):Android P的适配

Android系统的每次版本升级,都会对原有代码进行重构,这就为插件化带来了麻烦. Android P对插件化的影响,主要体现在两方面,一是它重构了H类中Activity相关的逻辑,另一个是它重构了Instrumentation. 3.1 H类的变身 3.1.1 从Message和Handler说起 对于App开发人员而言,Message和Handler是耳熟能详的两个概念.我们简单回顾一下,一条消息是怎么发送和接收的. 首先,在App启动的时候,会创建ActivityThread,这就是主线程

360手机卫士插件化RePlugin今日开源

写在前面 "RePlugin将在6月底开源,这将是我们献给安卓世界最好的礼物."当我们宣布这一消息时,心中的激动,无以言表.是的,三年的"厚积",如今的"薄发",看似平凡的话,实际上却饱含了我们太多的激动.辛酸与泪. 那么今天,我们就来详细的和您聊一聊,这个从2014年中旬,正式在手机卫士上启用,并即将开源的360 RePlugin,究竟能为我们,更为您能带来什么. GitHub地址:https://github.com/Qihoo360/ReP

RN学习1——前奏,app插件化和热更新的探索

react_native_banner-min.png React Native(以下简称RN)有大量前端开发者的追捧.前端开发是一个活跃的社区,一直尝试着一统前后端,做一个全栈开发,RN就是他们在客户端领域的尝试. 说是从零开始,但其实我还是懂一点点JS代码的,而且算是一个有经验的iOS.Android开发,对很多js和native交互的细节和特性还算了解,在QDaily里面也做过好多hybird的尝试,还经常用JSPatch做hotfix,总的来说,就是对hot update.插件化以及hy

插件化(android)

插件化设计概述(android) 一.             模块划分 Basic模块包括:初始化接口.插件加载接口.插件更新接口和埋点接口. a)         初始化接口:完成一些必要的初始化工作. b)         插件加载接口:包括验证插件和加载插件的工作. c)         插件更新接口:与服务端通信更新指定插件. Marketing模块:依赖Basic模块,实现具体的业务逻辑. 接口组件 图1 插件活动 图2 Sdk加载序列 图3 二.             具体设计

Android插件化框架

1.   dynamic-load-apk/DL动态加载框架 是基于代理的方式实现插件框架,对 App 的表层做了处理,通过在 Manifest 中注册代理组件,当启动插件组件时,首先启动一个代理组件,然后通过这个代理组件来构建,启动插件组件. 需要按照一定的规则来开发插件 APK,插件中的组件需要实现经过改造后的 Activity.FragmentActivity.Service 等的子类. 优点如下: 动态升级, 高效并行开发(编译速度更快) 按需加载,内存占用更低等等DynamicLoad

自己动手写Android插件化框架

最近在工作中接触到了Android插件内的开发,发现自己这种技术还缺乏最基本的了解,以至于在一些基本问题上浪费不少时间,如插件Context和主工程Context的区别,权限必须在主工程申明等,因此花了点时间了解了一下插件的历史,并写了两个Demo作为总结.本文旨在通过两个实例直观的说明插件的实现原理以加深对插件内开发的理解,因此不会深入探讨背景和原理,代码也尽量专注于核心逻辑. 原理与背景 Android插件化从技术上来说就是如何启动未安装的apk(主要是四大组件)里面的类,主要问题涉及如何加

怎样将「插件化」接入到项目之中?

本期移动开发精英社群讨论的主题是「插件化」,上网查了一下,发现一篇 CSDN 博主写的文章<Android 使用动态载入框架DL进行插件化开发>.此处引用原作者的话: 随着应用的不断迭代,应用的体积不断增大,项目越来越臃肿,冗余添加.项目新功能的加入,无法确定与用户匹配性,发生严重异常往往牵一发而动全身,仅仅能紧急公布补丁版本号,强制用户进行更新.结果频繁的更新.反而easy减少用户使用黏性,或者是公司业务的不断发展,同系的应用越来越多,传统方式须要通过用户量最大的主项目进行引导下载并安装.

android插件化-apkplug从宿主启动插件Activity-06

插件是一个apk文件它存在自己的Activity界面和UI显示,本节将讲解如何配置插件的启动Activity以及怎样从宿主启动它. 一 配置插件apk的对外启动Activity (内部activity不需要配置) 与普通app不同,插件AndroidManifest.xml配置在apkplug框架中是无效的,我们需要在plugin.xml里面配置才能被apkplug所识别 具体设置属性为 Bundle-Activity="xxx.xxx.xxx.Activity" 只有设置为Bundl