2016-01-20 2 views
0

При создании леденец, я мог бы составить свои изменения, запустив:Как я могу эффективно создать AOSP (Marshmallow)?

make clean-framework clean-services clean-services.core services.core services framework && make snod 

Однако это не является надежным для Зефир. Иногда это работает, и иногда мои изменения не собираются. Я также видел, что это создает не загружаемую сборку, заставляя меня делать полный make -j8, который занимает почти час на моей машине.

Я пропустил новую цель сборки? Любые советы высоко ценится.

Спасибо.

+1

У вас есть настройка USE_CCACHE правильно? Когда я делаю номинальное изменение и запускаю «make -jN», он часто компилирует Marshmallow через пару минут. – Chris

+0

@ Крис да, я 'экспортирую USE_CCACHE = 1' в мой' .bashrc' и подтвердил, что он работает. – BLuFeNiX

+0

Возможно, вам не хватает какой-либо зависимости. Выполните следующие действия: сравните файлы img после полной сборки и частичного, чтобы вы могли понять, куда вы упускаете. –

ответ

0

Причина, по которой мои частичные сборки не удалось загрузить, вызвана dex pre-optimization. Когда функция dexpreopt включена, вы не можете перекомпилировать некоторые части системного образа, так как они выровнены по байтам и оптимизированы вместе во время компиляции. После отключения dexpreopt и выполнения make clobber && make -j6, я смог выполнять частичные сборки без проблем.

Чтобы отключить dexpreopt установите следующие переменные в вашем терминале:

export WITH_DEXPREOPT=false 
export DISABLE_DEXPREOPT=true 

Совет: добавьте выше ваш build/envsetup.sh или ваш .bashrc так что вам не нужно помнить каждый раз.

СОВЕТ 2: Существует также DONT_DEXPREOPT_PREBUILTS, но у меня никогда не было проблем с этим, поэтому я оставляю его установленным по умолчанию, то есть false. Если вы установите эту переменную на true, для устройства, которое будет загружаться после вашей вспышки, потребуется очень много времени (легко через час), поскольку сначала необходимо оптимизировать все.

Смежные вопросы