android 应用插件开发,Android应用插件式开发解决方法

Android应用插件式开发解决方法

1、现实需求描述

通常的,一个Android应用在开发到了必定阶段之后,功能模块将会愈来愈多,APK安装包也愈来愈大,用户在使用过程当中也没有办法选择性的加载本身须要的功能模块。此时可能就须要考虑如何分拆整个应用了。 android

2、解决方案提出

通常有两种方式,一种是将应用按照功能分拆成多个应用,用户须要哪一个就下载哪一个,都须要就都下载。应用之间,能够在代码层面作必定的关联,以共享部分信息。另外一种方式,相似于其余平台插件的方式,用户能够在主应用中能够选择性的下载须要的插件,不须要该功能,则不须要下载。 数据库

第一种方式,只须要开发多个应用就够了。第二种方式稍微复杂,须要作不少额外的工做。这里咱们简单讨论第二种方式的大体实现方法。 json

3、实现方法概述

有人可能会想到,是否能够像其余平台那样,下载一个相似于dll文件,或者jar包,就能自动识别而且加载该功能?惋惜的是,在Android平台上是不容许直接动态加载jar包的,做者也没有想到相似办法。因此,想实现这种功能,仍是要以独立APK的方式来加载。和第一种方式不一样的是,从设计的角度,具体的插件是没有独立运行的入口的,也不容许有桌面图标存在,必须从主应用中打开,关闭后回到主应用(插件既然是APK,它安装完怎么会没有入口?怎么会没有桌面图标?QQ的跑酷等游戏不就是插件?不是就有图标入口?)。从用户的角度看,能够在应用中加载须要的功能而且使用,也就相似于其余平台插件的方式了。 服务器

为了实现这种方式,从设计的角度,就须要考虑清楚哪些功能做为独立的插件提供给用户,这里再也不详述。下面从开发的角度说明大体须要作的工做。 框架

Ø  主应用中须要开发的框架功能: spa

识别具体的插件是否已经安装(根据插件的package名) 插件

若是已经安装要判断是否须要升级(服务器端获取最新的版本和本地的比较) 设计

下载而且安装(或者升级)插件 游戏

卸载该插件 资源

Ø  插件APK开发中须要注意的事项:

Manifest文件中不要提供启动的入口

Ø  主应用和插件之间交互的提示:

最好是使用相同的android:sharedUserId,插件能够方便的获取主应用的资源、数据库等等。

主应用能够以Intent方式启动具体的插件,同时带入Map类型参数或者json串参数,在插件APK中解析具体参数,实现业务逻辑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值