Entendendo o que é gerado pelo Android Studio

(Última atualização em: 10 de março de 2016)

Algo bem comum na vida do desenvolvedor é deixar que a sua IDE o ajude na hora do desenvolvimento. Tão comum que geralmente pedimos a ela para dar aquele chute inicial quando começamos um novo projeto.

No desenvolvimento Android, quando iniciamos um projeto, ele já deixa configurado bastante coisa para gente: já cria nossa primeira Activity(desde a classe ao seu layout) e além disso também a registra no manifest.

Legal, mas quando estamos iniciando um novo projeto, temos que escolher qual é o tipo de Activity que queremos utilizar. Aí ele nos dá tela parecida com essa:

tela de configuração

tela de configuração

E geralmente não imaginamos logo de início qual será a melhor escolha de Activity e preferimos escolher uma tela em branco. Essa tela em branco geralmente já vinha com um Hello World configurada nela, por isso escolhíamos BlankActivity. Isso até a versão 1.5 do AndroidStudio.

Na última versão, quando estamos pedindo para ele gerar essa BlankActivity, estão sendo gerados 2 arquivos de layout. Como assim?
Se verificarmos, ele está gerando um arquivo chamado content_NOME_DA_ACTIVITY.xml e outro com nome activity_NOME_DA_ACTIVITY.xml. Vamos analisar um pouco esses arquivos.

Estávamos acostumados a criar uma Activity e ela já vir com um único arquivo. Ao verificamos o arquivo activity_NOME_DA_ACTIVITY.xml que está sendo gerado vamos ver algo parecido com isto:


<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_NOME_DA_ACTIVITY" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

CoordinatorLayout, AppLayoutBar, Toolbar, FloatActionButton…o que é tudo isso?

Há um tempo atrás o Google criou uma biblioteca especialmente para design para aplicações mobile, você pode conferir mais sobre ela aqui. Todas essas Views já estão incluídas nesta biblioteca de design.

Legal, mas no meio desse layout há um include para outro arquivo de layout:


 <include layout="@layout/content_NOME_DA_ACTIVITY" />

Este arquivo content já é aberto por padrão no momento que iniciamos um novo projeto, ele está lá para colocarmos todas as views que serão exibidas em nossa tela.

Esse novo padrão foi criado para deixar de forma mais organizada os arquivos xml.

Caso quisermos uma Activity vazia, sem nenhuma View, podemos iniciar nosso projeto utilizando EmptyActivity, que substitui a forma que BlankActivity fazia até a atualização.

Conhecemos dois tipos de Activity e ainda existem muitas outras prontas que podemos utilizar!

Quer saber mais sobre desenvolvimento android? Dá uma olhadinha nos cursos que temos aqui no alura ! Tá interessado em aulas presenciais? Na caelum também temos dois cursos de android bem maneiros!

Próximo ArtigoVariable Hoisting no JavaScript