InApp Billing Security и метод удаленного вызова метода

Я реализовал в приложении биллинг в приложении, и теперь я хочу, чтобы обеспечить его немного больше. Читая материал разработчика, он заявляет:

В дополнение к запуску программы обфускации, мы рекомендуем использовать следующие методы для обфускации вашего кода биллинга в приложении.

Встроенные методы в другие методы.

Стройте строки «на лету» вместо того, чтобы определять их как константы.

Используйте Java-отражение для вызова методов.

http://developer.android.com/guide/market/billing/billing_best_practices.html

Obfuscation – отлично, я могу это сделать = proguard

Встроенные методы в другие методы – это высказывание, когда мой код завершен, избавиться от большого количества OO, насколько я могу, и поместить весь мой код в столько строк, сколько могу (для биллинговой части моего приложения) одним способом? Включает ли это включение классов? В андроидном примере у них есть класс констант, я бы включил все это?

Стройте строки «на лету» – да так перемещайте все постоянные переменные класса в строке – штрафная защита должна покрывать это

Используйте Java Reflection – это мой главный вопрос. Должен ли я ссылаться на все мои методы, а не называть их?

Чтобы сэкономить немного усилий, я мог бы сделать это:

private static Object invokeMethod(String name, Class<?>[] params, Object[] args){ try { return MySpecificClass.class.getMethod(name, params).invoke(null, args); } catch (IllegalArgumentException e) { // Should never happen in my code, ignore and cancel in app charge } catch (SecurityException e) { // Should never happen in my code, ignore and cancel in app charge } catch (IllegalAccessException e) { // Should never happen in my code, ignore and cancel in app charge } catch (InvocationTargetException e) { // Should never happen in my code, ignore and cancel in app charge } catch (NoSuchMethodException e) { // Should never happen in my code, ignore and cancel in app charge } return null; } 

Тогда я мог бы делать такие вещи:

 private static boolean someMethod() { return true; // just an example } params = new Class<?>[0]; if ((Boolean) invokeMethod("someMethod", params, null)) { // Do something } 

Это хорошая безопасность, или это просто раздувание кода и превращение моего приложения в неподдельное для неподдельных проблем пользователя?

Благодарю.

    Это похоже на то, что вы могли бы изучить, когда есть более выраженная угроза пиратства. Я бы не смог оправдать использование рефлексии только для дополнительного слоя обфускации, если бы у него был шанс скомпрометировать пользовательский интерфейс.

    Intereting Posts
    Admobs нуждается в разрешениях, которые у меня уже есть Как сделать готовый файл APK для публикации означает экспорт? И каков параметр для установки? Firebase Java Server для отправки push-уведомлений всем устройствам Android – Как мне разрешить показ только одного экземпляра MediaPlayer? Android: программно откройте диалоговое окно «Недавние приложения» Android – привязка к сервису Android 2.3: файловая система только для чтения застряла Библиотека Java MTP, работающая в Windows Android IllegalStateException Не зарегистрировано ни одного инструментария! Должен работать под регистрирующим оборудованием Как подчеркнуть текст кнопки в Android? Аудиовход на Android-смартфон через разъем для наушников? Android LocationManager.requestLocationUpdates with minTime> 0 не работает как ожидалось Android: сохранение информации для пробного приложения Библиотека Android об переопределении ресурсов В чем разница между Android-браузером и Chrome