原文:p=191">http://chentoo.com/?p=191 一.前言 一样的开篇问题,为什么要研究这个?iOS为什么要插件化?为什么要借助其它语言比方html5 js甚至脚本lua等来实现原本OC/Swift应该实现的东西? 原因能够归结为两点: 1. iOS平台 appstore 审核速度不可控,而非常多活动页面须要频繁更新,假设每次更新都走appstore审核流程,那活动也就不要做了. 2. 可多平台复用代码,节省开发成本. 比方同一个活动的页面,用html5+js完毕,就…
                                            Live555研究之中的一个 源代码编译 Live555 是一个为流媒体提供解决方式的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP.RTSP.SIP等的支持.Live555实现了对多种音视频编码格式的音视频数据的流化.接收和处理等支持,包含MPEG.H.263+.DV.JPEG视频和多种音频编码.同一时候因为良好的设计.Live555很easy扩展对其它格式的支持. 眼下,Live5…
最近在研究Android应用的插件化开发,看了好几个相关的开源项目.插件化都是在解决以下几个问题: 如何把插件apk中的代码和资源加载到当前虚拟机. 如何把插件apk中的四大组件注册到进程中. 如何防止插件apk中的资源和宿主apk中的资源引用冲突. 就这几个问题,我开始研究插件化开发实现的相关技术. 在上篇文章中我讲了如何把插件apk中的class加载到当前进程 的问题,本篇文章主要讲第一点的第二点:如何加载另一个apk中的资源到当前应用中. AssetManager介绍 当我们在组件中获取资…
应用插件化背景 目前很多应用功能越来越多,软件显得越来越臃肿.因此插件化就成了很多软件发展的必经之路,比如支付宝这种平台级别的软件: 页上密密麻麻的功能,而且还在增多,照这个趋势发展下去,软件包的大小将会不可想象.目前常用的解决方案是使用web页面,但用户体验和Native界面是没法比的. 设想,如果每一个功能点都是一个动态库,在用户想使用某个功能的时候让其从网络下载,然后手动加载动态库,实现功能的的插件化,就再也不用担心功能点的无限增多了,这该是件多么美好的事! 软件版本实时模块升级 还在忍受…
最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http://www.cnblogs.com/gengzhe/p/4370979.html 我先分析下我的系统架构:…
基于.NET MVC的高性能IOC插件化架构 最近闲下来,整理了下最近写的代码,先写写架构,后面再分享几个我自己写的插件 最近经过反复对比,IOC框架选择了Autofac,原因很简单,性能出众,这篇博文是我的各大IOC框架的性能测试:http://www.cnblogs.com/gengzhe/p/4370979.html 我先分析下我的系统架构:…
在经过上面铺垫后,我们可以尝试整体实现一下插件化了.这里我们先介绍一下最简单的实现插件化的方案. 一.最简单的插件化实现方案 最简单的插件化实现方案,对四大组件都是适用的,技术面涉及如下: 1). 合并所有插件的Dex,来解决插件的类的加载问题. 2). 预先在宿主的AndroidManifest.xml文件中声明插件的四大组件.(如果插件组件过多会很麻烦) 3). 把插件中的所有资源一次性的合并到宿主的资源中.(合并时可能会导致id冲突) 使用此组件化方案实现时,Service.Content…
一.插件化起源 插件化技术最初源于免安装运行 Apk的想法,这个免安装的 Apk 就可以理解为插件,而支持插件的 app 我们一般叫 宿主. 想必大家都知道,在 Android 系统中,应用是以 Apk 的形式存在的,应用都需要安装才能使用.但实际上 Android 系统安装应用的方式相当简单,其实就是把应用 Apk 拷贝到系统不同的目录下.然后把 so 解压出来而已. 常见的应用安装目录有: /system/app:系统应用 /system/priv-app:系统应用 /data/app:用户…
1.为什么需要插件化系统 “编程就是构建一个一个自己的小积木, 然后用自己的小积木搭建大系统”. 但是程序还是会比积木要复杂, 我们的系统必须要保证小积木能搭建出大的系统(必须能被组合),有必须能使各个积木之间的耦合降低到最小. 传统的程序结构中也是有模块的划分,但是主要有如下几个缺点: a: c++二进制兼容 b: 模块对外暴露的东西过多,使调用者要关心的东西过多 c: 封装的模块只是作为功能的实现者封装,而不是接口的提供者 d: 可替换性和可扩展性差 而插件式的系统架构就是为了解决这样的问题…
在上一篇文章中.我们通过编写EV3 Port Viewer项目实现了iOS监測EV3的实时端口数据. 程序最核心的部分就是我们的开源码库iOS_WiFi_EV3_Library. 那么,在本文中,我们将具体介绍我们这个库的编写.为了完毕这个库,本人參考了网上许多资料,主要包括EV3的源码,win版本号的代码库以及Monobrick相关以及网上的各种资料,在此就不一一列举了. 因为水平有限,本代码库还存在各种问题,望使用的读者见谅. 大家也能够在这个基础之上自己进行改造完好. 为了具体说明代码库的…