Буду ли я страдать от недостатков при использовании отражений в Android? - PullRequest
1 голос
/ 27 сентября 2010

У меня есть приложение, которое я хочу запустить на как можно большем количестве телефонов Android.Мое текущее решение - просто скомпилировать его с новейшей версией и выполнить критический код в разделах, которые будут использоваться только на устройствах с правильной версией Android.Это работало нормально, пока я не начал использовать Android 2.2.Теперь запуск приложения на старых телефонах выдает ошибку.

Так что я думаю об использовании отражений, однако это будет означать, что я буду компилировать для версии 1.5Итак, мой вопрос: буду ли я страдать от каких-либо недостатков?Очевидно, что компиляция для другой версии имеет значение, как я вижу в своей ошибке.Так я бы, например, потерял поддержку JIT или что-то в этом роде?

Было бы здорово, если бы вы, ребята, поняли эту темуЗаранее спасибо.

Ответы [ 2 ]

2 голосов
/ 27 сентября 2010

Извините, если я говорю вам очевидные вещи, но вы уверены, что вам действительно нужны отражения?

У вас будут исключения во время выполнения, когда вы попытаетесь создать экземпляр класса, который использует более высокую версию SDKзатем один устанавливается на устройство / эмулятор.

Чтобы избежать этого, вам нужно проверить версию SDK во время выполнения.Пример:

//check for multitouch support (Android 2.0+) 
inputSystem = android.os.Build.VERSION.SDK_INT < 5 ? new InputSystem() : new MultitouchInputSystem();
1 голос
/ 27 сентября 2010

Нет недостатков в использовании отражения Java для поддержки различных SDK. Однако есть более элегантный способ, описанный здесь , который использует ленивую загрузку классов, которая более удобна в обслуживании. Я считаю, что это более надежный способ обработки различной поддержки SDK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...