Pull to refresh

Неприятный сюрприз от Eclipse

Reading time1 min
Views31K
image
В некоторых случаях Eclipse добавляет в apk исходные коды из каталога jni.

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

Я крайне рад, что мы обнаружили эту ситуацию до полноценной публикации и начала продвижения.
Страшно представить, на что можно нарваться, опубликовав собственные исходники. Но ещё страшнее опубликовать исходные коды закрытых лицензируемых библиотек.

UPD:
Справедливости ради, дабы не давать еще один повод обругать Eclipse:
Eclipse в данном тексте стоить читать как ADT. Ведь это не сам Eclipse пакет собирает, а ADT.
Tags:
Hubs:
+50
Comments34

Articles