模块化

apklug插件托管服务开发教程之查询已安装插件版本状态-03

為{幸葍}努か 提交于 2019-12-04 06:22:07
实现项目demo http://git.oschina.net/plug/ApkplugCloudServiceDemo 实现代码 :com.apkplugdemo.adapter.UpdataActivity 一,插件版本状态查询服务 OSGI服务接口为:com.apkplug.service.update.checkupdate OSGI服务查询模板代码如下 /** * 插件版本更新OSGI服务 一次只允许最大查询20给插件的版本信息 * @param context * @param updateAppBean bean 需要查询版本的插件填充bean * @param callback 查询回调函数 */ public void checkupdate(BundleContext context,updateAppBean bean,updateCallBack callback){ ServiceReference reference=context.getServiceReference(checkupdate.class.getName()); if(null!=reference){ checkupdate service=(checkupdate) context.getService(reference); if(service!=null){ service

apkplug插件托管服务简化与简介-05

天大地大妈咪最大 提交于 2019-12-04 06:21:57
本文基于TuoClondService1.1.0讲解 apkplug插件托管服务是提供给开发者一个远程发布插件的管理平台,但v1.0.0版本接口调用有些复杂我们在v1.1.0版本中着重对其进行了简化 与封装,使开发者能更简单明了的使用这项服务。 apkplug插件托管分为两部分 云服务托管:开发者须将主应用与插件apk包上传托管服务器 查询api接口:开发者可根据该接口通过简单的调用实现插件的 查询,下载安装,更新等功能 一下着重讲解查询api接口的调用方式,关于插件上传与管理平台操作请这篇文章< 插件云端上传与管理 > 一 接口简介 1.api接口提供一个单例类ApkplugCloudAgent,开发者可通过该类完成所有功能 2. 插件托管服务接口都是以填充查询bean以及回调callback接口的形式完成的 开发者需要做的工作有 填充查询条件bean 编写查询回调接口 callback 二 导入插件托管服务jar包 三 初始化启用托管服务接口 //BundleContext context =frame.getSystemBundleContext(); //启动云服务包括插件搜索 下载 更新功能 ApkplugCloudAgent.init(context); 四 查询接口调用示例 appSearchBean bean=new appSearchBean(); /

apklug插件托管服务开发教程之上传应用到云端-04

限于喜欢 提交于 2019-12-04 06:21:48
只有上传到apkplug云端的应用才能真正使用插件托管功能 一,注册账号 开发者点击 apkplug官网 右上角的注册按钮注册开发帐号。注册完成以后可以登录进入后台插件管理平台 二,上传应用 开发者上传应用后系统会自动解析apk包并区分主应用和插件。 存在assets/plugin.xml的是插件,否为主应用 三,为应用添加(绑定)插件 四,修改插件关键词(keywords) 来源: oschina 链接: https://my.oschina.net/u/138488/blog/267567

apklug插件托管服务开发教程之下载插件-02

心已入冬 提交于 2019-12-04 06:21:38
结合上节 < 按条件查询宿主中的插件 >,本节下载并按照云端的插件。 实现项目demo http://git.oschina.net/plug/ApkplugCloudServiceDemo 实现代码 :com.apkplugdemo.adapter.SearchBundleAdapter 一,插件下载安装服务 插件下载安装服务也是以OSGI服务形式提供的,获取服务的模板代码为: //查询插件下载服务 因为该服务在框架启动时启动,所以肯定存在 ServiceReference reference=context.getServiceReference(AppDownload.class.getName()); if(null!=reference){ service=(AppDownload) context.getService(reference); } context.ungetService(reference); 二,AppDownload服务接口说明 public interface AppDownload { /** * 插件托管服务接口 * @param appBean ab 包含插件基本信息 * @param mContext android上下文 * @param callback 服务回调接口 * @throws IOException */ public

android插件化-apkplug框架启动-02

左心房为你撑大大i 提交于 2019-12-04 06:21:24
本文章基于apkplug v1.6.7 版本编写,最新方式以官网最新消息为准 一 apkplug框架所需要的库文件(宿主) 可从 http://git.oschina.net/plug/apkplugSDK 获取最新库文件 同时可下载最新的apkplugdemo源码 http://git.oschina.net/plug/apkplugDemos libs-- --libndkfoo.so armeabi armeabi-v7a mips x86 --Bundle(版本号).jar 将以上的文件加入宿主应用的libs目录下 二 AndroidManifest.xml 权限配置 插件平台需要几个基础的权限配置,请将以下的几个权限加入到工程的AndroidManifest.xml中 <!-- 插件平台需要的权限! --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.INTERNET"/>

android插件化-获取apkplug框架已安装插件-03

