Diferencie entre arquivos apk e jar

1

Existe alguma maneira de diferenciar esses dois arquivos? Ambos são identificados como arquivos zip usando o comando file , então existe uma maneira de diferenciá-los? (Desconsiderando a extensão do curso).

OBSERVAÇÃO: Tentando executar a análise de arquivos, esses dois arquivos passam por uma análise diferente, portanto, preciso diferenciá-los.

    
por Shelby. S 23.07.2012 / 16:14

5 respostas

1

Não com ferramentas oficiais, provavelmente não em todos.

Os arquivos DEX são arquivos convertidos em uma linguagem que a máquina da Dalvik pode entender e executar, não necessariamente java, as DEXs são apenas arquivos intermediários direcionados à máquina virtual da Dalvik, portanto, tecnicamente falando, também não há garantia de que esses arquivos DEX sejam de um jar ou da linguagem java.

No momento da criação, quando o apk é criado, todo o código que não é uma biblioteca nativa é colocado em um arquivo DEX. A "ideia jar" simplesmente não existe e não vive em um arquivo apk.

    
por user827992 23.07.2012 / 16:32
1

APK (pacote de aplicativos Android) é o formato de arquivo usado para distribuir e instalar o software do aplicativo para o sistema operacional Android. Ele só pode ser usado com o sistema operacional Android.

JAR (Java Archive) é um formato de arquivo normalmente usado para distribuir um conjunto de classes Java. Esses arquivos são feitos usando o formato de arquivo ZIP e possuem a extensão de arquivo .jar. Eles podem ser usados em vários dispositivos , incluindo aqueles que têm o sistema operacional Android.

Você pode converter apk para jar e vice-versa.

Os arquivos APK são salvos em um formato .ZIP compactado e podem ser abertos por qualquer ferramenta de descompactação do Zip. Você pode renomear a extensão do arquivo para ".zip" e abrir o arquivo

O arquivo jar comprime e contém outros arquivos. Arquivos jar são muito fáceis de abrir. Existem muitos programas que abrirão arquivos jar. Na verdade, qualquer programa que possa abrir arquivos zip pode abrir arquivos jar. O formato do jar é idêntico ao formato do arquivo zip. O Java Runtime Environment é necessário para abrir arquivos Jar.

Para abrir arquivos APK no seu computador, é necessário software adicional.

    
por Mitch 23.07.2012 / 16:24
1

O arquivo APK é apenas um arquivo JAR com arquivos específicos adicionais da plataforma Android incluídos nele, como AndroidManifest.xml e classes.dex.

O arquivo JAR é apenas um arquivo ZIP compactado com metadados adicionais (MANIFEST.MF etc.) em uma pasta (META-INF).

O arquivo ZIP é uma representação compactada de arquivo único de uma pasta.

Assim, em um nut-shell, todos os 3 formatos são essencialmente apenas uma pasta ZIP com arquivos de metadados específicos de formato adicionais.

Use o utilitário dx do Android SDK para gerar todos os 3 formatos do mesmo arquivo helloWorld.java, em seguida, hexDump os 3 arquivos e depois os 2 de cada vez para confirmar que eles são quase idênticos com 4 bytes específicos de formato diferentes. Todos os outros bytes são idênticos nos 3 arquivos gerados.

    
por user229002 26.12.2013 / 20:59
0

Os arquivos apk são usados apenas pelo Android (instaladores de programas) e os arquivos jar são usados em plataformas Java em geral. Você pode ver isso com o significado deles:

  • apk: Android PacKage
  • jar: Java ARchive
por air-dex 23.07.2012 / 16:24
0

Sua melhor aposta seria verificar o conteúdo do arquivo zip. Todos os arquivos .apk devem conter um arquivo AndroidManifest.xml , portanto, a presença desse arquivo no índice ZIP deve ser um bom indicador de que você tem um arquivo desse tipo.

Para .jar arquivos, a verificação de META-INF/MANIFEST.MF no índice ZIP é provavelmente a melhor opção. Observe que os pacotes do Android também incluem esse manifesto, portanto, verifique se o arquivo é um arquivo .apk primeiro.

Você pode usar truques semelhantes para outros formatos baseados em ZIP. Por exemplo, os arquivos Open Document Format incluem um arquivo mimetype cujo conteúdo deve informar o tipo específico do arquivo.

    
por James Henstridge 24.07.2012 / 03:01