Salve,
sto lavorando ad un progetto che richiede il porting di un programma da Linux ad Android;
Finora si è riuscito a far funzionare la necessaria equinox3.6 (modificata) su Android e a far richiamare l'OSGi dalla stessa applicazione, ma solo attraverso la adb shell, tramite l'esecuzione di uno script che lancia un file del jar.
A questo punto dovrei creare un activity.apk che includa tutto e lo renda funzionante allo stesso modo.
Più in dettaglio, fino ad ora ho caricato un po' di archives.jar (contenenti il classes.dex) nell'emulatore: un jar per il programma stesso, un jar per equinox, altri jar di supporto.
Poi c'è il script.sh che lancia il main.class del mio programma passandogli alcuni parametri necessari al programma e ad equinox per avviarsi, il main.class lancia il framework equinox e quindi il programma può caricare i bundles e fare il suo lavoro.
Per chiarire ecco lo script di partenza:
#/bin/sh
/system/bin/dalvikvm -Xbootclasspath:/system/framework/core.jar -Xverify:none -Dosgi.debug=file:.options -Dosgi.framework=file:org.eclipse.osgi_3.6.0.v20100 517.jar -Dosgi.install.area=file: /bundles/ -Dosgi.java.profile=file: Dalvik_Core_Library-0.9.profile -Dosgi.parentClassloader=ext -Dnetserv.container.ctrlport=7001 -Dnetserv.container.serveripv4=127.0.0.1 -Djava.security.policy=all.policy -Dnetserv.security.bindableports=1024 -Dnetserv.container.user=jae -classpath org.eclipse.osgi_3.6.0.v20100517.jar:netservlaunch .jar NetServ.launch.Main -console -clean
Non ho esperienza di Android e ho cercato di creare un'attività che si comporti in modo simile al mio script, ma senza alcun successo.
Ho aggiunto tutti gli archives.jar al mio progetto con "Add External jars" e provato a lanciare il main.class come se fosse un'altra attività, utilizzando Intent e gli ho inviato i parametri utilizzando putExtra(), ma dall'altro lato, nel jar del programma, non si può recuperare e utilizzare i parametri necessari, perché si tratta di un .jar e non è un apk nel vero senso dei termine ... Non so se questo è il motivo per cui non funziona, comunque non va.
Qualche idea su come fare qualcosa di simile?
Oppure qualche consiglio su dove cercare una soluzione?
Vi ringrazio in anticipo per qualsiasi aiuto!