我们两清 提交于 2019-12-04 06:21:15
上一篇文章成功的将apkplug框架嵌入了应用中并且启动 链接 http://www.apkplug.com/blog/?post=10 这一篇文章实现如何获取所有已安装插件 一 获取框架的SystemBundle的上下文BundleContext apkplug框架启动会自动创建一个SystemBundle, 它是框架的第一个插件不可停止和卸载,通过它我们可以与apkplug和其他插件通信 FrameworkInstance.getSystemBundle() 便可以获取到SystemBundle但它没有太大意义,我们需要获取它的运行上下文BundleContext BundleContext context =frame.getSystemBundleContext(); 二 通过BundleContext获取已安装插件 for(int i=0;i<context.getBundles().length;i++) { //获取已安装插件 //打印插件信息 StringBuffer sb=new StringBuffer(); sb.append("\n插件名称:"+b.getName()); sb.append("\n插件应用名称:"+b.getSymbolicName()); sb.append("\n插件版本:"+b.getVersion()); sb.append("

android插件化-apkplugdemo源码阅读指南-10

£可爱£侵袭症+ 提交于 2019-12-04 06:20:47
阅读本节内容前可先了解 apkplug基础教程 本教程是基于apkplug V1.6.8 版本编写 最新开发方式以官网为准 可下载最新的apkplugdemo源码 http://git.oschina.net/plug/apkplugDemos apkplugdemo演示图 一 apkplugdemo工程源码结构 src |-com.apkplugdemo.adapter --插件列表Adapter |-com.apkplugdemo.adapter.base --adapter 基类 |-com.apkplugdemo.FileUtil --文件操作类 |-com.apkplugdemo.FileUtil.filter --文件类型过滤类 |-com.apkplugdemo.util --项目通用工具类 |-com.apkplugdemo.util.Observer --java观察者设计模式类 |-com.apkplugdemo.util.preferencesFactory --preferences操作类 |-com.example.apkplugdemo --项目application 和activity类 |-huahua.viewpager --与com.example.apkplugdemo功能相同 只是提供fragment方式展示 二 阅读方式

apkplug主题切换功能简介-03

大憨熊 提交于 2019-12-04 06:19:59
apkplug主题切换是一项简单且强大的功能,它为应用实现个性化提供了可能。但由于该功能是一项创新的以前所未有的方式实现,以至于大部分 开发者无此概念,以下我们将对apkplug的主题功能基本结构和功能进行简单的说明。 注:本文是基于v1.6.9版本进行说明的,该版本在多处对开发流程进行了简化,其中就包括主题切换功能模块。 一 主题功能的层次 目前apkplug主题切换有两个层次的样式替换,它们分别是 通用主题样式 自定义控件样式 二 主题包 apkplug主题包是一个简单的apkplug插件,它包含了apk文件的所有属性和样式,而我们主题包也是以R.stlye.id的形式提供切换素材给主应用的 因此在主题开发的时候我们完全可以遵循安卓原生应用主题样式的开发形式。 三 主题包与普通插件有和不同 主题包与普通插件开发没有任何不同,只是主题包需要上传云端编译成apk文件而在本地编译的apk文件只能作为普通插件使用。 四 相关资料链接 apkplug通用主题切换详解 apkplug自定义控件样式切换详解 来源: oschina 链接: https://my.oschina.net/u/138488/blog/269236

Yii2 Day 4: 模块化开发

自古美人都是妖i 提交于 2019-12-04 05:30:42
困境 做了几年Windows环境下程序开发(大概200多个模块,几百万行代码),转做PHP Web开发后,发现模块级别的代码重用实在是不如意啊,重用基本上都是代码复制粘贴级别的,耦合度都太高,不利于代码打包和重复发布。比如文件上传,包含了前端页面部分的展现代码和服务端处理上传文件的代码,需要处理如下几个问题: input控件的名称,因为服务端需要这个来获取$_FILES中的信息 文件如果是图像,需要判断是否是真正的图像,是否进行缩放处理,加水印等操作 文件存储位置 多文件上传的时候,服务端处理信息的返回,比如某一个文件出现异常 文件信息的存储,上传到服务器的文件,要在数据库中记录下吧,日期,路径,什么的,好管理。 还有更多别的细节,单从这5个问题来看,已经不可避免地涉及到前端展现和后端数据库了,因此用Yii扩展(Extension)的方式,无法满足实际的要求(有不同意见的同学可以留言讨论)。因此需要更加完备的载体去实现这些功能,自然考虑用模块的形式去实现。具体方法如下: 可行方案 建立一个attach模块,用以处理所有的业务 前端展现,用widget包装,放在attach模块内部,建一个widgets目录 处理上传文件,用action实现 对图像的处理,可能会用到第三方类库,在attach模块里,建一个vendor目录,存放第三方类库 数据库表初始化代码

IDEA模块化集成SSM

馋奶兔 提交于 2019-12-03 22:20:22
模块化的分层 一级每层需要使用的包 在父文件需要引入的包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.jiedada</groupId> <artifactId>crm_parent</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <modules> <module>basic_util</module> <module>crm_common</module> <module>basic_core</module> <module>crm_mapper</module> <module>crm_service</module> <module>crm_web<