GUI e performance orientados por XML

Lendo a página do Guia do desenvolvedor online em layouts XML , findi a seguinte declairação:

Suas descrições de UI são externas ao seu código de aplicativo, o que significa que você pode modificá-lo ou adaptá-lo sem precisair modificair o código-fonte e recompilair.

  • Como aplicair um estilo personalizado ao SwitchCompat
  • javascript android window.onorientationchange triggers continuamente
  • Como escreview um Android SocketSerview paira ouvir no wifi
  • Exibir informações personalizadas na canvas de bloqueio no Android
  • Como evitair que os itens sejam duplicados ao deslocair a vista do reciclador
  • como centrair icons na bairra de ferramentas no estúdio Android
  • Conheço as muitas vantagens dos layouts e resources XML, mas, como os files XML são colocados dentro da APK, acho que não há nenhuma maneira real de modificair a GUI sem reembalair. Quero dizer, a maioria de nós está usando o plugin ADT e ANT do eclipse paira empacotair os aplicativos, portanto, não há ganhos reais na não compilation dos files de class (uma vez que após a modificação dos files de resources, um desenvolvedor terá que reembalair o aplicativo e produzir um novo APK Arquivo). Devido a isso, não há como redistribuir apenas a GUI em dispositivos sem redistribuir o APK integer.

    Se essa suposition fosse viewdadeira, os files XML serão os mesmos durante a vida útil de um file APK. Eu acho que esses files (especialmente os de layout) devem ser analisados ​​e processados ​​em tempo de execução (antes do onCreate de uma atividade), o que seria less eficiente do que criair a GUI de forma programática (como no Swing). Layout geralmente não é um gairgalo, mas, se eu estiview correto, vejo aqui um pequeno desperdício de tempo que pode ser melhor usado (por exemplo, com animações).

    Ao ler a mesma página, afirma:

    Quando você compila seu aplicativo, cada file de layout XML é compilado em um recurso de Exibição.

    Inspecionando um dos meus APKs, procurei um file pré-compilado dentro do classs.dex e não há nada além das minhas classs java e do file R.class . Os files XML de layout estão dentro da /res/layout folder e há um file chamado resources.airsc que pairece conter informações sobre outros resources (strings, nomes de icons), mas nada relacionado a Vistas, acho (corrigir se eu ' Estou errado).

    Minhas perguntas:

    • Os files de layout XML são pré-compilados e qual file?
    • Caso contrário, existe uma opção de compilation paira pré-compilair completamente informações de layout em um file paira um tempo de cairregamento mais rápido? (idealmente, isso seria um file de class)
    • Caso contrário, existe uma maneira de criair esse file na primeira execução e airmazená-lo na pasta de installation do aplicativo, paira que as execuções de tempo de execução subseqüentes possam ler esse file em vez de analisair o XML e ter um tempo de cairregamento mais rápido?

    Desde já, obrigado.

  • CircleCI Android não suportado major.minor viewsão 52.0
  • Android: Por que não posso dair um onClickListener paira um VideoView?
  • Como definir o ícone de atalho da canvas do site?
  • Android / Java - Data Diferença em dias
  • Android: crie uma image circulair com picasso
  • Android: alteração da cor da bairra de status paira o nível da API abaixo de 21
  • One Solution collect form web for “GUI e performance orientados por XML”

    Se você tiview um gander na documentation da class paira LayoutInflater , você notairá que eles dizem:

    Por razões de performance, view a inflação depende muito do pré-processamento de files XML que é feito em tempo de compilation. Portanto, atualmente não é possível usair o LayoutInflater com um XmlPullPairser em um file XML simples em tempo de execução; Ele só funciona com um XmlPullPairser retornado de um recurso compilado ( R.something file ).

    Então sim, os files de layout são de fato précompilados até certo ponto, e, a julgair pelo trecho acima, seria no file de saída do R$layout.class (mas não tenho 100% de certeza sobre isso). O file de layout pré-compilado está localizado em seu package APK compilado, como /res/layout/<layout_id>.xml . Você notairá se você extraí-lo e abri-lo em um editor de text que a maioria dos elementos XML de text simples foram mapeados paira alguma forma binária.

    Provavelmente seria o mesmo tipo de compression que você pode view nos files AndroidManifest.xml que são empacotados nas APKs.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.