插件化

apkplug主题皮肤切换之通用主题-04

南笙酒味 提交于 2019-12-03 05:16:41
该文章基于V1.6.9版本 apkplug主题切换有两个层次的切换,这篇文章只讲解通用主题切换层次 一 何为通用主题切换 apkplug通用主题切换可以简单的理解为一套可动态替换的系统主题(由主题包提供)。它是apkplug在系统主题与应用activity主题之间新增的一层主题样式。它们之间有叠加关系 注:系统主题只支持对Button,ListView,Activity背景等已定义的系统控件样式进行切换,普通应用可通过(Activity.setTheme())设置系统或自定义主题。 二 apkplug通用主题的作用 由以上图示,我们可通过一些设置实现动态替换一些系统控件的样式,Button,背景图片,字体,颜色,大小等。 三 apkplug通用主题方案设置流程 1.主题包按照安卓主题设计流程设计一套主题样式如: <style name="AppTheme_Default" parent="@android:style/Theme.Light"> <!--Button样式 --> <item name="android:buttonStyle">@style/ButtonStyle</item> <!--activity 背景 --> <item name="android:windowBackground">@drawable/rootblock_default_bg</item>

apklug插件托管服务开发教程之按条件查询云端插件-01

此生再无相见时 提交于 2019-12-03 03:40:36
注:本文是基于托管服务TuoCloudService1.0.0讲解的 项目地址为 http://git.oschina.net/plug/ApkplugCloudServiceDemo 一,插件托管服务支持的功能 v1.0.0支持的功能如下: 注:它们都是以OSGI服务对外提供服务的,关于OSGI可百度查询,但同时我们提供模板代码,我们希望大家可以利用模板代码渐进式的学习 < apkplug中OSGI服务基本原理 > 1.插件托管: 开发者可将宿主应用与插件上传到服务器上,并随意绑定宿主与插件的对应关系。 2.客户端多条件查询: OSGI服务名:" com.apkplug.service.SearchApp. appSearch " 目前支持的插件查询条件有 插件名(appname) 设置的关键词(b_keywords) 可按插件添加日期排序 注:插件必须与宿 主绑定才可被查询到 3.插件版本状态查询: OSGI服务名: com.apkplug.service.update. checkupdate 可批量查询该宿主对应的插件版本状态 4.插件文件下载: OSGI服务名:"com.apkplug.service.download. AppDownload " 通过查询(2)或插件版本更新功能(3)可获取appBean,通过它可下载插件文件。 二,宿主应用集成插件托管服务 1

android插件化-apkplug框架基本结构-01

僤鯓⒐⒋嵵緔 提交于 2019-12-03 03:40:26
由于框架开发更新频繁的原因一直都没有时间写出框架的基本架构让大家云里雾里的,现在框架已基本稳定和完善,我就抽出时间写写关于apkplug框架的基本架构和原理,同时也跟大家一起研究利用apkplug框架玩出更新的功能。 一 apkplug的基本架构 apkplug简单的说是一个容器它将apk文件解析并映射成Bundle ,下文我们简称Bundle为插件。如下图 每一个apk插件被映射到apkplug框架中就是一个Bundle对象,完整路径为 org.osgi.framework.Bundle 。通过这个Bundle我们能获取到插件的基本信息(本身静态属性)。 二 插件的基本结构 apkplug中的插件与OSGI标准靠齐,所以你也可以参考OSGI标准里面对Bundle的描述。不过apkplug框架还添加了一些特殊的属性(面向android) 1.插件状态: 插件状态可以通过Bundle.getState()获取 1.Bundle.UNINSTALLED 插件还未被安装(可能已卸载还为清理) 2.Bundle.INSTALLED 插件已经安装(未启动) 3.Bundle.RESOLVED 插件已经被框架正确解析(未启动) 4.Bundle.STARTING 插件正在启动(调用BundleActivator.start(BundleContext context)) 5.Bundle

android插件化-安装apkplug插件-04

