-
Notifications
You must be signed in to change notification settings - Fork 797
An Introduction To Egret Native Solution
Egret选择在1.0 beta版本推出之时也一并发布了Egret原生打包对于Android系统的支持方案(具体的架构可以参考下图),我们主要可以为开发者提供一个使用TypeScript语言进行游戏逻辑的高级编写后,只用这一套代码就能通过2种方式分别对Web浏览器和原生提供支持。
原生支持主要是我们在打包方案里封装了一个对于JavaScript逻辑进行解释的SpiderMonkey模块,同时还将渲染,事件,声音原本浏览器完成的环节做了一个对于系统层的映射驱动封装,项目中具体体现为一个封装好的库供打包时调用,通过这个驱动层,就实现了从浏览器Canvas绘制到系统底层硬件加速绘制的一个映射关系。开发者只需要按照我们的Egret Android打包支持规范即可将自己的游戏脚本与我们封装好的Lib库进行原生编译和打包,从而生成原生应用类型。
- 下载apktool
- 将其添加至环境变量的PATH变量
- 在命令行执行
apktool
,确认安装成功
此步骤非必须,安装 Android SDK 主要是为了实现输出调试日志以及自动安装 apk文件到手机上
- 下载 Android SDK
- 将 {Android SDK}/platform-tools/添加至环境变量的PATH变量(可选)
- 在命令行执行
adb
,确认安装成功
- 在 这里 下载 Egret Android Packager , 其中包含 EgretFrameworkNative文件夹,下述步骤需要此文件夹路径
- 安装 java jdk
- 执行
keytool -genkey
生成一个签名
egret create HelloEgret --runtime native
- 执行以下脚本,生成配置文件
egret package_to_native -config
上述脚本会在当前文件夹生成一个 package_to_native.config 文件,请在其中填写 项目路径、签名文件路径、签名密码、EgretFrameworkNative文件夹路径。(注意:需要将签名文件放到当前目录,即与HelloEgret同级)
执行以下脚本
egret package_to_native package_to_native.config
如果您已经安装了 Android SDK,并确认您的Android设备与PC相连并打开了USB调试,您的应用会被自动安装进手机中,否则将会在当前目录下生成 apk 文件。(注意:如果在设备调试时不能安装到手机中,麻烦查看下 egret_core/tools/lib/tools/package_to_native.js文件的第17行,如果是keyfile麻烦手动改成keystore并重新安装下egret。)
- 请勿在业务逻辑中调用任何与浏览器或 DOM 相关的API,如 window , document , canvas.drawImage() 等,而是应该通过 Egret 提供的各个 Context 来进行调用
- Egret Native 解决方案目前提供的是暂不开源的社区版本。主要是考虑到目前 Native版本还处于相对早期的阶段,未来部分代码可能会有较大幅度的变化和API修改,考虑到为了降低开发者进行手工版本升级、解决向下兼容问题的的门槛,Egret团队决定暂时将此版本由核心团队维护和演化,并在合适的时机调整下一步策略。
- 目前社区版本由于暂不开源,如果开发者有需求将使用 Egret 制作的产品运营于商业平台,并存在第三方SDK接入等问题,请与 Egret 核心团队联系,我们将提供源代码级别的技术支持或联合开发。
- 未来的版本我们会逐步支持 iOS 与 Windows Phone 8 的原生部署
- Egret 使用了 Ricardo Quesada 的开源项目 非官方版 SpiderMonkey
- Egret Native解决方案中的部分代码参考了 Cocos2d-x 的实现方式
如果您有任何疑问或建议,欢迎访问 Egret开发者论坛 和 Egret 官方团队讨论