В некоторых случаях Eclipse добавляет в apk исходные коды из каталога jni.
Крайне неприятный повод для написания данной заметки.
Думаю, все представляют себе, какой проблемой может стать публикация apk, содержащего собственный исходный код.
Обнаружено это было совершенно случайно.
В процессе разработки apk нашего проекта весил 19 мегабайт.
Перед релизом мы переосмыслили менеджмент проекта и провели несколько изменений в структуре каталогов.
В частности, перенесли исходные коды из jni во внешний каталог.
И вдруг, при сборке проект похудел до 13 мегабайт. При этом полностью сохраняя работоспособность.
Такое изменение поведения проекта нельзя оставлять без внимания. И мы стали копаться — что же изменилось.
Каково же было наше удивление, когда при распаковке apk предыдущих версий (да, мы храним все подписанные сборки) оказалось, что они в себе содержат все содержимое каталога jni! Те самые 6 мегабайт.
Когда мы перенесли исходные коды на уровень выше проекта, они вышли из зоны ответственности сборщика и перестали добавляться в apk.
На данный момент мы еще не разобрались, почему Eclipse при сборке добавляет jni к пакету, но уже считаем важным сообщить об этой возможности сообществу.
Я крайне рад, что мы обнаружили эту ситуацию до полноценной публикации и начала продвижения.
Страшно представить, на что можно нарваться, опубликовав собственные исходники. Но ещё страшнее опубликовать исходные коды закрытых лицензируемых библиотек.
Автор: AllexIn