2013-07-02 2 views
6

Ich habe eine Root-Anwendung, die die SQLite-Datenbank von WhatsApp liest. Ich verwende die Binärdatei sqlite, um die SQL-Abfrage auszuführen, und lese die Ergebnisse in meine App.Wie kann ich die SQLite-Programmdatei auf einem Android-Gerät installieren?

Nun, das alles funktioniert gut, aber ich habe festgestellt, dass die SQLite ausführbare Datei auf einigen Geräten, vor allem das Galaxy S3 GT-I9300 fehlt. (Ich kann dies durch meine Crash-Statistiken sehen.)

Meine Anwendung installiert auch die sqlite3 ausführbare Datei auf dem Telefon des Benutzers. Die ausführbare SQLite muss sich unter /system/xbin/sqlite3 oder /system/bin/sqlite3 befinden. Ich habe die sqlite3 Binärdatei mit meiner Anwendung in der assets gebündelt und meine Anwendung entpackt die Assets und kopiert sie an den richtigen Speicherort. Ich extrahierte die sqlite3 Binärdatei aus dem Android-Emulator.

Jetzt habe ich Fehler gesehen, dass die Bibliotheksdatei libncurses.so fehlt. Auf meinem Telefon befindet sich diese Datei unter .

Nun, sollte ich auch die libncurses.so Datei mit meiner Anwendung bündeln? Gibt es noch etwas, das ich bündeln müsste?

Wenn es eine bessere Möglichkeit gibt, sqlite3 auf dem Gerät zu bekommen, werde ich mich freuen, es zu hören.

+0

Welche binären verwenden Sie? Ich nehme an, es ist das ["Precompiled Binary für Linux"] (http://www.sqlite.org/download.html)? – RandomSeed

+0

Die binäre bin ich aus dem Android Jelly Bean Emulator. Ich habe 'adb' verwendet, um es aus dem Bild zu ziehen. –

Antwort

1
+1

StackOverflow ist für konstruktive Diskussionen und Antworten gedacht und nicht für Store-Links ohne ordnungsgemäße Erklärung. Obwohl ich Ihre Eingabe sehr zu schätzen weiß, möchte ich den Inhalt dieser Site weiterhin nützlich halten. Vielen Dank. –

+4

@Mridang - Marshallinos Beitrag ist eigentlich der nützlichste in dem Thread. –

+3

Diese Anwendung hat leider eine kleine Einschränkung. Es wird mit einer statischen Kopie der sqlite-Bibliotheken erstellt, was keine Abhängigkeitsprobleme mit den Bibliotheken des Telefons bedeutet. Leider ist die zum Erstellen der Binärdatei verwendete statische Bibliothek eine unmodifizierte Version von sqlite.org und lässt einige Google-Erweiterungen für Android aus. Beispielsweise wird die Sortierung des PHONEBOOK-Typs weggelassen. Während die statische Binärdatei von dieser App für die meisten Dinge funktioniert, gibt es Situationen, in denen dies nicht der Fall ist. Eine Kopie der Binärdatei von einem Emulator-Image funktionierte am besten für mich. – etherfish

0

Wenn Sie Abhängigkeiten entkommen möchten, bauen Sie es einfach mit allen benötigten Bibliotheken statisch verknüpft.

+2

Könnten Sie näher erläutern, wie ich das tun könnte? Ich weiß nicht viel über make und gcc, aber mit ein wenig Hilfe könnte ich es schaffen. Vielen Dank. –

+0

@MridangAgarwalla Ich kann dir hier nicht viel helfen, kann nur vorschlagen, Umgebung einzurichten, um voll Android zu bauen und es irgendwie zu ändern, oder zu Cyanogen-Gemeinschaft gehen und Hilfe dort fragen. – Vasaka

Verwandte Themen