2012-01-04 1 views
1

Nous construisons une plate-forme Android pour un produit intégré. Fondamentalement, vous pouvez le considérer comme une boîte android enracinée.
Comment appeler une classe Java comme J2SE JVM dans Android sur un appareil rooté?

Nous avons du code Java qui a été développé pour l'environnement J2SE standard. Je le porte sur Android. Une partie du code a été enveloppé dans un service android et lancé dans un service. Certaines parties nécessitent l'exécution de privilèges super-utilisateur. Comme l'ouverture de fichiers sous le dossier/dev, la liaison aux ports tcp ci-dessous 1024 etc.

Je me demande si je peux envelopper ce code dans un style J2SE classe Java public et invoquer à l'aide Dalvik directement (quelque chose comme « Dalvik - classpath < chemins vers les fichiers> mycompany.MyWrapper ").
J'apprécie tous les liens qui décrivent un moyen de le faire.

Merci

Répondre

2

Vous pouvez appeler directement à partir Dalvik la ligne de commande, et d'exécuter une classe avec la principale méthode statique standard (String [] args).

dalvikvm -cp <jar_file> <class_name>

Pour un exemple complet, disons que vous avez la définition de classe suivante dans Hello.java

public class Hello 
{ 
    public static void main(String[] args) { 
     System.out.println("Hello World"); 
    } 
} 

Et puis, d'exécuter effectivement sur un appareil:

javac Hello.java 
dx --dex --output=classes.dex Hello.class 
zip Hello.zip classes.dex 
adb push Hello.zip /sdcard/ 
adb shell dalvikvm -cp /sdcard/Hello.zip Hello 
+0

Comme une note secondaire - cela ne nécessite même pas un appareil enraciné. – JesusFreke

Questions connexes