CrossApp

跨平台 APP 开发引擎
授权协议 MIT
开发语言 C/C++
所属分类 手机/移动开发、 手机开发包
软件类型 开源软件
地区 国产
投 递 者 满耀
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

CrossApp是一款完全开源、免费、跨平台的移动应用开发引擎,基于最宽松的MIT开源协议,所以开发者可以完全免费、毫无顾虑的使用CrossApp开发任何商业项目,官方会提供每天8小时的免费在线页面问答式服务,每个问题的反馈速度大概在30分钟左右,回复率90%。

CrossApp采用C++开发(即将支持js和lua编写),可直接导出ios和android原生应用,拥有高性能,多控件,开发速度快的优势。完美的集成了各种系统接口,如:推送、GPS、电话、短信、通讯录、蓝牙、拍照、摄像头等。 拥有28万开发者的“9秒社团”进行主要的开发和维护工作,同时目前还拥有20多个来自各大互联网公司的开发精英自愿组成的“9秒社团常务贡献委员会”共同对代码进行维护和更新,目前CrossApp保持着每周1~3次的快速迭代!

主要功能与特色

主要功能

1. 跨平台

CrossApp暂时主要支持目前最主流的移动平台IOS和Android,后续更新版本将完善更多平台的支持。

CrossApp的平台无关性,使得相对传统的iOS和Android原生应用开发,CrossApp更能节省开发的周期和成本,App开发完成后只需要经过较为简单的移植工作,就能轻松实 现在不同平台上应用。

2. 整合部分第三方库

最初版本的CrossApp整合一些第三方库,例如常见的数据解析库jsoncpp、tinyxml、http等,同时CrossApp也通过第三方库spidermonkey转换,使之可以直接使用js脚本编写程序。

3. 基于OpenGL ES 2.0

CrossApp的图形渲染使用的是Open GL ES 2.0,渲染效率高,可以使移动设备的GPU发挥到最佳效果。

引擎特色

1. 开源

开源是9miao.com的一贯坚持的理念,CrossApp也是开源的移动App开发引擎。由于CrossApp是基于最宽松的MIT开源协议,所以开发者可以完全免费、毫无顾虑的使用CrossApp制作任何商业项目,并且在开发过程中遇到的有关CrossApp的相关问题,9秒社团技术团队负责相关技术难题的解答并给予技术支持(官方网站CrossApp专区回复问题,回复率100%)。

CrossApp会进行持续的版本更新,后续的版本更新与维护由9秒社团常务贡献委员会(后面简称“9贡委”)与9秒社团官方共同完成,开发者可以申请加入9贡委,为CrossApp的进一步完善做出自己的贡献。提交的版本将由9秒社团官方审核,审核完成后将整合进下一版的CrossApp版本。

2. 丰富的UI控件

CrossApp的设计宗旨在于为移动应用开发者提供快速、高效的开发解决方案。在此基础上,CrossApp封装了大量的UI控件,各类控件的功能十分丰富,开发者可以直接使用这些控件进行应用的开发。这些控件基本满足应用开发需求中的大部分功能,也免去了自己封装UI控件花费的大量时间,进一步提升开发的效率、节省开发的成本。同时CrossApp也会整合部分由第三方开发者提供的优秀控件资源,更大的丰富CrossApp的UI控件。

3. 提供CrossApp配套编辑器

高效快速的开发模式少不了不同编辑器的支持,最初版本的CrossApp没有提供引擎相关编辑器,但在2014年7月份的更新中将推出编辑器,辅助开发者进行更快速便捷的移动app程序的开发。

与其他开发平台比较

下表为当前移动平台开发App所使用的主要技术比较:

通过上表分析我们可以得出:

1. Mobile Web

以HTML5和JQuery为代表的web开发技术是以纯浏览器为基础的,所以没有离线能力可言,更无法充分发挥各平台的功能和特性。

2. Hybrid App

Hybrid App即混合模式应用程序,是指介于web和native直接的app,具备一定Native原生App优秀的用户体验和Web App跨平台的优势。但由于Hybrid仍旧以前端技术为基础,无法对内存和系统资源进行有效的管理。

3. Interpreted App

以前端技术为基础,同样不能有效对内存和系统资源进行管理。

4. Native App

原生开发以IOS和Android为代表,虽然原生开发能够实现最佳的用户体验和高优化,但开发的成本较高。而且因为原生开发几乎不支持跨平台特性,相对于跨平台技术来说,带来的实际效益更低。

