Можно ли написать код на C++ для андроид?

Рейтинг: 1Ответов: 1Опубликовано: 19.02.2015
  1. Вот мне интересно: если написать код на C++ для андроид, он в процессе компиляции в обычный java превратиться, а после - в apk?

  2. То есть через Dex2Jar спокойно можно открыть, или же на вид будет бинарник в HEX коде, как на винде?))

  3. Просто интересно, как же можно самому защитить свой код, чтобы хотя бы ссылки не читали. Ведь я там и пароли, и ключи от playMarketa храню, а иначе никак. PlayMarket требует... Как быть-то?

Давайте немного порассуждаем. )

Ответы

▲ 3

Ответ на вопрос в заголовке — да, можно. И код на C++ будет скомпилирован в нативный код для платформы (как уже сказали в комментариях — в *.so), в Java он превратиться никак не сможет.

Формально говоря, защитить код никак нельзя. Хотя бы потому, что все, что делает ОС при развертывании APK можно сделать вручную — у вас есть вся необходимая информация. Но можно серьезно усложнить реверс-инженеринг приложения. Более-менее стандартный путь — обфускация и оптимизация с помощью ProGuard.

Ключи для API, насколько я знаю, многие беспечно хранят как строковые константы, в более разумном случае делают обфускацию вручную (разбиение на несколько, простое кодирование в другой формат и так далее). Здесь нужно понимать, что ключ в принципе за конечное время все равно восстановить можно по той же причине — вы можете повторить действия ОС в рантайме, сэмулировать выполнение кода и отловить вызов API, провести атаку man-in-the-middle по сети и так далее.