Debug vs. Release-builds des Android NDK
Arbeite ich an einem großen Spiel-engine, die portiert werden muss, um Android. Der gesamte code ist in C/C++, so dass wir die Portierung über das NDK. Ich habe alles, was Gebäude, aber nach viel reinigen, ich bin mir noch unsicher, was die beste Methode ist für den Aufbau Debug vs. Release-Versionen unserer .so Datei. Dinge zu verändern, die von hand jedes mal ist immer alt.
Haben Sie andere Anwendung.mk-Dateien für jedes Ziel? Oder gibt es eine Möglichkeit, mehrere Ziele in einer einzigen Android.mk-Datei unter dem jni/Verzeichnis? Oder vielleicht eine Dritte Möglichkeit könnte sein, schreiben einen standard-makefile, die Umgebungsvariablen festgelegt, dass die Android.mk-Datei verwendet, um zu informieren, den build-Prozess?
Schließlich, eine Letzte Frage zu android:debug-Version einer Flagge, die gesetzt werden muss, in der AndroidManifest.xml Datei. Was das eigentlich keine Auswirkungen auf den generierten systemeigenen code auf das Gerät kopiert?
Besten und vielen Dank,
Kevin
- Nun, wie entscheidest du Debug oder Release ohnehin von hand? Der NDK Proben nicht scheinen, um eine debug-oder release-Fahnen, noch haben Sie die Verwendung einer option-Ox.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Separate Unterverzeichnisse, alle mit Ihren eigenen Android.mk (shared und static libs), aber nur einer Anwendung.mk für mich.
Meiner Anwendung.mk ist einfach:
Es ist ein bisschen ausbreiten, zumindest für mich, mit dem jni/Android.mk + - Anwendung.mk layout.
Anwendung.mk hat
APP_OPTIM := debug
Dann im application-element von AndroidManifest.xml ich habe
android:debuggable="true"
Wenn Sie bauen mit ndk-build, verwendet es diese manifest-flag, um zu bestimmen, Optimierung (was ist sinnvoll zu deaktivieren, oder auf, aus, die für die Profilerstellung, etc.)
(Ein Wenig Off-topic) ich habe vor kurzem lief über
https://code.google.com/p/android-ndk-profiler/
Was, wenn Sie kombiniert mit http://code.google.com/p/jrfonseca/wiki/Gprof2Dot
Erzeugt einige hübsche Bilder helfen, meinen geringen Verstand begreifen, wie die Dinge laufen werden über das Telefon selbst.
Sind Sie nicht erforderlich, um das Android.mk system zu bauen, Ihre .so ist. Persönlich, ich benutze meine eigenen Makefile ist mit den Zielen, die ich brauche, und dies ermöglicht eine sehr standardisierte debug vs. release-build-Spezifikation.
Verwende ich eine einzige Datei, eine Bibliothek zu errichten, die für verschiedene Ziele. In der Anwendung ist.mk fügen Sie diese "APP_ABI := armeabi armeabi-v7a" es funktioniert für mich.