综上所述,还是Native App和Cross compiling的综合效率更高,开发者需要根据实际情况,考虑各方面因素来选择合适的开发解决方案。

开发模式介绍

CrossApp采用的开发模式是各平台共享一套代码,采用交叉编译的方式实现不同平台上的运行。CrossApp是基于MVC模式的,面向对象的目标就是设计出低耦合、高聚合的程序,MVC模式提供了一种很好的解决方案。这里的MVC即模型层(Model)、视图层(View)、控制层(Controller),三者各司其职,共同维持一个完整的应用程序。

在CrossApp中的Model层也就是我们各种数据原型、业务逻辑和算法,App在功能上完全依赖Model层的实现;View层顾名思义就是展现给用户的UI界面,而Controller层的职责就是把Model和View两个相互关联不大的层衔接起来,将用户的操作传递给Molel层,在控制View层表现出来。CrossApp通过CAView和丰富的UI控件来实现View层的功能,通过CAViewController及其子类来共同完成Controller层,实现Model和View之间的通信。

CrossApp demo

   

开源是9miao.com的一贯坚持的理念,CrossApp也是开源的移动App开发引擎。由于CrossApp是基于最宽松的MIT开源协议,所以开发者可以完全免费、毫无顾虑的使用CrossApp制作任何商业项目,并且在开发过程中遇到的有关CrossApp的相关问题,9秒社团技术团队负责相关技术难题的解答并给予技术支持(官方网站CrossApp专区回复问题,回复率100%)。

CrossApp会进行持续的版本更新,后续的版本更新与维护由9秒社团常务贡献委员会(后面简称“9贡委”)与9秒社团官方共同完成,开发者可以申请加入9贡委,为CrossApp的进一步完善做出自己的贡献。提交的版本将由9秒社团官方审核,审核完成后将整合进下一版的CrossApp版本。

2. 丰富的UI控件

CrossApp的设计宗旨在于为移动应用开发者提供快速、高效的开发解决方案。在此基础上,CrossApp封装了大量的UI控件,各类控件的功能十分丰富,开发者可以直接使用这些控件进行应用的开发。这些控件基本满足应用开发需求中的大部分功能,也免去了自己封装UI控件花费的大量时间,进一步提升开发的效率、节省开发的成本。同时CrossApp也会整合部分由第三方开发者提供的优秀控件资源,更大的丰富CrossApp的UI控件。

3. 提供CrossApp配套编辑器

高效快速的开发模式少不了不同编辑器的支持,最初版本的CrossApp没有提供引擎相关编辑器,但在2014年7月份的更新中将推出编辑器,辅助开发者进行更快速便捷的移动app程序的开发。

与其他开发平台比较

下表为当前移动平台开发App所使用的主要技术比较:

通过上表分析我们可以得出:

1. Mobile Web

以HTML5和JQuery为代表的web开发技术是以纯浏览器为基础的,所以没有离线能力可言,更无法充分发挥各平台的功能和特性。

2. Hybrid App

Hybrid App即混合模式应用程序,是指介于web和native直接的app,具备一定Native原生App优秀的用户体验和Web App跨平台的优势。但由于Hybrid仍旧以前端技术为基础,无法对内存和系统资源进行有效的管理。

3. Interpreted App

以前端技术为基础,同样不能有效对内存和系统资源进行管理。

4. Native App

原生开发以IOS和Android为代表,虽然原生开发能够实现最佳的用户体验和高优化,但开发的成本较高。而且因为原生开发几乎不支持跨平台特性,相对于跨平台技术来说,带来的实际效益更低。

综上所述,还是Native App和Cross compiling的综合效率更高,开发者需要根据实际情况,考虑各方面因素来选择合适的开发解决方案。

开发模式介绍

CrossApp采用的开发模式是各平台共享一套代码,采用交叉编译的方式实现不同平台上的运行。CrossApp是基于MVC模式的,面向对象的目标就是设计出低耦合、高聚合的程序,MVC模式提供了一种很好的解决方案。这里的MVC即模型层(Model)、视图层(View)、控制层(Controller),三者各司其职,共同维持一个完整的应用程序。

在CrossApp中的Model层也就是我们各种数据原型、业务逻辑和算法,App在功能上完全依赖Model层的实现;View层顾名思义就是展现给用户的UI界面,而Controller层的职责就是把Model和View两个相互关联不大的层衔接起来,将用户的操作传递给Molel层,在控制View层表现出来。CrossApp通过CAView和丰富的UI控件来实现View层的功能,通过CAViewController及其子类来共同完成Controller层,实现Model和View之间的通信。