这一生的挚爱 提交于 2019-12-03 03:40:17
本节我们将练习怎样安装(更新)一个插件。本文章基于v1.6.7版本进行说明,最新的方式以官网为准 可下载最新的apkplugdemo源码 http://git.oschina.net/plug/apkplugDemos 一 apkplug插件 apkplug插件是一个apk文件,它与普通的android APP基本相同(开发方式),本节只讲插件安装接口而插件开发将在后面的章节详细讲解 二 apkplug 插件安装服务 apkplug内嵌一个OSGI服务,所以框架大部分接口都是通过OSGI服务发布的,在这里你可以不用详细了解OSGI服务的原理,一下我们将给出调用插件安装服务的模板代码。你在开发时可以直接套用。 三 BundleControl接口 插件安装服务接口为 org.apkplug.Bundle.BundleControl // startlevel =2 isCheckVersion=true Bundle install(BundleContext context,String loaclFilePath,installCallback callback) // v1.6.7 新增接口 建议使用最新的这个调用接口 Bundle install(BundleContext context,String loaclFilePath,installCallback

android插件化-apkplug中以监听方式获取OSGI服务-09

杀马特。学长 韩版系。学妹 提交于 2019-12-03 03:40:02
我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService 一 需求 通过 << apkplug中OSGI服务基本原理-08 >>我们知道怎样注册于查询OSGI Service。但查询方式必须在Service启动以后才能使用,而有时我们并不知道Service何时启动,而只需要在Service启动以后能立即获取到并使用。OSGI提供监听器的形式动态监听指定Service的注册于注销过程。 二 OSGI Service 监听代码 private ServiceReference ref=null; private printLog service=null; context.addServiceListener( new ServiceListener(){ @Override public void serviceChanged(ServiceEvent event) { switch (event.getType()) { case ServiceEvent.REGISTERED: //服务注册 if (ref == null ) { ref = event.getServiceReference(); service = (printLog) context.getService(ref);/

apkplug主题皮肤切换之自定义样式-05

强颜欢笑 提交于 2019-12-03 03:39:13
本文基于apkplug V1.6.9讲解 一 何为apkplug自定义样式切换 apkplug主题切换包含两个层次 1.通用主题,与系统主题相似 2.自定义控件样式切换 根据上一篇文章讲解我们可以判定通用主题有其局限性,在很多情况下我们需要替换的是与我们应用本事相结合的自定义控件样式。如QQ聊天挂件 QQ皮肤,QQ聊天泡泡等。针对这种情况我们为apkplug新设计了一套接口,以满足开发者这方面的需求。 二 自定义控件样式切换 自定义控件样式,顾名思义是我们开发者要求的自定义,因为它与开发的应用本身有关,不同的应用有不同的设计要求和格式。所以不是可提前统一定义的。 三 定义自定义控件样式替换接口 根据apkplug的要求,开发者要替换某些自定义控件的样式就应该提前定义一套替换接口(模板),主题包可以根据该模板填充相应的样式ID传递给主应用。不过apkplug并没有要求模板的定义格式唯一规定的是该模板必须是一个java interface 如下: public interface chatstyles { //我们协定如果 返回值小于0为未设置状态 //主题样式版本,如果主题样式接口有所改变就利用这来判断 public int Version(); //聊天界面右侧Item 背景样式 public int chat_right_msg_background(); /

android下apkplug通用主题(皮肤)切换解决方案之主应用-01

醉酒当歌 提交于 2019-12-03 03:38:59
该文章是基于apkplug V1.6.8 进行说明的 我们提供了一个demo做为参考,项目下载地址为: http://git.oschina.net/plug/IMThemeDemo 该 IMThemeDemo 实现了简单的聊天泡泡切换功能,同时主题包(插件)是托管在apkplug的云服务器上的。所以要阅读项目的完整代码可以先看插件托管服务开发系列文章 < 插件托管服务开发指南 > demo运行效果图: 一,apkplug的主题说明 apkplug主题解决方案摒弃了以往以图片替换的形式切换效果的方式,转而使用android原生资源和素材来切换UI样式和效果。所以从体验效果上是一次极大的提升。 二,apkplug主题(皮肤)切换适用范围 apkplug主题解决方案适用安卓界面的整个层次。其包括通用主题样式,和自定义控件样式切换两个层面 1.通用主题样式 与系统主题相似(Activity.setTheme()) 我们在系统与app(插件)之间可新增一层主题,三层主题已叠加的形式形成最终结果 2.自定义控件样式 大部分情况下我们的app都会自己设计主题,或者针对某写控件设计自己的样式,在这种模式下以上的通用主题便缺少 其存在的意义了。因此apkplug也提供一种简单有效的方案,允许开发者根据自己的需求定义自定义UI控件样式的替换规则 在不失通用性兼容性简洁性的情况下达到最好的体验。 三