apkplug

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控件样式的替换规则 在不失通用性兼容性简洁性的情况下达到最好的体验。 三

android插件化-apkplug中OSGI服务基本原理-08

拈花ヽ惹草 提交于 2019-12-01 19:13:31
我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService 一 OSGI与android Service 异同点 OSGI服务与android Service概念差不多也是Service ,Client 关系。 android Service接口 --service.AIDL OSGI接口 --java interface 所以android 进程间通信Service只能传递序列化过的数据 而OSGI服务可以传递任何java对象。 二 OSGI与android Service注册/查询方式对比 1.服务注册 android Service Intent intent=new Intent(Context,Service.class); Context.startService(intent); OSGI Service BundleContext context; //插件上下文 ServiceRegistration m_reg = context.registerService( sayHelloImp.class.getName(),//服务名称 一般为接口类名 my, //服务具体实现类 null); 2.服务查询 android Service Intent intent=new

android利用apkplug框架实现主应用与插件通讯(传递任意对象)实现UI替换

谁说胖子不能爱 提交于 2019-12-01 19:13:18
时光匆匆,乍一看已半年过去了,经过这半年的埋头苦干今天终于有满血复活了。 利用apkplug框架实现动态替换宿主Activity中的UI元素,以达到不用更新应用就可以更换UI样式的目的。 先看效果图: 首先理解OSGI服务的基本概念,如下图 1.首先定义一个java接口(interface)用于规范宿主与插件之间的通讯协议 interface com.apkplug.osgi.service.showView void showView(Bundle bundle,View v,int index) ; //添加View void removeView(Bundle bundle,View v); //删除View 2.决定osgi服务提供者和使用者 ,这里我们定义是 宿主应用为"OSGI 服务提供者" ,插件为"OSGI 服务使用者"。 注:OSGI服务提供者 注册服务 OSGI服务使用者 查询服务 3.宿主应用实现showView接口,相应类为 com.apkplug.osgi.serviceImp.showViewImp 具体代码如下: public class showViewImp implements showView{ private LinearLayout layout =null; /** * @param root 插件 View保存UI容器 */