Intereting Posts
Kotlin встроенное ключевое слово, вызывающее IntelliJ IDEA Отчетность о покрытии 0% Разбор JSON с использованием Klaxon с doAsync от Anko не выполняется Почему Kotlin lang допускает только одну главную функцию в проекте? Anko DSL пересматривает странное поведение при добавлении элементов Почему Mockito не может высмеивать общий тип параметра с типом номера в Kotlin? Почему использование аннотаций Scopes и Singleton в Dagger2 с kotlin вызывает ошибку при компиляции? Разница между различными функциями verifySignatures в тестировании блока Corda Невозможно использовать string.contains () в выражении kotlin `when` Как реализовать проверенный конструктор в Котлине? Kotlin + MVP – случайное переопределение Kotlin / Java функциональный и неизменный способ сбора карты на карте EvaluateJavaScript разрешает только возвращаемый тип String? Перегрузка интерфейса Добавление числа в Android с помощью Kotlin Аннотации: когда требуется arrayOf

Является ли Kotlin сложнее, чем java

Я решаю, какой из них использовать для проекта Android Studio, и я готов использовать Kotlin. Если есть преимущество с точки зрения сложности реверсирования, чем java.

Нет. У Котлина таких намерений нет. В отличие от Scala или Groovy (и многих других более магических языков JVM), структура байткода Kotlin не слишком сложна, а значит, использование kotlin не имеет преимуществ перед простой Java, когда дело доходит до отказа от обратного проектирования.

Во всяком случае, вы не должны обращать на это внимание, если ваше приложение не содержит что-то магическое, например специальный метод для пропуска некоторых ограничений безопасности, использующих определенную ошибку в Android, специальный код, содержащий ваш закрытый ключ (что является плохой практикой) и т. Д. ,

Эта публикация, посвященная предотвращению обратной инженерии, может вас заинтересовать.


Off-Topic: Scala сложнее переделать, потому что Scala трудно понять. Его сгенерированный байт-код часто не имеет ничего общего с его исходным кодом. Я когда-то хочу объяснить, что происходит за всеми этими implicit и другими, но я только что нашел кучу беспорядка. (вы не должны использовать javap для понимания кода scala, у scala есть другие утилиты). И groovy – это потому, что это динамический язык, и в его байткоде есть много волшебства, чтобы сделать его динамичным . Я знал это, потому что я узнал, как работает скрипт построения градиента во время разработки плагина gradle. Я нашел полученный файл класса, но я даже не могу найти, где находится блок dependencies в его дизассемблированной форме.