Como posso instalar arquivos .jar no meu Android?

9

Baixei alguns jogos em 3D, descompactei-os e obtive arquivos .jar. Como posso usá-los no Android? Eu tenho um Galaxy S rodando 2.1.

Jeevan Bhatt
fonte

Respostas:

13

Embora o Android use java, ele não suporta arquivos JAR normais. Em vez disso, ele usa um formato específico do Android chamado APK. A principal diferença é que o Android não usa a Java Virtual Machine normal, mas contém sua própria Dalvik Virtual Machine otimizada para o Android.

onik
fonte
você quer dizer que não consigo instalar o arquivo jar no android 2.1.
Jeevan Bhatt
5
@Jeevan Bhatt: Exatamente. Isso pode mudar no futuro (se alguém escrever uma JVM para Android), mas eu não prenderia a respiração.
Onik
Eu pesquisei na internet e vim a saber que o Android suporta apenas o arquivo apk, então eu preciso converter .jar em .apk por algum conversor, é verdade?
Jeevan Bhatt
4
Sim, existem alguns conversores, mas estes não são muito confiáveis. O problema é que o Android usa uma parte de toda a biblioteca java e adiciona suas próprias bibliotecas para controlar a maioria dos recursos. Por exemplo, as classes da Interface Gráfica do Usuário não podem ser usadas no Android (por exemplo, swing). Além disso, o conversor precisa reescrever todos os eventos da interface do usuário, como a tela sensível ao toque / teclado. Aparentemente, alguns conversores podem fazer isso para os applets MIDP (J2ME) usados ​​em telefones mais antigos, mas os aplicativos Java normais (provavelmente) não funcionarão. Você pode experimentar os conversores, mas provavelmente o resultado será lento, com erros ou com falha.
Onik
9

Eu gostaria de discordar parcialmente de Ryan Conrad & Onik.

Eu tenho um Samsung Spica e ele foi pré-carregado com um aplicativo enquanto estava executando a v1.6 e agora executando o 2.1 (ambas as versões oficiais da Samsung Índia) - chamado Java ME Apps.

Estou executando vários aplicativos Java (destinados a telefones não Android) através dele.

Ambos são arquivos JAR e, uma vez executados pelo aplicativo Java ME, são executados conforme o esperado.

Para resumir, existe uma maneira de executar aplicativos JAR no Android. No entanto, concordo com tudo o mais mencionado APKs WRT e Dalvik.

Sparx
fonte
Que a Fórmula 1 App é ligada parece ser um aplicativo nativo do Android e não um Java / J2ME app ..
Irfan
11
Agora é ... quando eu o publiquei originalmente, não havia uma versão do Android - apenas a do J2ME. ;-)
Sparx
como você fez isso?
inquisitivo
4

O Android nem sequer "usa" o java. A linguagem na qual o código está escrito é Java, mas o SDK do Android pega o bytecode compilado e o converte no bytecode Dalvik.

Portanto, é realmente um equívoco que o Android execute java. O Android executa o Dalvik, que as bibliotecas principais são baseadas na estrutura Java, mas os arquivos binários finais resultantes não são os mesmos e as máquinas virtuais também são completamente diferentes.

Assim como a Dalvik VM não executará o bytecode Java, a Java VM não executará o bytecode Dalvik.

A conversão de bibliotecas para Dalvik provavelmente é possível, se todos os recursos estiverem disponíveis no Android (ou bibliotecas adicionais), mas qualquer coisa que tenha uma interface de usuário Java, não funcionará.

Ryan Conrad
fonte
Eu realmente discordo. O Google não escreveu sua própria linguagem chamada Java, simplesmente acredito que pegou o OpenJDK e o nomeou Dalvik etc etc para marketing.
YumYumYum 11/11
11
Você já comparou o código de dalvik byte com o código de java byte?
Ryan Conrad
11
@Google: Isso é, literalmente, completamente errado. O Google usou a sintaxe Java (e algumas bibliotecas), mas como Ryan Conrad observou, o bytecode é completamente diferente. Eles não apenas "renomearam" o Java JDK para fins de marketing. Veja a entrada da Dalvik na Wikipedia para mais.
Eldarerathis
3

Se o arquivo jar for para JavaME

Há o MicroEmulator que emula o JavaME com a ajuda do JavaSE. Isso torna possível converter esses arquivos jar em um apk e instalá-lo no seu dispositivo. O processo é descrito aqui.

O NetRunner fornece uma funcionalidade semelhante.

Fluxo
fonte
Flow, esse link do MicroEmulator parece ter mudado para outra coisa, suponho. Você poderia atualizar a resposta.
Firelord
-3

Não, você não pode instalar arquivos jar no Android. Para instalar aplicativos do jar, precisamos do suporte J2ME, que não está nos telefones Android.

Riyaz Mohammed Ibrahim
fonte