Beiträge von BeRo im Thema „Android basierte Spielkonsole "OUYA"“

    Das Rechtesystem bei Android setzt auf Prozessebene an (also u.a. Unix-Rechte usw.), nicht (nur) auf API-Ebene. U.a. deswegen bekommt ja auch jede App ihre eigene UID. Insofern spielt die VM beim Rechtesystem keine Rolle, und deswegen wird Native Code auch vom Rechtesystem unterstützt.


    Richtig, zusätzlich ist der Linux-Kernel bei Android so leicht modifiziert bzw. erweitert, so dass das Android Permission System auch bei nativen Code greift. z.B. eine App ohne android.permission.INTERNET Permission kann keine Sockets erstellen (und somit nicht aufs Netz zugreifen), auch nicht über nativen Code dann.

    Klar kann man nativen Code unter Android verwenden, ungefähr ab Android 1.5 oder 1.6 offziell über den JNI-Wrapper Umweg (davor auch bereits aber damals noch inoffziell), wo man ein Stück Java Code für eine JNI-Trampoline schreiben musste, um den nativen Code nachzuladen und per Hook-Exports aus der nativen Codelib anzuspringen (z.B. frameweise und soundbufferweise bei Games), und bei ab Android 2.3 geht es auch nun nahezu nativ ohne den eigenen Java-JNI-Trampoline-Kram.

    Meine Android Apps bzw. Android Games, die nativen Code verwenden, sind z.B.:

    Bitte melde dich an, um diesen Link zu sehen. (fast ganz, 99% pascal, 1% java wegen jni trampoline)
    Bitte melde dich an, um diesen Link zu sehen. (fast ganz, 99% pascal, 1% java wegen jni trampoline)
    Bitte melde dich an, um diesen Link zu sehen. (30% pascal für xm playerengine + soundsystemcode, 70% java für gameplay, grafik etc.)
    Bitte melde dich an, um diesen Link zu sehen. (90% pascal für meine kleine xm playerengine, 10% java wegen GUI)

    Also Java und nativen Code zu mischen geht bei Android also auch, wie ich bei Cylindix und BeRoXM gemacht habe, während Foembjump und Scenemon hingegen nahezu komplett nativ sind.

    Und hier findet man das NDK (Native Development Kit) dafür: Bitte melde dich an, um diesen Link zu sehen.

    und hier ein Beispiel für ab Android 2.3 ohne JNI-Trampoline: Bitte melde dich an, um diesen Link zu sehen.