AppCan 移动应用引擎开源说明 + 下载地址

亲爱的广大开发者:

AppCan于12月23日下午15点,全面开源服务平台应用引擎

 

AppCan 源码托管地址: https://github.com/AppCanOpenSource

iOS引擎 https://github.com/AppCanOpenSource/appcan-ios

Android引擎 https://github.com/AppCanOpenSource/appcan-android

关于AppCan引擎开源协议
AppCan引擎开源遵循LGPL宽通用公共许 可 证协议第三版:英文版

 

【应用引擎的技术原理】

通过对各大手机操作系统(如iOS、Android)和系统中浏览器引擎底层Webview及其API的封装和扩展,将HTML标准中不提供支持的本地功能(比如摄 像头,短信,电话等)以Javascript API接口的形式开放给HTML页面调用,同时提供一套完整的Callback机制,实现HTML页面直接与操作系统底层的交互通信,Javascript脚本语言直接与操作系统C/C++/JAVA/Object-C等原生语言之间通信,实现系统与HTML页面的无缝融合;通过在UI层次上实现一套模拟系统级别的应用(Widget)及应用管理机制、窗口(Window)及多窗口管理机制,达到基于HTML5开发移动应用的目的,实现核心引擎的跨平台能力。

【应用引擎的总体架构】

应用引擎是一个支持HTML5应用运行的支撑平台,通过引擎在各平台上的适配来达到HTML5应用的跨平台执行。核心引擎主要由WidgetOne应用管理器、Widget 插件扩展机制,以及Native插件扩展机制三大部分组成。

<ignore_js_op>

一、WidgetOne应用管理器

WidgetOne应用管理器是整个Widget的运行环境,功能主要包括Widget管理、Widget内部窗口管理、Widget的生命周期管理、消息事件管理、Widget间通信机制和Widget的运行沙箱管理等。

所有的运行的Widget都有一个公共的父窗口WidgetContainer,Widget通过Widget的包名来标识,Widget之间可以相互调用,支持Widget间窗口切换和窗口动画,一个复杂的HTML5 应用可以由多个Widget来组成。而每个Widget有多个窗口组成,窗口通过ID/NAME来标识,每个Widget内部的窗口系统都相互独立,窗口之间支持相互调用,参数传递,窗口动画,窗口预加载机制,浮动窗口机制等

因此,多窗口机制在开发过程中很重要,根据不同的name来分辨不同的window(每一个应用中,有且只有一个name为‘root‘的窗口,一般把应用加载的第一个窗口默认的命名为‘root‘)。在不关闭窗口的情况下,它们之间可以通过uexWindow.open实现切换,而不用重新加载html页面。为了实现一些更好的用户体验,扩展了原生UI效果,比如ActionSheet,弹动效果等。它主要引进了主窗口和浮动窗口,这样多的目的就是固定top和bottom部分,避免这两部分随着滚动条滚动。

窗口的实现原理:

(1)将设备屏幕可操作区域转换为Window的概念,通过拆分,将设备屏幕(Window)分成了Top,Bottom,Main,PopOver(浮动窗口)区域,每个区域由独立的WebView组成,相互独立,又相互通融,实现Window内的UI元素自由定义。

(2)通过模拟系统UI元素压栈的方式(如Android平台的Activity栈),将创建的Window压入栈堆,通过对Window的命名,位置,大小,透明度,显隐等属性的控制,实现一套应用内支持创建多个Window,并对每个Window生命周期进行单独管理的机制,灵活管理Window的创建,显示,隐藏,复用,销毁,内存回收等。

(3)实现一套浮动窗口机制。即,同一个Window中理论上可以创建足够多个数的浮动窗口,并且根据创建的先后顺序,覆盖到当前Window中来,形成一块独立的区域,解决了手机上不支持局部div滚动,不支持IFrame高度定义等的硬伤,以及配套的上下拉刷新效果,OAuth验证机制等功能的加入,增强了用户体验和为开发者降低了开发难度。

