Projeto de biblioteca do Android como arquivo jar para distribuição, como o google analytics

Eu tenho vistoisto pergunta, e tenho mais algumas dúvidas sobre a criação de um arquivo jar que eu posso distribuir e pode ser usado em todas as aplicações android.

Qual minha exigência é

Como eu disse, eu quero construir e distribuir uma biblioteca de código fechado. Eu não quero que o código fonte seja visível.Naquela biblioteca, não quero usar nenhum recurso, layout, recursos, etc. Mas quero usar alguns códigos específicos do Android, comoobter o ID do dispositivo android.

A resposta mais popular na pergunta SO vinculada acima diz paracrie um projeto java regular e importe android.jar nele. Eu tentei fazer isso, mas não sei como adicionar android.jar a qualquer projeto java. Eu gostaria de obter alguns esclarecimentos sobre isso também.

Além disso eu gostaria de saber se existem outros métodos usando o próprio android sdk (sem usar o projeto java) criar um arquivo jar biblioteca de origem fechada.

Eu acho que o que eu quero é possível, já queGoogle Analytics para aplicativos nativos para Android parece ter feito isso. Eu tenho certeza que no arquivo .jar eles distribuem eles estão usando códigos específicos do Android, já que parece não haver nenhuma outra maneira para eles obterem as informações do dispositivo para exibir no visualizador analítico.

EDIT: PODE ALGUÉM CLARIFICAR ISTO?

Eu acho que fiz algum progresso. Isso é o que eu fiz

Criado um projeto android regular (não projeto de biblioteca, a marca de seleção "é Biblioteca" está desmarcada)

No projeto eu codifiquei minha lógica. Ele usa algumas classes específicas do android comoSharedPreference, UUID, PackageManager. Mas nada relacionado com ativos, layouts e sem extensão de classeActivity. Apenas uma classe java estendendojava.lang.object

Exportou o projeto usandoProjeto-> rightclick-> export-> Java-> arquivo JAR. Na próxima tela, desmarcou a caixa de seleção próxima aAndroidManifest.xml. Definir um diretório de destino para exportar e clicar três vezes ao lado, mantendo as configurações padrão. Então eu cliquei em Finish, e recebi um lindolibMyLibraryName.jar na minha área de trabalho.

Então eu criei outro projeto android, adicionei issolibMyLibraryName.jar para novo projeto usandoproject-> rightclick-> propriedades-> java caminho de compilação -> bibliotecas-> adicionar jar externo.

E eu tentei usar minha aula na biblioteca, no meu novo projeto

MyLibraryClass objClass = new MyLibraryClass(this);

E eu consegui compilar e executar com sucesso. Eu até enviei a biblioteca para um dos meus colegas de trabalho que foi capaz de usar a biblioteca em sua máquina (Apenas certificando-se de que o projeto de biblioteca no meu espaço de trabalho não influenciará o projeto usando-o).

Agora eu tenho 2 perguntas.

1) Minha primeira pergunta é: o que eles queriam dizer com o termo "biblioteca verdadeira" na documentação abaixo? É algum projeto java não android que pode ser exportado para um arquivo JAR?

No entanto, umprojeto de biblioteca difere de um projeto de aplicativo padrão do Android em que você não pode compilá-lo diretamente para o seu próprio .apk e executá-lo em um dispositivo Android.Da mesma forma, você não pode exportar o projeto da biblioteca para um arquivo JAR independente, como você faria por umbiblioteca verdadeira. Em vez disso, você deve compilar a biblioteca indiretamente, referenciando a biblioteca no aplicativo dependente e criando esse aplicativo.

Bem, essa parte é tirada dedocumentação sob o título "Projetos de biblioteca".

2) Minha segunda pergunta é, alguma coisa errada com a maneira que eu criei o arquivo JAR? Quaisquer possíveis armadilhas que possam me atacar depois? Eu gostaria de ter certeza de que não estou fazendo algo terrivelmente errado antes de usá-lo em meus projetos importantes.

Eu devo acrescentar que eu não tentei o método de criar um projeto JAVA e importarandroid.jar. Estou pronto para experimentar, se o que eu fiz atualmente estiver errado.

questionAnswers(1)

yourAnswerToTheQuestion