run-on-main-thread
означает, что ваша бизнес-логика c будет работать в том же потоке, что и пользовательский интерфейс. Причина, по которой вы видите плохую производительность в SDK 8, заключается в том, что сейчас это единственный вариант. Так что обойти это невозможно.
Однако это только показывает, насколько плохо было оптимизировано ваше приложение и, вероятно, разряжено много батареи во время работы. Вам нужно оптимизировать рендеринг приложения и делать только те вещи, которые необходимы. Какой тип бизнес-логики c есть в вашем приложении, телефон так ужасно работает? Такое ощущение, что есть много вещей, которые могли бы быть лучше, и много вещей, которые можно упростить.
Пара вещей, которые вы можете сделать:
- вкладки: отображать только видимая вкладка
- разбиение на страницы: не отображать более 20-30 элементов в списке, добавить динамическую c нумерацию страниц и отображать только некоторые элементы
- тяжелые вычисления: попробуйте избегайте их вообще или сохраняйте результаты, чтобы вы могли сделать это только один раз. В этом случае также может быть реализован рефакторинг, поскольку много раз вычисления в программировании могут выполняться несколькими способами, причем некоторые из них НАМНОГО ТЯЖЕЛЫЕ, чем другие более простые результаты.
- избегают повторного рендеринга. Если вы добавляете элементы один за другим в список, а не все сразу, у вас есть гораздо более легкий интерфейс
- , чтобы добавить к предыдущему пункту, если вы используете привязку данных Alloy, это повторная визуализация (по одному элементу за раз) экспоненциально плохо!
Есть еще много оптимизаций, которые вы можете сделать, чтобы сделать его лучше. Если вы запрограммируете это хорошо, вы не заметите никакой задержки. У меня были списки из 10.000 элементов, в которых каждый элемент нуждался в вычислениях (вычисление расстояния по широте / долготе, переформатирование заголовка и отображение момента js), и я все еще мог отобразить его в течение полсекунды. Конечно, потом я опустил его до примерно 100 пунктов, так как 10 000 в любом случае бесполезно.
Кроме того, я не могу помочь вам в дальнейшем, даже не изучив ваш код.