#linux-kernel #android-build #android-kernel
#linux-ядро #android-сборка #android-ядро
Вопрос:
Как правило, есть ли какие-либо шаги / приемы для ускорения сборки Android, кроме опции -jN. Даже для изменения одной строки в ядре, запустив «make bootimage», система сборки Android сканирует все Android.mk . Есть какие — нибудь способы хотя бы это пропустить?
Комментарии:
1. Вы пытались использовать команду ‘mmm’?
2. mmm может компилировать только отдельные библиотеки / двоичные файлы, передавая путь в качестве аргумента, AFAIK, он не может скомпилировать цель сборки напрямую
Ответ №1:
Ссылаясь на build /core / Makefile, это показывает, что мы можем видеть последовательность команд, выполняемых во время сборки, передавая SHOW_COMMANDS=1 при сборке Android, как показано ниже,
SHOW_COMMANDS=1 V=1 make bootimage -j1 -n >bootimage.txt
Из этого мы можем извлечь команды, которые необходимы для нашего случая, и мы можем поместить в скрипт для сборки. например, bootimage.sh
Ответ №2:
Здесь вы можете найти краткое изложение методов ускорения: http://oldwiki.cyanogenmod.org/wiki/Howto:_Speed_up_building
Используйте SSD-накопитель и мощный компьютер Linux с 16 ГБ оперативной памяти (не виртуальную машину).
Существует также идея RAM-накопителя, который работает безумно быстро, но я не уверен, возможно ли это с учетом объема пространства, необходимого Android для сборки.
Ответ №3:
Как сказано в ответах Balamurugan A.,
Если вы вызовете make target(module name/droid)
, система компиляции Android просканирует все Android.mk для загрузки и поиска цели. Это система make, которую нужно сделать, чтобы найти все цели для последующей компиляции.
Если вы хотите скомпилировать только один модуль, вы можете использовать mm/mmm
. И если вы хотите увеличить скорость компиляции для системы, вы можете открыть CCache.
Комментарии:
1. Да. «Если вы вызовете make target(имя модуля / droid), система компиляции Android просканирует все Android.mk для заряжания и поиска цели». Как избежать сканирования? И, я думаю, что в mmm и CCache то же самое уже было предложено skoperst, и я тоже ответил ему.
2. @BalamuruganA Спасибо за ваше предложение. И здесь я хочу дать больше информации о CCache. 🙂
Ответ №4:
Для сборки только ядра это сэкономило мне кучу времени в Android L, M, N:-
m -j8 ONE_SHOT_MAKEFILE=build/target/board/Android.mk bootimage