1.4 The usage of plug-in
Once upon a time, we once thought naively that Android plug-in was intended to add new features or add a complete module.
It took a lot of time and effort. After the project was implemented with the plug-in framework, we discovered that 80% usage of the plug-in is to fix online bugs. At this point, it has the same capabilities as hot fix tools such as Tinker and Robust, and even better than hot fix tools.
The App released a new version every two weeks. Generally, the new feature goes online at this point. On the other hand, the release strategy of many companies' Android App are affected by the new release of the iOS platform. New features need to wait for these two versions to be released. It is only when the Apple Store put the version of the iOS online, then the App of Android can be released. It is really not so busy to do.
In the past without plug-in framework, we did all kinds of development. We were scared to write bugs, if serious bug appeared, we must re-issue the upgraded version. With the plug-in framework, developers have no worries about the quality of the code ——anyway, if wrong, we can send a plug-in package to fix it quickly. After the app released, each plug-in will have one or two new releases every day.
The Android plug-in framework has become to a bug-fixing tool. This is the scene that we do not want to see.
In fact, the plug-in framework is more suitable for the games. For example, the King Glory, there will always be new skins, or a new hero role available every few days, even adjusting the roles attributes, all of these do not need to be released as a new version.
There is another use case for plug-in technology, that is ABTest, but it is not used widely. When the product manager want to determine which one will be selected for two styles of design, there will be two strategies which are made into the two plug-in packages, so that 50% of the users download the strategy A, the other 50% of the users download the strategy B. Checking the result after a week, such as the page conversion rate , it will tell you which strategy is better. That is Data-driven product.
In the previous section, it was mentioned about the componentization of Android. That is, with the independence of the business unit, the Android and iOS teams are split into their own business and have their own organization relationships. Therefore, it is necessary to split the different services of hotel ticket and train tickets into different modules. In componentization of Android, modules are still dependent on AAR, we can use Maven to manage these AAR.
This componentized model of Android is only applicable to the development stage. Once there is a bug in the on-line release or new features are to be released, all modules must be repackaged together to deploy the new release.
If we want to go further, then plug-in technology appeared. At this point, each service module is no longer AAR, but a packaged apk file, placed in the assets directory of the host App. In this way, after a release version, some module is updated, only the code of this module is repackaged, an incremental package is generated, and it is put on the server for the user to download.
It is the value of Android plug-in in enterprise application development. The small company only used the Android componentization and did not go into plug-in technology, such benefit was not acquired because of high development costs and low input-output ratio.
1.4 The usage of plug-in的更多相关文章
- intellij IDEA 出现“Usage of API documented as @since 1.6+”的解决办法
问题 在导入java.io.console的时候出现"Usage of API documented as @since 1.6+"
- Disk Space Usage 术语理解:unallocated, unused and reserved
通过standard reports查看Disk Usage,选中Database,右击,选择Reports->Standard Reports->Disk Space Usage,截图如 ...
- OpenCascade MeshVS Usage
OpenCascade MeshVS Usage eryar@163.com Abstract. MeshVS means Mesh Visualization Service. It can be ...
- Usage: AddDimensionedImage imageFile outputFile eclipse 运行程序出错
关于这个在eclipse中运行java程序的错,首先确认你的jdk,jre是否完整,并且与你的eclipse的位数相同,当然我相信这个错误大家应该都会去检查到. 第二个关于addDimensioned ...
- Please allow Subclipse team to receive anonymous usage statistics for this Eclipse intance(info)
本文转载自:http://blog.csdn.net/myfxx/article/details/21096949 今天在用eclipse启动项目的时候发现了一个问题,就是每次启动项目的时候,ecli ...
- [转]Dynamic SQL & Stored Procedure Usage in T-SQL
转自:http://www.sqlusa.com/bestpractices/training/scripts/dynamicsql/ Dynamic SQL & Stored Procedu ...
- poj1087 A Plug for UNIX(网络流最大流)
http://poj.org/problem?id=1087 好久没遇见过这么坑的题了这个题真是挫的够可以的.题目大意:你作为某高管去住宿了,然后宾馆里有几种插座,分别有其对应型号,你携带了几种用电器 ...
- 处理Linux下subversion尝试连接自建的VisualSVN server报“Key usage violation in certificate has been detected”错误的问题
在Linux下使用subversion尝试链接VisualSVN server搭建的svn库,可能会报下面错误, svn: OPTIONS of 'https://server.domain.loca ...
- VS代码段扩展Snippet Designer is a Visual Studio plug in which allows you to create and search for snippets inside the IDE
Snippet Designer is a Visual Studio plug in which allows you to create and search for snippets insid ...
- 应用alter index ××× monitoring usage;语句监控索引使用与否
随着时间的累积,在没有很好的规划的情况下,数据库中也许会存在大量长期不被使用的索引,如果快速的定位这些索引以便清理便摆在案头.我们可以使用"alter index ××× monitorin ...
随机推荐
- docker基础---数据卷volumes
1.数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 卷会一直存在 ...
- git branch 分支
几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副 ...
- PHP如何处理emoji表情存入utf8的数据库
一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一下就没了,整个字段变成了空字符串.这是怎么回事呢? 原来是因为Mysql的utf8字符集是3字节的,而em ...
- vue-router路由模式
什么是单页应用? 单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web ...
- Python @property 详解
本文讲解了 Python 的 property 特性,即一种符合 Python 哲学地设置 getter 和 setter 的方式. Python 有一个概念叫做 property,它能让你在 Pyt ...
- Redis 缓存失效和回收机制
本文及后续文章,Redis版本均是v3.2.8 一.内存回收策略 maxmemory配置用于配置Redis存储数据时指定限制的内存大小.我们可以通过redis.conf配置或者使用CONFIG SET ...
- Spark实战
实战 数据导入Hive中全量: 拉链增量:用户.商品表数据量大时用 拉链表动作表 增量城市信息 全量 需求一: 获取点击.下单和支付数量排名前 的品类 ①使用累加器: click_category_i ...
- bs4解析库
beautifulsoup4 bs4解析库是灵活又方便的网页解析库,处理高效,支持多种解析器.利用它不用编写正则表达式即可方便地实现网页的提取 要解析的html标签 from bs4 import B ...
- Jmeter中主要管理器功用
不管是在使用jmeter进行性能测试还是接口自动化测试时经常用到各种管理器进行对参数的处理,但是有时候分不清几种管理器的具体用法,所以做个笔记,列一下吧(所列内容基于版本为3.2) 主要内容包含以下: ...
- SpringCloud使用Prometheus监控(基于Eureka)
本文介绍SpringCloud使用Prometheus,基于Eureka服务发现. 1.Prometheus介绍 在之前写过两篇有关Prometheus使用的文章,如下: <SpringBoot ...