• Sheltac@lemmy.world
    link
    fedilink
    arrow-up
    39
    ·
    1 year ago

    Interesting, I always thought it had to do with Android’s ungodly software stack which at some point involves, of all things, fucking java.

    • fartsparkles@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      9
      ·
      1 year ago

      Android doesn’t use Java at a byte-code level and never has, as far as I can tell. Source code was written in Java since mobile developers were so used to it but Android never ran the JVM, they do their own thing with Java source.

      You can dislike Java syntax but the software stack on Android wasn’t Java’s.

      • Sheltac@lemmy.world
        link
        fedilink
        arrow-up
        20
        ·
        1 year ago

        Wait, thats is very different from what I read back in the day. I know there was a point at, I dunno, android 5 where they started doing something different with java, but my impression was that android always ran a JVM of sorts. And frankly, given how it performs even on the highest-end devices, that was really easy to believe.

        I guess I need to do some research now.

        • bluefirex@lemmy.world
          link
          fedilink
          arrow-up
          36
          ·
          1 year ago

          No you’re correct. Android does run a JVM, just not Oracle’s. That has always been the case. Back in the day it was Dalvik, nowadays it’s ART.

        • fartsparkles@sh.itjust.works
          link
          fedilink
          English
          arrow-up
          9
          ·
          1 year ago

          Pretty sure it was Dalvik virtual machine that Java was compiled to byte code for before 4.4 when they deprecated Dalvik for Android Runtime (ART), fully dropping Dalvik in 5.

          • saua@troet.cafe
            link
            fedilink
            arrow-up
            7
            ·
            1 year ago

            @fartsparkles @Sheltac Android always ran dalvik bytecode and never Java bytecode
            The change to Art was just a replacement of the “VM”, but didn’t change what byte code was run. It’s similar to how Hotspot improved the Java VM while also not fundamentally changing that it’s running Java bytecode.

      • K0bin@feddit.de
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        They compile Java Bytecode to Dalvik Bytecode and run that on the Android Runtime which is a tiered JIT compiler.

        It still inherits the issues of Java such as the GC, no stack allocated value types, poor cache locality, etc. Although tbf the GC on Android is pretty fucking good these days and doesn’t pause the world anymore.