Por que apps java no Pc precisam da JRE e no Android não? O Android usa JVM?

13 respostas Resolvido
javaandroidprogramação
Gabriel432135
Eu vi um esquema, mostrando como o java funciona, e vi que em alguns casos, usam interpretadores no lugar do compilador, e em outros, o código é diretamente interpretado por uma "cpu java". O que isso significa? Onde são usadas cpus java? É comum?

13 Respostas

darlan_machado

O google “fundiu” o mecanismo da jvm dentro do linux que originou o kernel android (e o android, por fim).

Gabriel432135

huuum, interessante, mas
O que é “cpu java”?

darlan_machado

Desde que: cpu seja central process unit, cpu java nada mais é que a própria jvm.

TerraSkilll

Pode posta um link ou imagem desse esquema que você viu, para entendermos do que você está falando?

Respondendo suas perguntas:

Por que apps java no Pc precisam da JRE e no Android não?

O Android vem com uma VM embutida própria, portanto não precisa de uma VM à parte como nos PCs (JRE, por exemplo).

O Android usa JVM?

Usa uma VM própria. Como dito pelo darlan acima, é fundida com o próprio sistema.

Eu vi um esquema, mostrando como o java funciona, e vi que em alguns casos, usam interpretadores no lugar do compilador, e em outros, o código é diretamente interpretado por uma "cpu java. O que isso significa?

Sem links de referência, não dá pra saber bem do que você está falando.

Onde são usadas cpus java? É comum?

Se for o que imagino, são sistemas onde a JVM está codificada no hardware. E não são comuns.

Não é o caso do Android, onde a VM é software.

Abraço.

Gabriel432135

Ok, interessante. Vou procurar o link aqui e mandar

Gabriel432135

https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwj9jMWB__HmAhWyGLkGHQVAChMQjRx6BAgBEAQ&url=http%3A%2F%2Fwww.silviogarbes.com.br%2Fdesenvolvimento-web%2Ftutorial-de-programacao-java&psig=AOvVaw2EyyB1B3FGYbqNpKBM5htS&ust=1578503789190637

Esse é´o link da imagem

darlan_machado

Basta olhar para a imagem e entender que se trata de um SO java.

Gabriel432135

Vlw

wldomiciano
Solucao aceita

Como já disseram o Android não usa uma Java Virtual Machine, ele usa sua própria VM.

Só que essa VM não é apenas uma outra VM que executa Java. Na verdade ela não executa Java.

Enquanto uma JVM executa arquivos .class que seguem o formato definido aqui:
https://docs.oracle.com/javase/specs/jvms/se13/html/jvms-2.html#jvms-2.1

A Dalvik ou o ART executam arquivos .dex que seguem o formato definido aqui:
https://source.android.com/devices/tech/dalvik/dex-format

Mais informação aqui: https://source.android.com/devices/tech/dalvik

Só pra ficar claro até onde o Android usa Java de fato, o processo é o seguinte:

  1. O código Java é compilado para bytecode no formato class usando o javac normalmente
  2. Usa-se a ferramenta d8 para compilar os bytecodes Java para os bytecode DEX
Gabriel432135

Não sabia disso, por isso que quando eu descompactava os apks, eu via um tanto de arquivos .dex no lugar de .class
Que legal

j-menezes

Bom o pessoal já respondeu e muito bem esse tópico.
Mas os caras da Sun eram mais sonhadores que negociantes, e tenho saudades deles.
Do JavaOS ( descontinuado )

Olha que brinquedinho legal esse, Java CPU Card e JCOP - Java Card Operating System (Esses tão bem vivos)

Gabriel432135

VIU, REALMENTE EXISTIU UMA CPU JAVA KKK, Então isso era um projeto da sun… Interessante. O java sempre me surpreendendo. Vivendo e aprendendo

j-menezes

Ainda existe. ( risos)
Pequenos dispositivos é um mercado gigantesco, maior que desktop.
Ele é mais silencioso tambem, porque você usa um pequeno dispositivo e não vê de cara o que tem lá dentro.

Criado 7 de janeiro de 2020
Ultima resposta 10 de jan. de 2020
Respostas 13
Participantes 5