2010-11-01 10 views
7

Ich habe Android-Quellcode in meinem System und es funktioniert gut. Aber wenn ich einige Änderungen in Android-Quelldateien mache und "make" führe, erzeugt/aktualisiert es keine Dateien. Bitte korrigiere mich, wenn ich falsch liege,Wie Androider Quellcode nach Änderungen in Android-Quelldateien neu erstellen

i) Das System sollte eine neue system.img Datei generieren, wenn sich Änderungen ergeben wurde zu seinem Quellcode gemacht

ii) android Kernel-Datei-zImage Datei mit einer Änderung nicht einmal ändern, wenn wir

einer andere Frage Änderungen am Quellcode vornehmen, wenn ich einen neuen Bibliothek Ordner innerhalb erstellen/libcore wird beim Kompilieren automatisch übernommen. Um einen neuen Bibliotheksordner außerhalb von/libcore zu erstellen, habe ich den Pfad in /build/core/main.mk und .classpath hinzugefügt. Trotzdem wird es während der Kompilation nicht aufgenommen. Kann jemand bitte bestätigen, wo wir alle Änderungen für das Hinzufügen einer neuen Bibliotheksdatei außerhalb/libcore

Grüße machen müssen, Yogesh

+0

nie hatte dieses Problem, vielleicht, weil ich MOTODEV Studio von Android (volle Sonnenfinsternis mit Plugins installieren) http://developer.motorola.com/docstools/motodevstudio/download/ Was benutzen Sie? – Jim

+2

Ich habe nicht die Absicht, eine Anwendung für Android zu erstellen, stattdessen möchte ich einige Änderungen in Android-integrierten Dateien vornehmen und die Quelle neu kompilieren, so dass es an den Emulator gesendet werden kann, auf dem alle Anwendungen ausgeführt werden können. – JoshMachine

+0

@JoshMachine Ich habe auch das gleiche Problem. Ich habe ein paar Logs in den Quelldateien hinzugefügt und einen make gemacht. Wie haben Sie Ihr Problem gelöst? –

Antwort

10

Dieses auf genaue Repository ab, die Sie ausgecheckt haben. Aber für die meisten ihnen das folgende Rezept funktioniert:

http://source.android.com/source/download.html

Hinweis, wenn Sie die aktuellste Build verwenden Sie 64-Bit-System

UPDATE haben muss: die Seite oben Aus irgendeinem Grund ist fehlende lebenswichtige Schritte. Also hier sind sie

sind

Nachdem Sie ‚repo sync‘ erfolgt Schritt (dauert eine Weile, aber ich nehme an, dass Sie getan haben, da Sie die Quelldateien), wie folgt vorgehen:

$ . build/envsetup.sh 
$ lunch 

Der letzte Befehl wird geben Sie eine Liste von Optionen für welche Plattform Sie erstellen möchten. Wenn Sie für den Emulator erstellen möchten, wählen Sie Voll-Eng. Andernfalls wählen Sie eine für Ihren spezifischen Gerätehersteller.

Nach der Wahl der Plattform stellen Sie sicher, dass Sie zuerst alles machen, weil die gesamte Android-Plattform sehr voneinander abhängig ist. Sie müssen also sicherstellen, dass Sie alle Komponenten haben.

Bei der Entwicklung können Sie einzelne Komponenten ziemlich schnell bauen. Durch die Verwendung des folgenden Befehls ein:

mmm <component_directory_name> 

Zum Beispiel:

mmm external/rsync 

Auch dann, wenn das Build-System nicht die Ausgabe und Zwischen Dateien mit dem Quellcode setzen verändern. Alles geht in out/Zielverzeichnis.

+0

Hallo Vlad, also wenn ich ein paar Änderungen in den Quelldateien mache. Sagen wir, ich füge ein paar Logs hinzu und mache dann make, werden die neuen Images in out/target/product diese Änderungen bekommen? –

+0

Tut mir leid, ich habe Android nicht schon seit Ewigkeiten so gebaut. Bei älteren Versionen würden sich keine Bilder ändern. Sie müssen eine vollständige Neuerstellung erstellen, um neue Bilder zu erhalten. Habe keine Ahnung was neue Android Plattformen in diesem Fall tun. – Vlad

+0

Ich habe ein paar Änderungen AndroidManifest.xml, und kompilieren Sie diese App über mm -B, aber nach dem erneuten Öffnen dieser Datei waren meine Änderungen weg! –

4

Es hängt von der Änderung ab, die Sie vornehmen möchten.

In einem einfachen Fall, wenn die Änderung lokal (zB einige neue Zeilen in eine bestehende Android-Quelldateien genannt xxx.c Hinzufügen), können Sie einfach laufen:

mm -B (under the root directory of xxx.c) 
adb remount 
adb sync 
adb reboot 

In anderen Fällen, sagen wir, Sie Erstellen Sie einen neuen Systemdienst, um den alten zu ersetzen, der zum Zeitpunkt des Starts gestartet wird, wie in der Datei init.rc gezeigt.Dann müssen Sie wahrscheinlich zu:

  1. aktualisiert init.rc Datei
  2. Bau ganz android Quelle
  3. Flash-neues Bild
+1

ein 'adb root' ist wahrscheinlich notwendig, dass adb remount funktioniert. 'adb root' und' adb remount' sind nur für user-debug und eng builds von android verfügbar –

Verwandte Themen