2013-03-28 16 views
5

Chcę skompilować i uruchomić .c Pliki, które są wysyłane do mojej AndroidApp. Chcę skompilować na ARM .c Pliki dla ARM. Używam Galaxy Nexus z Androidem 4.2. Mam zainstalowany system Android SDK i Android NDK Zrobiłem to z Terminal IDE, ale nie chcę skompilować go ręcznie z Terminalu. Teraz pobrałem GCC na Androida (android-gcc-4.4.0) i nie wiem, jak dodać to poprawnie do mojej aplikacji i jak skompilować się z nią z poziomu kodu Java.Skompiluj kod C na telefonie z Androidem

Znam mnóstwo rzeczy w internecie na ten temat, ale żaden z nich naprawdę pomógł mi dowiedzieć się, jak to zrobić

Więc mój problem jest: Jak mogę korzystać z Android/NDK toolchain z moim Aplikacja na Androida lub dowolny inny zestaw narzędzi do kompilowania, a następnie uruchamiania plików .c.

EDIT: ja teraz mam android-gcc rozpakowany prawo na moim telefonie w katalogu plików (dane/dane /.../ plików). Chcę połączyć się z kompilatorem gcc w telefonie, aby skompilować plik .c. Próbowałem użyć:

String[] cmds={MainActivity.this.getFilesDir() + "/android-gcc-4.4.0/bin/arm-eabi-gcc-4.4.0", "-c", file_path}; 
String result = ""; 
Process p = Runtime.getRuntime().exec(cmds); 
BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); 
while ((line = in.readLine()) != null) 
{ 
    result += line + "\n"; 
} 
alert_dialog("Output", result); // Creates and displays an alert dialog 
in.close(); 
} 
catch (Exception e) 
{ 
    alert_dialog("Error", e.toString() + "\n" + e.getMessage()); 
} 

To było moje podejście powołując gcc na Androida, ale tylko uzyskać następujący wyjątek: java.io.IOException: Błąd działa exec(). Command [...] Katalog roboczy: null Środowisko null.

Czy ktoś ma pojęcia, jak wywołać kompilator android-gcc poprawnie w telefonie?

Każda pomoc mile widziane i dzięki z góry

Odpowiedz

-1

To nie jest oficjalnie obsługiwany scenariusz; Żaden system operacyjny warty swojej soli nie pozwoliłby uprzywilejowanym aplikacjom instalować kodu wykonywalnego na urządzeniu.

Na zrootowanym telefonie możesz mieć trochę szczęścia; ale nadal trzeba by utworzyć zestaw narzędzi od zera. NDK nigdy nie było przeznaczone do tego. Nie ma smaku NDK, który działa na ARM.

+1

Nie zgadzam się z tobą, ale jak to działa? https://play.google.com/store/apps/details?id=com.n0n3m4.droidc&hl=en –

+0

Czy działa bez uprawnień roota? –

+0

Tak. Właśnie wypróbowałem to na Nexusie 7, bez korzenia. –

Powiązane problemy