Преобразование алгоритма из Java в NDK - PullRequest
0 голосов
/ 17 мая 2018

Каковы последствия для преобразования алгоритма Java в NDK для его защиты?Этот алгоритм Java принимает данные в качестве входных данных и выводит обработанные данные.Вот и все.Он никак не взаимодействует с пользовательским интерфейсом.

  1. Будет ли преобразованный алгоритм вызывать проблемы совместимости на некоторых устройствах Android?
  2. Поскольку алгоритм преобразован в c ++, это делаетзначит, его нельзя декомпилировать, а можно только разобрать?
  3. Есть ли какой-нибудь инструмент, позволяющий мне преобразовать этот алгоритм Java в NDK без написания самого алгоритма?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Насколько я знаю, предотвращение декомпиляции является одной из основных причин использования NDK наряду с улучшением производительности, как упомянул Андрей.Когда дело доходит до ваших вопросов:

1) Вам необходимо убедиться, что вы скомпилировали свой собственный код для всех пяти поддерживаемых ABI, то есть x86, x86_64, armeabi, armeabi-v7a и arm64-v8a.

2) Ничто на 100% невозможно декомпилировать, но шансы на успешную декомпиляцию вашего нативного кода намного ниже, чем декомпиляции байт-кода java.

3) Нет необходимости писать C илиC ++ код самостоятельно.Тем не менее, заголовки, содержащие API, который вы хотите предоставить Java, могут быть сгенерированы с помощью javah.

Android Studio позволяет довольно просто писать небольшие собственные библиотеки и интегрировать их в существующие проекты, вам нужны только самые базовые знанияCMake.

0 голосов
/ 17 мая 2018

Разница в том, что код Java компилируется в байтовый код, который затем запускается на JVM, а код C / C ++ компилируется в машинный код. Я не думаю, что разумно конвертировать код Java в C / C ++ по соображениям безопасности, в основном это делается потому, что код, написанный на C / C ++, намного быстрее.

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