需求来源:
在一个移动广告平台中,需要在广告平台运行期间接入app广告主;广告主要求app的推广效果的流程为,广告平台中发现有用户下载app时候,广告平台需要将此下载数据上报给广告主服务器;app安装激活时广告服务器会将此安装数据和下载数据对比,如果广告平台有上报此app的下载的话则视为此app的激活时广告平台的推广效果
但是问题在于一个广告平台需要对接多个广告主,而每个广告主对上报的接口定义都不相同,所以广告平台无法对上报下载数据这个过程做统一处理,只能为每个广告主写一个上报模块,但是这个模块如何接入正在运行的项目呢?这里我期望能有一个支持热插拔的模块实现在不停机的情况下增加不同的上报模块(增加广告主的接入代码)。
解决思路:
1.编写一个类加载器以及一个上报接口
2.依据一个参数值让类加载器去加载指定文件位置的上报接口的实现类,并实例化为上报对象(可加优化,如将此对象缓存,避免创建重复对象)
3.上报对象执行上报方法
具体实现(demo见附件):
1.在项目1中实现思路中的1,接口以及类加载器
2.运行1(DynamicClassLoader中的main)
3.将项目1中的接口拷贝至项目2中,并实现接口,并编译得到class文件
4.将此class文件拷贝到正在运行的项目1的运行目录(按照项目路径完整的放置)中
5.项目1类加载器传入类的文件路径以及class名称
6.类加载器实例化新加入的类,并强制类型转换为接口对应的对象
7.对象执行接口中定义的方法
分享到:
相关推荐
实现android usb光驱 光盘支持 光驱热插拔 光盘热插拔 1.增加vold对Iso9660光盘自动挂载的支持,基于RK3188_RK3066_R-BOX_ANDROID4.4.2-SDK_V1.0.0_140318,也可用于mid 2.实现Iso9660.cpp为vold实现的domount接口 3...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目...基于Qt实现的系统中设备管理功能源码+项目说明(热插拔监测).zip
Linux 2.6.10内核下PCI Express Native热插拔框架的实现机制 Linux 2.6.10内核下PCI Express Native热插拔框架的实现机制
使用AppDomain实现不重启进程的dll的重复加载
关于嵌入式Qt开发中不支持热插拔鼠标的解决方案,需更改Qt源码重新编译
linux下netlink机制实现usb热插拔事件并获取诸如厂商编号、协议号等获取相关信息,在不采用udev机制的情况下,可以参考的一种实现方式
热插拔保护电路设计及实例。
热插拔; cpci ;接口设计;PCI接口设计
本文分析了CPCI热插拔的原理及实现方法,重点介绍了热插拔系统的状态转移过程、硬件结构及设计思路,最后给出通过专用的热插拔控制器LT1643及桥芯片PLX9656实现热插拔的详细设计方法,对于有意开发热插拔板卡的设计...
带freertos操作系统的lwip移植模板,实现网线的热插拔,芯片为STM32F746,其中还包含自己的学习总结,移植改进和野火的官方教程。
思科交换机热插拔手册:描述了思科交换机(高端)在热插拔时注意的事项,及问题CASE的解决。 全中文说明。通俗易懂。
QT5.9.8鼠标键盘热插拔默认情况是使用udev进行热插拔的,但很多情况下嵌入式系统udev配置不完整, 可能需要systemd里面的udev组件才能正常工作 鉴于此,参考网上的朋友的修改例子,不使用udev也能正常检测键鼠热插...
通过注册表实现串口热插拔,方法简单,嘿嘿,利用VS2005编译通过
西门子PLC热插拔功能实现及注意事项、组态及配置。
Comacy热插拔代码实现,提供函数、库文件和例程
本文介绍的是linux下处理usb热插拔的方法
hotplug 热插拔 测试程序,程序源码,运行程序,插入和拔出U盘,程序会捕获热插拔信息。
带热插拔的CompactPCI的单板接口硬件设计技术,杨霖,黄建国,介绍虚拟仪器CPCI总线中热插拔接口电路的硬件设计技术。介绍了PCI9030与LTC1644芯片的特性,及两者配合设计硬件接口电路的方法,介绍了