Инкрементальная сборка Android NDK
В настоящее время я работаю над большим Android-приложением, использующим огромное количество кода на C++. Он компилируется и работает, пока все хорошо.
К сожалению, каждый раз, когда я изменяю что-то в структуре моего исходного кода (добавляю / удаляю / переименовываю / перемещаю файл), что происходит довольно часто, ndk-build перестраивает весь источник, даже нетронутые файлы.
Кто-нибудь знает, как я могу настроить Android NDK, чтобы построить как-то постепенно?
заранее спасибо
1 ответ
Мне надоела система сборки NDK, я немного изучил ее и написал свои собственные файлы сборки. Это было не сложно.
Однако затем мне было указано, что, сделав это, я должен взять на себя ответственность за отслеживание будущих изменений в платформе, например, если возникнет необходимость в поставке двоичных файлов для дополнительных типов процессоров, мне придется изменить свой доморощенный построить решение, чтобы сделать это тоже.
В других случаях у меня иногда были проекты с двумя системами сборки - одна для быстрых экспериментов, другая для развертываемых сборок. Время, потраченное на обновление как сейчас, так и потом, было сэкономлено много раз в увеличении скорости для повседневной работы. При условии, что мне приходилось делать реальную сборку, по крайней мере, каждую неделю или две, вещи никогда не выходили за рамки согласованности (и оба сценария сборки были в системе контроля версий, поэтому была история, которую нужно было изучить). Нечто подобное можно сделать с помощью специального файла сборки для отладочных сборок и при этом использовать систему сборки NDK для развертываемых пакетов.
(В одном случае, когда я проводил много экспериментов на краю того, что позволяет платформа, на самом деле мой make-файл помещал на устройство обновленный файл.so и дал моему приложению одну из обескураженных кнопок для выхода из системы, чтобы я мог перезапустить его. использование обновленной нативной библиотеки без необходимости перестраивать и переустанавливать apk)