(4)实现一套窗口间和窗口内浮动窗口间的交互机制。通过扩展的Javascript对象uexWindow对象下的诸多API,实现窗口间的交互。如uexWindow.evaluateScript(String inWindowName, String inType, StringinScript),可在任何一个Window中指定要在一个名为inWindowName的Window中执行Javascript函数;而uexWindow.evaluatePopoverScript(String inWndName, String inPopName,String inScript)则可在任何一个Window中指定要在一个名为inWndName的窗口下的名为inPopName的浮动窗口中执行Javascript函数。

(5)实现窗口生命周期内的过度动画效果。如窗口创建并被添加到屏幕上时,指定一个从左到右的切入效果,窗口被关闭销毁时,指定一个从右到左的切出效果等等。基本达到了与系统级别UI界面切换效果的一致。

二、Widget 插件扩展机制

通过AppCan平台生成的应用,可以理解为一个Widget包(即在IDE创建项目是看到的‘phone‘文件夹),和一个 AppCan平台中间件组成的。通常的情况下,一个应用是由一个Widget+AppCan构成,那么,有没有可能说‘n个Widget+AppCan‘ 的机制呢,答应是肯定的,这就是Widget 插件机制,是针对主widget以及普通widget 的一种增强性的扩展机制,可以将具有特定功能的widget封装成一个单独的widget包存放到plugin 下,然后通过js扩展接口调用,以达到功能扩展的目的。我们把‘1个Widget+AppCan‘中的那一个Widget叫做‘主Widget‘,而另外 的‘n-1‘个Widget存在于主Widget的‘plugin‘目录下。

由于这部分资料在官网文档均有详细介绍,在此不作赘述

三、Native插件扩展机制

有了Native插件的配合使用,开发者只要写最简单的HTML,CSS和JS,就可以开发出一个体验效果和原生无差别的应用。

首先,AppCan开放了原生插件扩展机制,灵活的自定义插件扩展架构,方便开发者快速集成自定义功能到应用开发中。开发者将自定义原生插件进行开发和上传,即可在开发中直接调用。

其次,对目前平台提供的数十种应用插件进行开源,开发者可以根据自身业务需求来对开源插件进行扩展,或自行开发。

源码在官网插件库均可下载,分为终端设备系统调用API、界面API、网络API、多媒体API、第三方API等几个类别,足够覆盖移动应用开发中的大部分常用场景。其中包含新的支付宝插件和新百度地图SDK 封装的百度地图插件,备受关注的 QQ 登录功能插件、微信分享(支付)插件,以及推送、摄 像头、传感器、LBS、二维码、文件读写、网络连接、上传下载、短信、彩信、电话、邮件、图片、第三方支付、音频、视频、压缩、原生控件元素等核心功能。

自定义插件扩展详细资料可查看:http://newdocx.appcan.cn/index.html?templateId=257

iOS Native插件扩展机制请了解:http://newdocx.appcan.cn/index.html?templateId=261

Android Native插件扩展机制请了解:http://newdocx.appcan.cn/index.html?templateId=247

文档已经发布,可在文档中心查看,附上链接地址:http://newdocx.appcan.cn/index.html?templateId=410

AppCan全体运营团队

2014年12月23日

时间: 2024-10-17 02:10:08

AppCan 移动应用引擎开源说明 + 下载地址的相关文章

AppCan 移动应用引擎开源说明和下载地址

AppCan 源码托管地址: https://github.com/AppCanOpenSource iOS引擎: https://github.com/AppCanOpenSource/appcan-ios Android引擎: https://github.com/AppCanOpenSource/appcan-android 关于AppCan引擎开源协议AppCan引擎开源遵循LGPL宽通用公共许 可 证协议第三版:英文版 [应用引擎的技术原理] 通过对各大手机操作系统(如iOS.Andr

各个开源框架下载地址