CrossApp demo

   

  • CrossApp开发时, 存放在Resource下的文件在android环境下使用assets/..路径 使用C++的文件操作类如(fopen、ifstream等)找不到的问题 当时遇到的问题是我在Resource文件夹下放入.lrc 的歌词文件。用C++来获取lrc歌词数据并解析。在ios上是没问题的。但是在安卓上就歇逼了。发现问题是没找到文件,在判断is_open()时就通不过了。想过会不会是

  • http://git.oschina.net/9miao/CrossApp http://crossapp.9miao.com/Articledetail_1010.html

  • CrossApp 1.1.6版本新鲜出炉了!是不是CrossApp V1.1.5的版本你还没有来得及完全适应?我们CrossApp团队已经再次根据小9们的反馈和自测结果解决了原有版本的一些Bug,并添加了一些新的功能,其中最主要的亮点一是新增了CAFlashView,它可以播放.swf后缀的flash文件,虽然目前暂时还不支持声音播放,且仅支持32位系统,但是这是CrossApp功能的一次重要升级

  • 版本1.19 类说明  视图类CAView是整个CrossApp引擎最基本的类,负责将各式各样的界面呈现出来,我们在App中所能看见的的一切界面其实就是一个个CAView的组合。CAView负责在屏幕上定义矩形区域,在展示用户界面及响应用户界面交互方面发挥关键作用。每个视图对象要负责渲染视图矩形区域中的内容,并响应该区域内发生的操作事件,视图是应用程序用户交互的重要机制。     除了显示内容和处

  •   昨日,目前还处于alpha版本的CrossApp又进行了一次迭代,这是本周的第二次迭代,官方称这是非常重要的一次版本迭代,在alpha V0.1.11版本中推出了一个叫做CrossApp Style的体系,那什么是CrossApp Style呢? [b]  什么是CrossApp Style[/b]   CrossApp Style是一个体系,CrossApp Style里面将包含无数个主题风

  • 新年伊始祝大家羊年快乐,结束掉了无生趣的春节假期,CrossApp团队又要开始继续对引擎进行版本迭代了。本次版本我们进行了大规模的更新与优化,首先推出了万众期待的动画系统,完美支持 iOS 64位和 android 5.0+ ,还新增加了获取当前连接的wifi的信息等一系列功能,同时优化了视频播放器动态链接库的问题。2015年我们会保持频率,持续完善,欢迎众小9们提出更多宝贵的意见和建议,无论好的

  •   经过了一个美好的10月1,跨平台移动App开发引擎CrossApp继续保持每周1次更新的频率,今日又有了新的动作,正式更新至0.3.8版本,本次主要融合了CrossApp-javascript版,并且新增了文件下载管理,且对文字效果进行了优化,同时还优化了CATextView、CAScrollView的触摸体验等。官方表示将在可直接预览,鼠标拖拽化堆UI的图形化编辑器即将完成并推出。   Cr

  • 原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的CrossApp之旅系列] 博客地址:http://blog.csdn.net/qq446569365     官方的API文档,对于CAAlertView的介绍存在着一些不准确的地方。(也许是我说的不准确,欢迎纠正) 下面简单介绍一下CAAlertView的使用。 CAAlertView中主要由三部分组成,Title,Message 以及Bu

  •   让大家久等了!跨平台移动APP开发引擎CrossApp在8月20日下午推出了CrossApp 0.3.3新版本,该版本主要新增了控件的状态视图、优化了文字性能以及其他bug修复与优化,同时提供了JS版本的CrossApp体验包(JS版本暂时还不建议用于商业化产品的开发)。下一个版本会一次性新增四个控件,请大家拭目以待,或者一起加入我们的队伍挖掘更多精彩!详情请关注我们的官方网站:http://

  • 1:下载CrossApp最新的包 git clone https://git.oschina.net/9miao/CrossApp.git 2:下载NDK http://dl.google.com/android/ndk/android-ndk32-r10-windows-x86.zip http://dl.google.com/android/ndk/android-ndk32-r10-wind

  •   跨平台移动应用开发引擎CrossApp终于推出了正式版本V0.3.0, 同时对外放出了与原生应用的详细横评数据,在数据中看,CrossApp已经与原生性能近似,官方也正是对外宣称,开发者可以开始免费使用CrossApp的正式版本来进行移动端商业产品的开发了。   在CrossApp的正式版本推出同时,官方也正是对外推出了CrossApp-Design alpha版本,这是官方推出的首个移动端图

  •   今日冬至到来,除了吃饺子,还有一件事儿让CrossApp的开发者们大吼开心,那就是CrossApp正式推出了0.4.2版本,并终于推出万众期待的WebView!等这一天等的我花都谢了……官方已经再三表态,0.4.2版本的WebView控件是第一个测体验版本,我们将在这个版本吸纳所有开发者的反馈意见和建议,然后统一在下个版本里面修改并推出稳定可商业化的webview服务!敬请期待下个版本:)闲话

  • 在9秒社团和GMGC联合主办的“移动游戏与移动应用跨界开发趋势论坛”上,9秒社团最新开源的跨平台App开发引擎CrossApp引起了与会者们的关注。 据了解,CrossApp是一款免费、开源、跨平台的App开发引擎,基于最宽松的MIT开源协议,使用C++开发,其开发成本低、开发速度快、性能高、UI设计用户体验好等绝对优势。开发者可以完全免费、毫无顾虑的使用CrossApp开发任何商业项目,目前主要

 相关资料
  • 问题内容: Mono跨平台正在采取什么措施?如何为Windows编译(在Linux中),如何在Linux中运行代码(因为没有.NET JIT编译器)? 那么使用Mono开发的特殊之处是什么?与使用Visual Studio进行开发相比,有什么优势(跨平台的东西除外)? 问题答案: 在Mono中进行开发绝对是跨平台的,有一个 警告请求者 : 努力避免使用Windows特定的API 与本机Window

  • 多平台支持 Mpx支持在多个小程序平台中进行增强,目前支持的小程序平台包括微信,支付宝,百度,qq和头条,不过自2.0版本后,Mpx支持了以微信增强语法为base的跨平台输出,实现了一套业务源码在多端输出运行的能力,大大提升了多小程序平台业务的开发效率,详情可以查看template增强特性 不同平台上的模板增强指令按照平台的指令风格进行设计,文档和代码示例为了方便统一采用微信小程序下的书写方式。

  • Chromium是一个巨大而复杂的跨平台产品。我们试图在不同平台间共享尽可能多的代码,同时为每个平台用最合适的方式实现UI和操作系统集成。这提供了一个更好的用户体验,但它给代码增加了额外的复杂度。这个文档描述了保持这种跨平台代码简洁性的推荐实践。 我们使用大量不同带后缀的文件来表示一个文件应该被使用的时机: Mac文件中,低层级文件使用_mac后缀,Cocoa(Mac UI)文件使用_cocoa后

  • 发布到 Web 平台 安装配置原生开发环境 打包发布原生平台 原生平台 JavaScript 调试 发布到支付宝小游戏 发布到微信小游戏 微信小游戏开放数据域 启用微信小游戏引擎插件 接入微信 PC 小游戏 发布到趣头条小游戏 发布到百度小游戏 百度小游戏开放数据域 发布到 Facebook Instant Games 发布到 Google Play Instant 发布到 OPPO 小游戏 发布

  • HeyThings IoT服务平台为开发者开放智能家居、可穿戴、车载出行等智能设备的接入;开放APP 控制页开发、APP SDK插件、IoT设备直连接入方案、IoT云端对接接入方案;同时开放线上商城、新零售渠道等OPPO特色优质资源,与合作伙伴共建极致的物联网体验。

  • Zoul 是基于 CC2538 RAM Cotrex-M3 Soc 的模块,板载 2.4GHz 802.15.4 RF 接口,512KB 可编程 flash,32KBRAM,最高可运行在 32MHz。Zoul 与一个接收器 CC1200 868/915 MHz RF 绑定,因此运行双波段操作。 Zoul 支持在设计上快速重用,根据设计原型快速设计为产品。 图3.1. Zolertia Zoul模块

  • 多平台开发 一个网站或应用不仅能运行在各种台式机, 笔记本电脑, 平板和手机, 还能运行于少部分其它设备(手表, 温控器, 电冰箱等等). 你将怎么决定支持哪些平台和为支持这些平台, 怎么去开发, 这被称为多平台开发策略. 接下来, 我会列出常见的多平台开发策略: 创建 响应式 Web 设计 (RWD) 网站/APP 创建 RESS (基于服务端组件的响应式 Web 设计) 网站/APP 创建 自

  • 建议以参考其它平台的代码为主,在这只是简单说明一下。 类属性 接口所需的非通用参数,都写在类属性中,不写在方法的参数里。 方法 实现如下几个方法: /** * 第一步:获取登录页面跳转url * @param string $callbackUrl 登录回调地址 * @param string $state 状态值,不传则自动生成,随后可以通过->state获