2012-04-10 8 views
1

Angenommen, ich möchte eine App für Android OS schreiben, die nicht wird ein Echtzeit-Spiel werden; Das heißt, es wird ein rundenbasiertes Spiel (mit Internetzugang) sein, das auf Formularen und Seiten basiert.Android SDK vs. HTML5 für Android Nicht-Echtzeit-App

Ich würde gerne HTML5 verwenden, um dies zu tun, und einfach ein WebView auf der nativen App mit einigen Bindungen an die Website Javascript, etc. für mehr Funktionalität (falls erforderlich). Da es sich hier nicht um ein Echtzeitspiel handelt, scheint die Performance kein Problem zu sein.

Der einzige wirkliche Grund, den ich an nicht denken kann HTML5 verwenden, ist, weil es Ladezeiten zwischen Formen z. Jedes Mal, wenn ein Benutzer auf eine Schaltfläche klickt, um eine Aktion auszuführen, die sie in ein neues Formular umwandelt, das eigentlich eine neue Webseite ist, muss diese Webseite geladen werden. Wenn ich dies nativ mit dem Android-SDK ausführte, wäre das Laden der Formulare nahtlos und sofort (obwohl das Hoch-/Runterfahren des Web wenig Zeit in Anspruch nimmt, aber das wird erwartet).

Ist das ein echtes Problem? Gibt es Möglichkeiten, das Android SDK anstelle von HTML5 zu verwenden?

Antwort

1

Ein paar Ideen:

1) Bündeln Sie Ihre HTML mit der App in dem Ordner mit dem Namen Vermögenswerte und von dort wie Datei mit einer URL laden: ///android_asset/your_path.html. Dadurch verringert sich die Ladezeit, da der Inhalt auf dem Gerät gespeichert wird.

Aber Vorsicht vor dem folgenden Webview Bug in Android 3.0 +, die URL mit # verursacht oder? auszufallen aus dem Vermögen Ordner laden:
http://code.google.com/p/android/issues/detail?id=17535

2) Sie können auch die Seite zu laden, zu reduzieren, Zeit wählen AJAX zu verwenden. Sie laden die schweren Bibliotheken einmal am Anfang und verwenden dann AJAX für nachfolgende Seitenladevorgänge, um zu vermeiden, dass viele JS-Dateien geladen werden. Aber hüte dich vor dem obigen Fehler, da die AJAX-Seite in der URL # verwendet.

+0

Das ist großartig, ich habe nie an Ihre erste Option gedacht. Vielen Dank. – Jesse