2017-01-14 2 views
1

Ich arbeite mit dem Opensource-Projekt Android. Es läuft gut, außer den Bauzeiten. Ich AOSP nur auf dem Emulator verwenden, die mit ihm kommt, so dass ich im AllgemeinenInkrementelle Build für Android Opensource Projekt

. build/environment.sh 
lunch aosp_arm-eng 
make -j4 

nach jeder Änderung AOSP umzubauen.

Problem ist, scheint dies eine vollständige Wiederherstellung der gesamten AOSP zu tun, unabhängig davon, was bereits gebaut wurde oder was ich geändert habe. Wenn ich nur eine kleine Änderung in ART mache, baut es alles neu auf, was Stunden dauert.

Jetzt ist meine Frage - wie man das vermeidet? Von dem was ich verstehe, sollte make selbst herausfinden, was es zum Wiederaufbau braucht und was nicht. Recht?

Vielleicht sollte ich nicht jedes Mal Mittagessen gehen? Was kann ich sonst noch versuchen?

Hinweise:

  • Ubuntu 16.04, gcc 5.4.0 (Standard), x64
  • Neueste 7.x-Tag von Nougat (7.1.1)
  • Ich mache ändert die Android Runtime
  • ccache konfiguriert &

Antwort

0

läuft ich gehe davon aus, dass Sie Änderungen in art Ordner machen. So erstellen Sie nur art Projekt, sollten Sie den folgenden Satz von Befehlen (nach dem ersten Build) verwenden:

source build/envsetup.sh 
lunch aosp_arm-eng 
mmm art 

Diese Befehle sollten die Änderungen neu kompilieren (siehe http://elinux.org/Android_Build_System Einzelheiten der Befehle). Da alle anderen Anwendungen und das Framework jedoch von der Laufzeitumgebung abhängen, kann es vorkommen, dass AOSP alle Abhängigkeiten erneut kompilieren muss, nachdem Sie Änderungen an art vorgenommen haben. In diesem Fall müssen Sie alle neu kompilieren (ich hatte die gleichen Probleme mit Dalvik, aber ich habe das nicht mit Kunst überprüft).

0

Ich denke, Sie müssen ccache aktivieren. Dazu den folgenden Befehl

$ export USE_CCACHE=1 
$ export CCACHE_DIR=/home/itc/.ccache // this is the path of your ccache dir 
$ prebuilts/misc/linux-x86/ccache/cache -M 50G // this for allocate ccache size 

Danach laufen sollten Sie nur einen bereinigter Build zum ersten Mal ausgeführt werden. Der nächste Build nur mit dem geänderten Code betrachten und verwenden vorkompilierte

ich Sie benötigen einen bereinigter Build Sie

$ make clean 
$ make clobber 

laufen haben, wenn Sie eine beliebige Datei von Kern libs Lauf ändern müssen

$ make installclean 

Dann wie üblich

$ . build/envsetup.sh && lunch aosp_arm-eng && make -j16 
Verwandte Themen