Как ускорить сборку системы Android

#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