Saltar para conteúdo


Foto
- - - - -

Converter Projecto inteiro em library para reutilizar noutros projectos - Urgente


  • Por favor inicie sessão para responder
1 resposta a este tópico

#1 joserfsantos

joserfsantos

    Membro

  • Membros
  • PipPip
  • 61 mensagens

Mensagem publicada 01 March 2014 - 15:58

Boas.

 

Estou com um problema e já não tenho ideias. 

 

Tenho um projecto de uma app que tem imensos Activities, Fragments, Services, Layouts, Resources (imagens, strings, dimens, anims, raws, drawables, etc...).

 

Foi-me pedido agora uma nova aplicação que é praticamente uma cópia fiel mas que muda o background que é usado nos layouts dos ecrãs, pode mudar eventualmente alguns resources, e pode mudar alguma coisa num fragment ou noutro mas sempre coisas pequenas.

 

O que pensei foi: o que identifica a app na loja é o package name que está no manifest. Então os meus passos foram:

 

1º Criei um package novo que lhe chamei framework e configurado como library. Copiei todo o projecto para aqui à excepção do folder assets pelo facto de que as libraries não o permitem. ok.

2º No projecto original, adicionei uma referência para a nova library e apaguei tudo (packages e resources). No manifest alterei as classes (activities, services e broadcastreceivers) para apontarem as da nova library. Na configuração do proguard, tive o cuidado das referências (excepções) estarem agora apontadas para as classes da library.

 

Ok. Depois deste trabalho o que obtive foi dois projectos, um de uma libray e outro do projecto apenas com o manifest e com uma referência para a library mas que funciona perfeitamente como quando era apenas um projecto.

 

O problema é ao criar o projecto novo para uma nova aplicação a referenciar a library mas a mudar o background ou outras coisas. 

 

E estou encalhado porque ainda não encontrei uma solução escalar para isto. Se os activities e fragments ficassem no projecto era mais fácil (e se calhar obvio) mas eu não quero isso porque são 99% iguais em todos os projectos.

 

No projecto uso uma classe que "extends" a class Aplication que uso para variáveis globais (em vez de singletons) e que está obviamente declarada no manifest. Pensei em partir daqui mas estou sem ideias. Já pesquisei bastante mas se calhar estou a pesquisar de forma errada.

 

Desculpem a forma como expliquei que se calhar não foi da forma mais clara mas primeiro penso tudo em inglês depois não sei bem como transpor em português e também simplesmente não sou bem a explicar :)

 

Obrigado desde já.

José



#2 joserfsantos

joserfsantos

    Membro

  • Membros
  • PipPip
  • 61 mensagens

Mensagem publicada 01 March 2014 - 16:39

Acho que descobri um ponto de partida. A minha subclass Aplication. Vou criar um interface digamos AplicationInterface na library. Este deve ser implementado pela minha subclass MyAplication apenas nos projectos das aplicações em concreto. E aqui estarão metodos que retornam por exemplo o background, etc...

 

Ainda está um pouco rebuscado...