Производительность Card.io на Nexus 10 очень низкая
Я внедрил card.io в приложение, и производительность при открытии операции сканирования кредитной карты (CreditIOActivity) быстро открывается на большинстве устройств. Но на Nexus 10, работающем под управлением Android 4.4.2, загрузка сканирования может занять до 5 секунд при вызове из моего приложения. Хотя эта длительная задержка НЕ происходит в примере приложения, которое card.io предоставляет вместе с SDK. Я думаю, что это может быть проблема с памятью, вызывающая медленное время загрузки при открытии из моего приложения, но это не объясняет, почему производительность почти идентична образцу приложения на других устройствах.
Вся помощь очень ценится.
2 ответа
Вы проверяете CardIOActivity.canReadCardWithCamera(this)
в вашей деятельности onResume()
или похожие? Есть некоторая статическая инициализация, которая нужна card.io. Если это может быть вызвано рано, это не должно произойти, когда пользователь ждет.
SampleApp действительно испытывает те же проблемы с производительностью, он просто делает это при запуске приложения. CardIOActivity.canReadCardWithCamera(this)
может занять до 4 секунд на Nexus 10. Я возился и обнаружил, что вызов CardIOActivity.canReadCardWithCamera(this)
на AsyncTask значительно улучшает пользовательский опыт. Я рекомендую запускать AsyncTask, когда пользователь входит в действие непосредственно перед тем, как его попросят отсканировать карту. Даже раньше будет более идеальным, но становится сложнее в управлении.
В случае, если пользователь пытается отсканировать карту до возврата этого метода, Card.io изящно возвращается к ручному вводу.