В данном контексте, вам больше стоит сосредоточится на правильной архитектуре БД, тк все "асинхронные навороты" могут сойти на нет блокировками таблиц на уровне самой БД. Где то читал очень подробный разбор этих асинхронных драйверов, где было написано, что реляционные бд по своей природе не могут предоставить не блокирующий IO, как следствие максимум что можно делать асинхронно это то что идет до обращения к базе(формирование запросов) и то что идет после(ОRM переводит данные в классы и прочее). Поэтому мне кажется вам лучше стоит изучить именно этот момент. Я сомневаюсь что в ноде изобрели что то что решает выше описанную проблему
А что вам нужно от фреймворка? Может вообще есть смысл посмотреть на play 2, play-mini если вам нужна асинхронность? или какие нибудь akka-based фреймворки типа spray?
вы уверены что evernote не умеет в offline режиме работать? только что отключил весь инет на телефоне и создал и сохранил заметку. При подключении все синхронизировалось без проблем.
На этот вопрос вам ответит только гадалка. Вот вы учите технологию X а через год на нее спрос резко упадет хотя сейчас она востребована. Сначала был php, потом появился ror, потом nodejs, кто знает что появится через год?
Если у вас юнити, то посмотрите в сторону https://github.com/onepf/OpenIAB это по сути адаптер над логикой множества магазинов + плагин для юнити, логика описаная мной ниже будет та же, методы так же называются, отличатся будет только инициализация.
Тогда уж проще пихнуть в sqlite и через CotentProvider на основе курсора строить. У вас слишком много телодвижений, которые может сделать за вас андроид.
Могу сказать по своему опыту, что самое надежное решение реализации синглитонов в андроиде это в Application#onCreate делать SingletonDbHelper.init (для иницилизации инстанса), а в коде делать SingletonDbHelper.getInstance() . К сожалению больше ни чего не могу подсказать по вашей проблеме.
вы про upgrade? если версии всего 2, то upgrade будет лишь в одном случае как вы и описали "oldVersion == 1 а newVersion == 2", в случае если база создается сразу на версии 2, то onUpgrade не будет выполнятся. В любом случае если у вас этим проблема то надо копать туда. + смотреть по коду, может вы сам где то их затираете. А вообще по опыту понял что от андроида можно ожидать что угодно, даже в новых версиях.