前一段时间看了<Spring技术内幕>这个书,感觉阅读起来比较费劲,大家可以直接下载源码进行阅读,更重要的可以自己写一些小demo,方便自己理解和学习,下面我找了一些主流框架的源码下载地址有需要的朋友可以自行下载,以后发现更多的地址会后续补全 Spring源码地址: https://github.com/SpringSource/spring-framework Spring JPA源码地址: https://github.com/spring-projects/spring-data-jpa

AppCan获得B轮1亿元融资并宣布移动引擎开源

日前,国内Hybrid混合应用开发的倡导者和领导者AppCan放出两大重磅消息:获得由联创永沂和盘古创富为主的B轮1亿元人民币融资并正式宣布AppCan移动应用引擎开源.据了解,本次开源将全部开放基础引擎.底层框架,加上11月的插件开源,AppCan.cn是迄今为止国内首个彻底开源的移动应用开发平台.AppCan创始人正益无线王国春介绍,“通过移动引擎的开源运作,可以进一步扩大AppCan的影响力和生态圈,既向移动开发者社区贡献力量,也从社区中吸引能量,能够更好的改进商业版本,更高质量的服务大型

JEECG 社区开源项目下载(总览)

资源1: JEECG 微云快速开发平台( JEECG 3.6 自定义表单版本) 最新版本:发布时间 (2015-12-04)授权方式:开源免费源码下载(Maven):http://git.oschina.net/jeecg/jeecg源码下载(非Maven):http://git.oschina.net/jeecg/jeecg-no_maven快速入门:新手视频     入门必读历史版本列表:(提示:JEECG从3.4版本开始,代码迁移至Oschina-git平台) JEECG 3.5.2 AC

开源完整版:《开源框架实战宝典电子书V1.0.0》内测版下载地址!

经过一个多月的整理,<J2EE开源框架实战宝典>--Tiny文档PDF电子书开始发放,共有将近600页,为喜爱Tiny.热爱Java开源框架的朋友提供更加体贴的文档服务! 下载地址:http://bbs.tinygroup.org/group-112-1.html(加入查看下载地址) 下面是部分目录的截图. 1.jpg (62.15 KB, 下载次数: 0) 下载附件 6 天前 上传 2.jpg (497.41 KB, 下载次数: 0) 下载附件 6 天前 上传 3.jpg (510.13 K

完整版:《开源框架实战宝典电子书V1.0.0》内测版下载地址!

经过一个多月的整理,<J2EE开源框架实战宝典>——Tiny文档PDF电子书开始发放,共有将近600页,为喜爱Tiny.热爱Java开源框架的朋友提供更加体贴的文档服务! 下载地址:http://bbs.tinygroup.org/group-112-1.html(加入查看下载地址) 下面是部分目录的截图. 1.jpg (62.15 KB, 下载次数: 0) 下载附件 6 天前 上传 <ignore_js_op> 2.jpg (497.41 KB, 下载次数: 0) 下载附件 6

Android之开源控件ViewFLow学习笔记【含下载地址】--(原创-20150407)

Android开源控件ViewFlow学习 这里简单介绍一点:抛出IllegalStateException: "ViewFlow can only be used in EXACTLY mode." 首先要明确ViewFlow的好处所在:(1).ViewFlow比较适合动态大小,如图片的个数由后台决定,发多少就显示多少,这是用ViewPager就不是很合适. ( 2) ViewFlow的轮播滚动效果非常平滑,过渡非常友好,而且支持循环. 使用ViewFlow的时候,注意只能用在大小确

Android常用酷炫控件(开源项目)github地址汇总

转载一个很牛逼的控件收集贴... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style 等等. 一.ListView android-pulltorefresh一个强大的拉动

所有软件下载地址

目录 网络: 远程连接 网络工具 抓包软件 系统: 系统工具 Linux工具 虚拟化软件 远程连接:------------------------------------------------------ Remote Desktop Manager远程桌面管理工具 官网:http://remotedesktopmanager.com/ 下载地址:http://remotedesktopmanager.com/Home/Download 请点击一下:返回目录 灰鸽子远程控制软件 百度云下载地