html5 游戏转换为小游戏,HTML5小游戏转换成mobile应用

继上次总结html5做小游戏的经验后,一直工作繁忙,到现在才发出这篇迟迟的总结。好,言归正传。

把HTML5转换成mobile有很多选择,主要针对android平台尝试了一些方式。把html5直接转成android应用可以用phonegap,android sdk,Rexsee和appMobi等。我试了前两种方式,下面会比较一下这两种方式,并总结一下经验和遇到的问题。

1. PhoneGap

PhoneGap作为一个优秀的移动开发框架,受到很多人的亲睐。它可以生成IOS,android,windows phone,blackberry, webos,symbian平台上的应用。真正做到利用html5实现一次开发,多个平台运行。

如何用PhoneGap开发这里就不说了,主要介绍一下 PhoneGap的在线build 服务 https://build.phonegap.com/。它同样可以生成多平台的应用, 而且现在还是免费的。它用起来也非常的简单,只要把你的html5的程序打包上传,就可以很快的生成多平台的安装文件,供下载。注意的是上传的文件中必须包含index.html文件,否则build会失败。它还提供debugging方式,但没有尝试。由于当时build的程序在分辨率上有些问题,为了便于调试,以及想看看PhoneGap生成的应用速度是不是不如原生应用,于是还是决定尝试一下android sdk。

2. Android SDK

(1) 开发环境

简单的方法是去android官方网站下载ADT Bundle. 它包含了开发需要的所有组件:

Eclipse + ADT plugin

Android SDK Tools

Android Platform-tools

The latest Android platform

The latest Android system image for the emulator

这样就不用再配置环境了。

(2) 模拟器环境配置

要想看到设备上的显示结果,需要建立一个模拟器Android Virtual Device(AVD)。建立的方法是在Android Virtual Device Manager中新增一个AVD,选择模拟设备的一些属性即可。

调试运行AVD时,会遇到速度很慢的问题,每次修改都要等半天才能看到结果。优化方法是,把AVD里的Image替换成x86的Image,它原来默认是arm的。需要重新下载安装一个x86的System Image,然后重新建立AVD。这样速度有所提升,但是还不是很满意。

(3) webview

用webview载入本地的html文件,即可生成应用程序。

WebView webview = new WebView(this);

setContentView(webview);

webview.loadUrl("file:///android_asset/index.html");

(4) 分辨率自适应

在html中加入如下语句,就可以支持分辨率自适应。

3. Html5功能的支持情况

(1) android版本

html5在android2.3以上才能正常访问,在android2.2以下,sdk中的webview还没完全支持HTML5。

(2) canvas

要支持canvas,

首先要打开对JavaScript的支持,如下:

webSettings.setJavaScriptEnabled(true);

(3) touch

mobile天生支持touch,对HTML5中的touch event,不用做任何额外的设置,就能工作得很好。

(4)  web storage

对localStorage的支持,只需配置本地数据库,但不需要建立数据库结构。设置如下:

webSettings.setDomStorageEnabled(true);

webSettings.setDatabaseEnabled(true);

String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();

webSettings.setDatabasePath(dir);

webview.setWebChromeClient(new WebChromeClient() {

public void onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota, long estimatedSize,

long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater) {

quotaUpdater.updateQuota(estimatedSize*2);

}

});

(5)  audio

audio看似简单,但是android sdk对html5 audio的支持并没有那么理想。android sdk还不支持标签,原因在于音频的编解码问题。要想支持audio,可能需要依赖于一些第三方的库。这一点让人有点失望,有待后续跟进。

4. 性能问题

让人很意外的是,程序在android sdk 2.3版本上跑的速度很快。在android sdk 4.0以上版本的速度要慢很多。原因是android 4.0在2d绘制机制上有了很大变化,但对canvas的渲染速度上却受到了影响。

综上所述,感觉要把html5应用直接转换到android应用还有一些路要走。不知直接转成ios应用,会不会问题会少些。有待后续尝试。

转换成

mobile应用只是一些尝试,说得不对的地方,还请批评指教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值