Ich möchte eine native Android-Kommandozeilenanwendung in eine apk packen. Ich habe den Anwendungsaufbau mit ndk-build, der jni / Android.mk verwendet. Die Ausgabe erfolgt in libs / armeabi / & lt; MyApp & gt ;. Ich habe auch das apk Gebäude mit Ameise. Die Apk scheint jedoch die Befehlszeilenanwendung nicht zu übernehmen. Wenn ich die apk entzippe die App ist nicht da drin.
Was muss ich tun, um eine vorgefertigte Kommandozeilen-App zu integrieren?
Was muss ich tun, damit ant läuft? (Dies wurde bereits beantwortet: Android NDK Build mit ANT-Skript )
>Siehe Android NDK-Build mit ANT-Skript .
Sie können die Binärdatei mit aapt
zur APK hinzufügen, wenn Ant sie nicht automatisch aus libs/armeabi
kopiert, siehe Dokumentation für ein neues Element im Ant-Skript .
Ich glaube, dass die Datei mit ausführbaren Berechtigungen in /data/data/your.package.full.name/lib
korrekt extrahiert wird.
Ant Build beinhaltet einen Schritt namens " ApkBuilder ", die nur Dateien von libs/armeabi
hinzufügt, die dem Muster ^.+\.so$
oder gdbserver
entsprechen - letzteres nur für den Debug-Build.
Es ist jedoch nicht genug, die ausführbare Datei in "myexecutable.so" umzubenennen: Diese Datei wird nicht vom APK-Installationsprogramm auf dem Gerät extrahiert.
Es ist ausreichend, die ausführbare Datei in " lib myexecutable .so " umzubenennen: diese Datei wird vom APK extrahiert Installer Paket-Manager auf dem Gerät zu /data/data/your.package.full.name/lib
mit ausführbaren Berechtigungen.
Ich persönlich möchte dieser nicht-tatsächlich-a-Bibliothek einen besonderen Namen geben, z. lib...ffmpeg...so
.
Im Allgemeinen solltest du deine Befehlszeilen-App in den Ordner Assets
stellen und dann AssetManager
verwenden, um dein Asset zu extrahieren (vergiss nicht chmod
nach der Extraktion!). Aber es wird ein Problem geben, wo es zu extrahieren ist, weil nicht jedes Verzeichnis in Android ausführbare Binärdateien speichern kann. Auf Android 2.2 habe ich /cache
ausprobiert und es funktioniert. Kann nicht für neuere Androids sagen.
Sorry, kann keine Empfehlungen in Bezug auf Ant geben.
Tags und Links android command-line android-ndk