2010-07-27 8 views

Répondre

8

Les choses vont bien mieux que ce à quoi je m'attendais. J'ai maintenant un téléphone Android (HTC Desire, Android 2.2) et j'ai fait un premier test.

Ouverture et fermeture d'une base de données est relativement lent jusqu'à présent (ouvrir une base de données existante pour la deuxième fois prend 0,2 secondes, fermant environ 0,2 secondes), mais il semble que H2 fonctionne assez bien sur Android, même si la Dalvik VM n'est pas encore aussi optimisé qu'une JVM de bureau. Il est trop tôt pour donner des chiffres concrets, mais Android est désormais une plateforme supportée.

+0

Salut Thomas, pouvez-vous fournir un lien ou un tutoriel pour intégrer la base de données H2 avec Android et de commencer à l'utiliser. – Vignesh

+0

Il n'y a pas de tutoriel étape par étape, la seule documentation est http://h2database.com/html/tutorial.html#android –

+0

Je l'ai lu, seulement après que je suis à la recherche d'un tutoriel, aussi je ' J'ai posté une question à ce sujet, veuillez regarder http://stackoverflow.com/questions/7204785/integrate-h2-database-with-android – Vignesh

3

Je serais également très intéressé par les tests de performance du monde réel pour la base de données H2 sur Android. Je pense que H2 sera beaucoup plus lent que SQLite, principalement parce que la machine virtuelle sur Android n'est toujours pas géniale. Cela s'est amélioré avec Android 2.2, mais je pense qu'il y a encore une grande différence. Je suppose que H2 est actuellement environ 10 fois plus lent. Mais ce n'est qu'une supposition.

A propos du problème Unicode: qu'en est-il de la conversion de chaînes en UTF-8 avant de les stocker dans SQLite?

+0

Mon problème est avec des fonctions comme LOWER et UPPER qui ne fonctionnent qu'avec des caractères ASCII car SQLite sur Android n'a pas de lien libicu. – Eduardo

+1

Je sais que c'est une douleur, mais qu'en est-il de stocker une colonne supplémentaire avec la version «en majuscules» les données? Ainsi, au lieu de CREATE TABLE ADDRESS (NAME VARCHAR (255)) vous avez CREATE TABLE ADDRESS (NOM VARCHAR (255), NAME_UPPER VARCHAR (255)) –

+0

Vous pouvez simplement utiliser des colonnes TEXT; SQLite ignore les longueurs VARCHAR de toute façon. –