Ok, an der Stelle würde ich sagen, kommt die "goldene Regel" zum Tragen: Optimierung erst wenn es wirklich nötig ist!
Sehe ich auch so. Erst wenn ich Probleme habe fange ich zu messen an und optimiere an den Stellen deren Optimierung tatsächlich etwas bringen. Aber mit einem byte-buffer arbeiten ist wohl eher common(best?) practice als premature optimization.
10k sind schon ziemlich happig für ein Android System. Wenn du den Serializer-Weg gehen willst kannst du
ORMLite für Android verwenden. Dann kannst du mit Objekten arbeiten hast aber trotzdem den Vorteil, dass das Lesen und Speichern schnell geht.
Allerdings dauert das Initialisieren des ORMLite-Objekts ziemlich lang. Das heißt wenn du es nur einmal aufrufst um das Menü aufzubauen, wäre es vielleicht sogar klüger du verwendest das gute alte Java Serializable oder Plain SQLite. Habe eigentlich mit allen bisher genannten Technologien gute Erfahrungen gemacht. Außer mit JDOM, das habe ich nur für Java SE verwendet, aber ansonsten kann ich die anderen (xstream, ormlite, sqlite, serializable) auch für Android empfehlen.
Die Aussage, dass Datenbanken nicht in Frage kommen weil sich die Daten ändern können auch auf anderen Plattformen sei mal einfach so dahingestellt, wenn den ORMLite und XSTREAM Annotations könntest du aber die selben Klassen verwenden.