J'ai une liste de types personnalisés, ils doivent être sauvegardés/chargés depuis/vers un fichier sur un appareil mobile (Windows Mobile 6) quelle méthode serait la plus adaptée, compte tenu des ressources limitées de l'appareil? EDIT: Le fichier de données sera autour de 2-5mbDe quelle façon enregistrer des types personnalisés dans un fichier sur un appareil mobile?
Répondre
De combien de données parlons-nous?
J'ai utilisé un ancien périphérique (HTC-s620, avec un processeur TI OMAP 850 200 MHz) pour enregistrer un fichier XML de 2 Mo en utilisant XML Serialization, en 3-5 secondes. Modèle de programmation très simple. Très facile à faire. Avec un appareil plus récent, je suis sûr que ce serait beaucoup plus rapide. Mon scénario d'utilisation était une charge complète et une sauvegarde complète, par cycle.
[XmlRoot("notes")]
public class NoteList : List<Note>
{
// Set this to 'default' or 'preserve'.
[XmlAttribute("space", Namespace = "http://www.w3.org/XML/1998/namespace")]
public string space = "preserve";
public static void Save(NoteList noteList, string NotesFilePath)
{
if (noteList == null) return;
XmlSerializer serializer = new XmlSerializer(typeof(NoteList));
string tmpPath = NotesFilePath + ".tmp";
using (System.IO.FileStream fs = new FileStream(tmpPath, FileMode.Create, FileAccess.Write))
{
serializer.Serialize(fs, noteList);
fs.Close();
}
if (File.Exists(tmpPath))
{
if (File.Exists(NotesFilePath))
{
string oldFile = NotesFilePath + ".bak";
if (File.Exists(oldFile)) File.Delete(oldFile);
File.Move(NotesFilePath, oldFile);
}
File.Move(tmpPath, NotesFilePath);
}
}
public static NoteList Load(string NotesFilePath)
{
if (!System.IO.File.Exists(NotesFilePath))
return null;
NoteList noteList = new NoteList();
XmlSerializer serializer = new XmlSerializer(noteList.GetType());
using (FileStream fs = new FileStream(NotesFilePath, FileMode.Open, FileAccess.Read))
{
noteList = (NoteList)serializer.Deserialize(fs);
fs.Close();
}
return noteList;
}
}
Les périphériques capables de courir Win Mobile 6, semblent pouvoir se débrouiller assez bien en utilisant le framework .NET "paralysé".
Mais si vous voulez quelque chose de plus rapide que ce que System.IO fournit, je pense que vous n'avez pas de chance (?).
Avec "types personnalisés", je suppose que vous faites référence à des classes, et par cela je soupçonne certaines classes compatibles .NET? Ensuite, je ne vois pas comment vous allez presser plus de jus ... au moins pas plus de
this happy camper obtenu.
Je vous recommande de regarder SqlLite si vous voulez un bon db mais sans le ballonnement. SqlLite est également atomique et résilient. Sinon, l'enregistrement dans un fichier plat n'est pas un problème. Rappelez-vous juste que le pouvoir peut mourir sur vous à tout moment, y compris à mi-chemin à travers votre écriture.
- 1. Un appareil mobile est détecté comme appareil non mobile
- 2. Installer un certificat sur un appareil Windows Mobile 5 Silencieux
- 3. Comment lancer des codes courts sur un appareil mobile?
- 4. Façon de verrouiller facilement un fichier sur Windows Mobile
- 5. Comment obtenir la pile de pile dans un appareil mobile?
- 6. Détecter un appareil mobile d'intérieur (J2ME)
- 7. Comment détecter une connexion ActiveSync sur un appareil mobile?
- 8. Bloquer l'utilisation du téléphone sur un appareil Windows Mobile 5
- 9. Puis-je activer bluetooth sur un appareil mobile avec Java?
- 10. Lire des SMS depuis un appareil mobile avec l'application .net?
- 11. Comment enregistrer un NSMutableArray contenant des objets personnalisés dans NSUserDefaults
- 12. Comment mettre des données dans le presse-papiers sur un appareil Windows Mobile écrit en .NET?
- 13. Quelle est la meilleure structure de données à utiliser pour un annuaire téléphonique sur un appareil mobile
- 14. Besoin d'ajouter des informations de version "exe" à un appareil mobile exe créé dans VB
- 15. question Home_path avec des tests RoR localement sur appareil mobile
- 16. Enregistrement des paramètres des types personnalisés
- 17. Prévenir l'aperçu des types de fichiers UTI personnalisés sur l'iPad
- 18. Quelle est la meilleure façon d'écrire le fichier journal des erreurs sur Windows Mobile?
- 19. iphone - problème de débogage sur un appareil
- 20. Quelle est la meilleure façon de télécharger un fichier externe sur un serveur via un programme
- 21. Exposition de types personnalisés (classes) dans un service Web (WSE)
- 22. Quelle est la meilleure façon de distribuer un programme python étendu avec des modules c personnalisés?
- 23. Comment définir un tableau de types personnalisés dans WSDL?
- 24. WCF renvoyant des types personnalisés
- 25. Quelle est la meilleure façon d'écrire dans un fichier Ruby?
- 26. Un abonnement mobile est-il nécessaire pour tester les applications sur un appareil Windows Phone 7?
- 27. Toujours utiliser des types de données personnalisés
- 28. Dans WordPress, comment pouvez-vous enregistrer des taxonomies intégrées avec des types de postes personnalisés dans le code?
- 29. Comment distinguer un appareil mobile d'un autre par requête HTTP
- 30. Appareil Windows Mobile avec Webcams Branché
Le principal problème avec XML est que vous ne pouvez pas effectuer d'écritures "naïves". Vous avez besoin de sauvegardes (copier, vider, supprimer, déplacer, ou tout simplement copier, vider et supprimer la copie) car dans une fenêtre de 2-3 secondes l'alimentation peut mourir et corrompre votre fichier. – Quibblesome