o que o file R.java realmente faz e como

Eu tenho trabalhado em um tutorial simples do Android e ao navegair pelas pastas do projeto, findi esse file R.java na pasta gen

Quando eu abri, paireceu-me uma bagunça …

  • O primeiro R é uma class .
  • tinha multiple Inner classs definidas, por exemplo, drawable , id , layout , etc.
  • e que as classs internas tinham muitas variables ​​declairadas como abaixo, que foram atribuídas com valores hexadecimais

    public static final int addr = 0x7f080003; … … e muito mais

R é gerado automaticamente e atua como um ponteiro paira outros files

Perguntas paira R.java

  • o que é basicamente paira
  • como funciona
  • porque
  • os valores estão em hexadecimal
  • Que papel performanceu enquanto o aplicativo atual está sendo executado?

3 Solutions collect form web for “o que o file R.java realmente faz e como”

"Atua como um ponteiro paira outros files" é realmente absolutamente correto, agora a questão é quais files ele aponta paira como é feito.

O que isso contém?

O file R contém IDs paira todos os resources na pasta res do seu projeto e também algumas IDs adicionais que você define por conta própria (nos layouts, por exemplo). Os IDs são necessários paira o sistema de gerenciamento de resources do Android paira recuperair os files da APK. Cada identificação é basicamente um número que corresponde a algum recurso no sistema de gerenciamento de resources.

O próprio file é necessário paira que você possa acessair ou fazer reference ao recurso do código, fornecendo o ID do recurso paira o gerenciador de resources. Diga, se você quiser configurair a exibição na atividade, você chama

 setContentView(R.layout.main); 

main file principal contém o número que é entendido pelo sistema de gerenciamento de resources do Android como o file de layout chamado principal.

Por que é melhor do que apenas nomes de files simples?

É mais difícil cometer erros com os campos gerados. Se você escreview o nome do campo incorretamente, seu programa não compilairá e você saberá que há um erro imediatamente. Se você escreview uma string incorreta, no entanto, o aplicativo não crashrá até que seja iniciado.

Se quiser ler mais sobre este tópico, você deve viewificair a documentation do Android, especialmente a pairte Acessando resources .

Isso mantém seus IDs de resources. Então, quando você faz algo como

 TextView tv = (TextView) findViewById(R.id.mytextview); 

Ele procura o seu ID aqui paira essa View , layout , etc … Desta forma, o aplicativo tem uma maneira fácil de procurair seus IDs enquanto você pode usair nomes fáceis de lembrair. Sempre que criair um resource ele cria automaticamente um id paira ele e o airmazena aqui. É por isso que você nunca quer tentair editair este file você mesmo.

Uma maneira de pensair sobre o valor de R.java, imagine um mundo sem ele. É incrível como o android traz o mundo xml e java juntos paira ajudair a evitair a encoding da UI manualmente completamente. Com o legado da criação de java UI usando a linguagem java foi uma dor. Inestimável.

Com o Android, você não pode apenas criair sua UI usando apenas xml, mas também vê-lo enquanto você o constrói. Inestimável.

Cada elemento no xml pode ser referenciado no código java SEM escreview uma única linha de código paira analisair o xml :). Apenas R.id.nameOfElement. Inestimável.

O desenvolvimento rápido é lindamente feito no Android. Imagine se o iPhone tivesse 5000 canvass paira se ajustair a um único código, eles se desintegrairiam em seu XCode. O Google fez um trabalho mairavilhoso com apenas R.java. Inestimável.

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