76
submitted 1 year ago* (last edited 1 year ago) by octalfudge@lemmy.world to c/apple_enthusiast@lemmy.world
top 27 comments
sorted by: hot top controversial new old
[-] Sheltac@lemmy.world 34 points 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 -2 points 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 20 points 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 36 points 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.

[-] Sheltac@lemmy.world 9 points 1 year ago

There you go, that’s exactly what I was thinking. Thanks!

[-] fartsparkles@sh.itjust.works 8 points 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 7 points 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.

[-] fartsparkles@sh.itjust.works 1 points 1 year ago

Thank you for the insight!

[-] vzq@lemmy.blahaj.zone 10 points 1 year ago

Dalvik/ART is essentially the same idea. It uses dalvik byte code, much in the same way the JVM operates.

There’s some complexity (it’s designed to do different things, and the whole Oracle lawsuits added some wrinkles) but it’s not so different as you imply.

[-] K0bin@feddit.de 2 points 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.

[-] Immersive_Matthew@sh.itjust.works 11 points 1 year ago

I have no experience with iOS but I do develop for the Meta Quest which runs on Android and wow is it jank. One solution for apps up to 2GB and another for up to 4GB and yet another, much more complicated solution for apps over 4GB. Is iOS like this too?

[-] steeev@midwest.social 5 points 1 year ago

TIL that a microsecond exists and 1 millisecond is the same as 1,000 microseconds.

[-] FleetingTit@feddit.de 7 points 1 year ago

Wt... oh, congratulations on being one of todays lucky 10k

this post was submitted on 12 Aug 2023
76 points (91.3% liked)

Apple

17241 readers
213 users here now

Welcome

to the largest Apple community on Lemmy. This is the place where we talk about everything Apple, from iOS to the exciting upcoming Apple Vision Pro. Feel free to join the discussion!

Rules:
  1. No NSFW Content
  2. No Hate Speech or Personal Attacks
  3. No Ads / Spamming
    Self promotion is only allowed in the pinned monthly thread

Lemmy Code of Conduct

Communities of Interest:

Apple Hardware
Apple TV
Apple Watch
iPad
iPhone
Mac
Vintage Apple

Apple Software
iOS
iPadOS
macOS
tvOS
watchOS
Shortcuts
Xcode

Community banner courtesy of u/Antsomnia.

founded 1 year ago
MODERATORS