SlideShare uma empresa Scribd logo
1 de 49
Introdução ao Android
• Android - plataforma de software que permite criar
aplicativos para dispositivos móveis, composta por um
sistema operacional, componentes, ferramentas,
dispositivos e um ecosistema.
• Desenvolvido pela empresa Google, com suporte da
OHA (Open Handset Alliance), que agrega empresas
com o objetivo de definir um ecosistema e um padrão
colaborativo e aberto para dispositivos móveis.
• O Android fornece APIs , ferramentas, JVM
(Dalvik/ART), SQL Lite, Application Framework,
Browser, APIs específicas (ex. Qualcomm Vuforia),
tendo com OS base o Linux.
Plataforma e Dispositivos Android
• Todas as ferramentas para Android são gratuitas e
disponíveis para os principais sistemas operacionais
(Mac OS,Windows, Linux)
– JDK – Java Development Kit
• http://www.oracle.com/technetwork/java/index.html
– Android SDK – SDK específico para Android,
fornecido pela Google, com libraries, tools, emulator
• http://developer.android.com/sdk/index.html
– Eclipse ADT Plugin – componente que complementa
a IDE Eclipse para permitir o desenvolvimento
Android através dessa IDE
• http://developer.android.com/sdk/installing/installing-adt.html
Plataforma e Dispositivos Android
• Aplicativos Android (APKs) – Arquivo com extensão
APK (Android Package), que é um pacote com o
código compilado, arquivos de configuração, arquivos
XML, arquivos de propriedade, imagens, arquivos de
aúdio e vídeo e outros conforme composição da
aplicação.
• Emulador – ferramenta que permite testar um aplicativo
Android (APK) na estação de trabalho de
desenvolvimento, sem necessidade de um dispositivo
real
Plataforma e Dispositivos Android
• AVD - Android Virtual Device – simula uma imagem
de um dispositivo e/ou versão do Android para
execução no emulador
– Executado tanto pela IDE (modo gráfico) quanto pela
linha de comando
– C:android-studiosdktoolsemulator.exe -avd Teste-
AVD-4.1.2 -netspeed full -netdelay none
Plataforma e Dispositivos Android
Plataforma e Dispositivos Android
• Estrutura de um projeto Android
– src – pacotes e classes com código fonte Java do aplicativo,
como qualquer outro projeto Java.
– gen – arquivos gerados automaticamente pelo Eclipse plugin,
como a classe R que dá acesso aos recursos do projeto. Não
devem ser modificados pelo desenvolvedor.
– assets – pasta com arquivos de recursos, dependências
(conteúdo) utilizados na aplicação, como imagens, vídeos,
aúdio. Não é criado por default.
– bin – arquivos compilados pelo Eclipse ADT, geralmente
não modificados pelo desenvolvedor também.
• Arquivos .dex (Dalvik Executable)
Plataforma e Dispositivos Android
– Arquivo com versão do SDK (sdk.jar)
• android.jar para versão alvo da aplicação
– res – pasta de recursos (resources), com várias sub-pastas
que possuem recursos com diferentes finalidades na
aplicação.
• drawable - armazena imagens que são usadas na
aplicação, conforme resolução, como ícones. 3 resoluções
por default.
• layout – arquivos XML que representam layouts de tela da
aplicação. Arquivo main.xml gerado por default.
• values – arquivos XML que definem constantes globais,
strings, estilos, cores, etc.
– http://developer.android.com/guide/topics/resources/available-resources.html
Plataforma e Dispositivos Android
–AndroidManifest.xml
• Arquivo XML que define a aplicação Android.
• Responsável pela configuração do aplicativo
Android, declaração de diversos componentes, tais
como Activities, Intents, versões, permissões e
outros parâmetros da aplicação.
Plataforma e Dispositivos Android
• Arquitetura de um aplicativo Android (componentes)
• Activity
–representa e apresenta uma tela do aplicativo. Além de
exibir views, também pode chamar outra Activity.
Deriva de android.app.Activity.
–Todas Activities devem ser declaradas no
AndroidManifest.xml
– http://developer.android.com/reference/android/app/Activity.html
Plataforma e Dispositivos Android
Plataforma e Dispositivos Android
• Services
– componente responsável por executar tarefas em
background, geralmente tarefas contínuas ou intermitentes,
sem ter uma tela (GUI).
– Derivados de android.app.Service
– Também deve ser declarados no arquivo
AndroidManifest.xml
– Context.startService(), Context.bindService()
– http://developer.android.com/reference/android/app/Service.html
Plataforma e Dispositivos Android
• Intents
– componente intermediário entre activities e applications,
permitindo passar mensagens e dados entre dois
componentes.
– Provê acesso a serviços nativos tais como camera, browser,
notificações, etc.
– Geralmente, possui ação (Action) e dados (data)
– IntentFilter descreve quais intents uma activity (ou Intent
Receiver) é capaz de tratar. Também informados no
AndroidManifest.xml
– Intent intent = new Intent(getApplicationContext(),SecondActivity.class);
intent.putExtra("myKey",AnyValue); startActivity(intent);
– http://developer.android.com/reference/android/content/Intent.html
Plataforma e Dispositivos Android
• Intent Receiver
– Reagir a eventos externos a aplicação
– Registrados no AndroidManifest.xml
– Context.registerReceiver()
– Context.broadCastIntent()
• http://developer.android.com/training/sharing/receive.html
– Classe BroadCastReceiver
• http://developer.android.com/reference/android/content/BroadcastReceiver.html
• http://developer.android.com/guide/topics/manifest/receiver-element.html
Plataforma e Dispositivos Android
• Views
– Elemento de GUI. Trata eventos do usuário e
desenha interface.
– http://developer.android.com/reference/android/view/View.html
• Content Providers
– componente responsável por armazenar e gerenciar
dados da aplicação (data sources)
– Os dados podem ser armazenados em arquivos,
banco SQL Lite, Shared Preferences
– Content Provider permite compartilhar os dados com
outros aplicativos
– http://developer.android.com/guide/topics/providers/content-providers.html
Plataforma e Dispositivos Android
• Geração de APKs
– Signed/Unsigned
• File – Export; Android – Export Android Application;
• Na tela “Select the project to export”, selecione o projeto
alvo
• Na tela Keystore Selection, escolha se deseja usar uma
keystore e chave existentes ou criar novas
• Especifique o destino (path, name) do seu APK
• Instale em seu tablet/smartphone.
Plataforma e Dispositivos Android
• AndroidManifest.xml -
http://developer.android.com/guide/topics/manifest/manifest-intro.html
– arquivo principal do projeto onde são feitas as configurações
do aplicativo.
– obrigatoriamente deve ficar na pasta raiz do projeto.
– obrigatório que cada activity do projeto esteja declarada no
arquivo AndroidManifest.xml
– Permissões
• <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
– Entry point da aplicação
• <intent-filter>
• <action android:name="android.intent.action.MAIN" />
• <category android:name="android.intent.category.LAUNCHER" />
• </intent-filter>
Plataforma e Dispositivos Android
• Layout Managers
– Todos gerenciadores de layout herdam (is-a relationship) da classe
android.view.ViewGroup
• http://developer.android.com/reference/android/view/ViewGroup.html
• http://developer.android.com/guide/topics/ui/declaring-layout.html
• http://developer.android.com/guide/topics/ui/layout/listview.html
• http://developer.android.com/guide/topics/ui/layout/gridview.html
– AbsoluteLayout : Posiciona os componentes fornecendo coordenadas específicas x e
y.
• http://developer.android.com/reference/android/widget/AbsoluteLayout.html
– FrameLayout : Tipo mais comum e simples de layout. Usado quando um
componente deve ocupar toda a tela.
• http://developer.android.com/reference/android/widget/FrameLayout.html
– LinearLayout : Utilizado para organizar os componentes na horizontal ou na
vertical
• http://developer.android.com/guide/topics/ui/layout/linear.html.
Plataforma e Dispositivos Android
• Layout Managers
– TableLayout : Pode ser usado para organizar os componentes em uma tabela com
linhas e colunas.
• http://developer.android.com/reference/android/widget/TableLayout.html
– RelativeLayout : Permite posicionar um componente relativo a outro, por exemplo,
abaixo, acima ou ao lado de um componente já existente.
• http://developer.android.com/guide/topics/ui/layout/relative.html
Plataforma e Dispositivos Android
• SharedPreferences
– SharedPreferences – permite salvar preferências do usuário
ou configurações específicas para o aplicativo, através de um
mecanismo tipo chave/valor.
– Aplicativo pode ter várias SharedPreferences conforme
necessidade
– getSharedPreferences (String name, int mode)
– Armazenar dados, tipos primitivos e Strings
– Ler dados, devemos usar um editor
– http://developer.android.com/reference/android/content/SharedPreferences.html
Plataforma e Dispositivos Android
• SQL Lite
– Sistema de Banco de Dados para sistemas embarcados
(embedded database) - http://www.sqlite.org/
– Criar uma subclasse de SQLiteOpenHelper
• http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.htm
– Sobrescrever os métodos OnCreate() e OnUpgrade()
• OnCreate() - criar o banco, tabelas, inicialização, povoar
• OnUpgrade() - alterações no BD, schema, tabelas, colunas,
etc
– Métodos getWritableDatabase(), getReadableDatabase()
• Retornam instância de SQLiteDatabase
• http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
Plataforma e Dispositivos Android
• SQL Lite
– SQLiteDatabase
– Métodos query(), rawQuery(), insert(), update(), delete()
– Class Abstrata Cursor
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html
– Interface Cursor
http://developer.android.com/reference/android/database/Cursor.html
Plataforma e Dispositivos Android
• JSON
– JSON - JavaScript Object Notation
– Formato leve para troca de dados
– http://json.org/
– http://www.w3schools.com/json/
– http://jsonlint.com/
{
"id": 1,
"name": "Foo",
"price": 123,
"tags": ["Bar","Eek" ],
"stock": {
"warehouse": 300,
"retail": 20 }
}
Plataforma e Dispositivos Android
• JSON
– Android possui API para JSON
– JSONObject – tratar objeto (String) JSON
• http://developer.android.com/reference/org/json/JSONObject.html
– JSONArray – tratar array de objetos JSON
• http://developer.android.com/reference/org/json/JSONArray.html
JSONObject json = new JSONObject(jsonString);
try {
String name = json.getString("name");
} catch (JSONException e) {
e.printStackTrace();
//tratar exception
}
Plataforma e Dispositivos Android
• Conexão HTTP
– Preferencialmente, utilizar a classe HttpUrlConnection
• http://developer.android.com/reference/java/net/HttpURLConnection.html
• http://android-developers.blogspot.com.br/2011/09/androids-http-clients.html
• http://developer.android.com/training/basics/network-ops/connecting.html
• http://developer.android.com/reference/java/net/URLConnection.html
• https://developer.android.com/training/articles/security-ssl.html
Plataforma e Dispositivos Android
• TextView
– Representa um label como na maioria dos frameworks de GUI
– Texto não editável
– android:typeface – monospace
– android:textStyle – bold, italic, bold_italic
– android:textColor - #FF0000
• http://developer.android.com/reference/android/widget/TextView.html
• http://android-developers.blogspot.com.br/2008/03/linkify-your-text.html
Plataforma e Dispositivos Android
• EditText
– Representa um campo editável – field na maioria dos
frameworks GUI
– Subclasse de TextView
– android:autoText – auto spelling
– android:capitalize – primeira letra maiúscula
– android:digits – somente certos dígitos
– Android.singleLine – entrada single ou multiple line
• http://developer.android.com/reference/android/widget/EditText.html
• http://developer.android.com/guide/topics/ui/controls/text.html
Plataforma e Dispositivos Android
• Button
– Button é subclasse de TextView
– Todos atributos se aplicam para Button
• http://developer.android.com/reference/android/widget/Button.html
• http://developer.android.com/reference/android/widget/TextView.html
final Button button = (Button) findViewById(R.id.button_id);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/self_destruct"
android:onClick="selfDestruct" />
Plataforma e Dispositivos Android
• ImageView
– Android tem dois componentes básicos para imagens
• Imagens locais ao projeto, URIs - setImageURI (Uri uri)
• ImageView subclasse de View
• ImageButton subclasse de ImageView
• http://developer.android.com/reference/android/widget/ImageView.html
• http://developer.android.com/reference/android/widget/ImageButton.html
• http://developer.android.com/training/animation/zoom.html
• http://developer.android.com/training/displaying-bitmaps/display-bitmap.html
Plataforma e Dispositivos Android
• CheckBox
– Caixa de check clássica
– Dois estados: checked, unchecked
– Click alter os estados, também via métodos
– Toggle()
– IsChecked()
– setChecked()
• http://developer.android.com/reference/android/widget/CheckBox.html
• http://developer.android.com/guide/topics/ui/controls/checkbox.html
Plataforma e Dispositivos Android
• RadioButton e RadioGroup
– Como checkboxes, tem dois estados
– Permite apenas uma opção selecionada por vez
– Agrupamento (RadioGroup)
– Dois estados: checked, unchecked
– Click altera os estados, também via métodos
– check() - checar via ID
– clearCheck() - limpar estado de todos RadioButtons
– GetCheckedRadioButtonId() - ID do RadioButton checado
• http://developer.android.com/reference/android/widget/RadioButton.html
• http://developer.android.com/guide/topics/ui/controls/radiobutton.html
• http://developer.android.com/reference/android/widget/RadioGroup.html
Plataforma e Dispositivos Android
• Toast
– Possibilita notificação simples e rápida ao usuário
– Notificação é exibida na quantidade de espaço necessário para a
mensagem utilizada na Toast
– Permanece visível conforme tempo determinado
– método makeText(), três parâmetros: contexto, mensagem e
duração
• http://developer.android.com/reference/android/widget/Toast.html
• http://developer.android.com/guide/topics/ui/notifiers/toasts.html
Plataforma e Dispositivos Android
• ContextMenu, MenuInflater
– Menu contextual que aparece quando pressionamos longamente
uma dada view
– registerForContextMenu(View v) – registra view para usar
– onCreateContextMenu (ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) – método disparado após
o long press
– onContextItemSelected(MenuItem item) – disparado quando Item no
context menu é selecionado
• http://developer.android.com/reference/android/view/ContextMenu.html
• http://developer.android.com/reference/android/view/MenuInflater.html
• http://developer.android.com/guide/topics/ui/menus.html#context-menu
• http://developer.android.com/guide/topics/ui/menus.html
• http://developer.android.com/guide/topics/resources/menu-resource.html
Plataforma e Dispositivos Android
• OptionMenu
– Menu primário no Android
– Pode ser usado para configurações, pesquisa, e-mail, etc
– No Android 2.3-, mostrado pressionando Menu
– No Android 3.0+, apresentado na ActionBar através de ações na
tela e opções de overflow
• http://developer.android.com/guide/topics/ui/menus.html
• http://developer.android.com/guide/topics/ui/menus.html#options-menu
• http://developer.android.com/guide/topics/ui/actionbar.html
Plataforma e Dispositivos Android
• Events, EventListeners, EventHandlers
– Eventos no Android acontecem geralmente em função de ações
do usuário do aplicativo
– Click: componente com foco recebe Enter ou Touch;
– Long click: Mesmo que anterior, entretanto mais prolongado
– Touch Event: toque sobre um componente. Possível checar direção do toque
(baixo, cima, esquerda, direita);
– Focus Change: quando componente recebe ou perde foco;
– Key Event: componente com foco e qualquer tecla é pressionada;
– Selected Item: toda vez que um item é selecionado.
• http://developer.android.com/guide/topics/ui/ui-events.html
• http://developer.android.com/guide/topics/ui/ui-events.html#EventListeners
• http://developer.android.com/guide/topics/ui/ui-events.html#EventHandlers
Plataforma e Dispositivos Android
• Threads
– Thread normal
– (new Thread(new Runnable() { @Override public void run()
{ doLongOperation(); } })).start();
– http://developer.android.com/reference/java/lang/Thread.html
– http://developer.android.com/reference/java/lang/Thread.State.html
– https://developer.android.com/training/multiple-threads/run-code.html
Plataforma e Dispositivos Android
• Threads
– Handler
– Nova thread não deve rodar no contexto ou atualizar a UI thread
– Ponte entre nova thread e a UI queue
– final Handler myHandler = new Handler(){
@Override public void handleMessage(Message msg) {
updateUI((String)msg.obj); } }; (
new Thread(new Runnable() {
@Override public void run() {
Message msg = myHandler.obtainMessage();
msg.obj = doLongOperation();
myHandler.sendMessage(msg); } })).start();
http://developer.android.com/reference/android/os/Handler.html
– http://developer.android.com/reference/android/os/Handler.Callback.html
– https://developer.android.com/training/multiple-threads/communicate-ui.html
– http://developer.android.com/reference/android/os/HandlerThread.html
Plataforma e Dispositivos Android
• Threads
– AsyncTask
– Thread que pode manipular operações da UI
– class MyAsyncTask extends AsyncTask<Integer, String, Long> {
@Override protected LongdoInBackground(Integer... params) {
long start = System.currentTimeMillis();
for (Integer integer : params) {
publishProgress(“start processing “+integer);
doLongOperation(); publishProgress(“done processing “+integer);
} return start - System.currentTimeMillis(); }
@Override protected void onProgressUpdate(String... values) {
updateUI(values[0]); }
@Override protected void onPostExecute(Long time) {
updateUI(“Done,it took:”+ time +”millisecondes”); }
@Override protected void onPreExecute() {
updateUI(“Starting the process”); } }
MyAsyncTask aTask = new MyAsyncTask(); aTask.execute(1, 2, 3, 4, 5);
– http://developer.android.com/reference/android/os/AsyncTask.html
– http://developer.android.com/reference/android/os/AsyncTask.Status.html
Plataforma e Dispositivos Android
• Threads
– Timer
– Agendar jobs/serviços futuros ou recorrentes
– TimerTask timerTask = new TimerTask() {
@Override public void run() {
– doSomething();
– } };
– Timer timer = new Timer();
– timer.schedule(timerTask, 2000,2000);
– http://developer.android.com/reference/java/util/Timer.html
– http://developer.android.com/reference/java/util/TimerTask.html
Plataforma e Dispositivos Android
• Services
– Executar apps, processos em segundo plano
– Sem interface com usuário (ao contrário de Activities)
– Pode ser iniciado ou parado por uma Activity
– AndroidManifest.xml
• <service android:name=”.package.ServiceName”/>
• Context.startService()
• Context.bindService()
– http://developer.android.com/reference/android/app/Service.html
– http://developer.android.com/guide/components/services.html
– https://developer.android.com/training/run-background-service/create-service.html
Plataforma e Dispositivos Android
• Broadcast Receivers
– Escutar eventos do sistema
– Todos os BroadcastReceivers inscritos são notificados quando evento acontece
– Intent contém o evento
– Normalmente, sem intervenção do usuário (troca de msgs em background)
– Executar em no máximo 10 segundos (caso contrário use Service)
– http://developer.android.com/reference/android/content/BroadcastReceiver.html
Plataforma e Dispositivos Android
• ContentProvider
– Prover dados (data sources)
– Shared ContentProviders – públicos, acessados por várias apps
– Uri
– content://<authority>/<param1>/<param2>/…/<paramN>
– http://developer.android.com/reference/android/content/ContentProvider.html
– http://developer.android.com/guide/topics/providers/content-providers.html
– http://developer.android.com/tools/testing/contentprovider_testing.html
Plataforma e Dispositivos Android
• Fragments
– Android 3.0 HoneyComb
– Blank Activity
– Fragmento de uma tela em um aplicativo Android
– Reusável
– herda de android.app.Fragment
– Deve sempre estar contido em uma Activity
– Possui seu próprio cicloe de vida, afetado pelo lifecycle da Activity
– http://developer.android.com/reference/android/app/Fragment.html
– http://developer.android.com/guide/components/fragments.html
– http://developer.android.com/training/basics/fragments/index.html
Plataforma e Dispositivos Android
• Fragments
– View → findViewById()
– Fragment → findFragmentById() ou findFragmentByTag()
através do método getFragmentManager()
– método getActivity() retorna a Activity corrente do Fragment
– método beginTransaction() possibilita adicionar, remover ou
substituir um Fragment em tempo de execução
Plataforma e Dispositivos Android
Plataforma e Dispositivos Android
Introdução ao android e plataforma android
Introdução ao android e plataforma android
Introdução ao android e plataforma android
cursos@nxt-mobile.com
Todas as marcas, nomes, relatórios e recursos visuais utilizados e/ou citados nessa apresentação são de propriedade
das respectivas empresas. Todos os direitos reservados.

Mais conteúdo relacionado

Mais procurados

Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma AndroidNatanael Fonseca
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01Gustavo Zimmermann
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3Jose Berardo
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Tchelinux
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4Jose Berardo
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao androidPaulo Remoli
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Afonso Machado
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidWilliam Higino
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidJosé Alexandre Macedo
 

Mais procurados (20)

Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Google android pdf
Google android pdfGoogle android pdf
Google android pdf
 
Android
AndroidAndroid
Android
 
Android
Android Android
Android
 
Introdução à plataforma Android
Introdução à plataforma AndroidIntrodução à plataforma Android
Introdução à plataforma Android
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Introdução ao Android Studio
Introdução ao Android StudioIntrodução ao Android Studio
Introdução ao Android Studio
 
Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01Desenvolvimento Android: Aula 01
Desenvolvimento Android: Aula 01
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Curso de Android - aula 3
Curso de Android - aula 3Curso de Android - aula 3
Curso de Android - aula 3
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Curso de Android Aula 4
Curso de Android Aula 4Curso de Android Aula 4
Curso de Android Aula 4
 
Android
AndroidAndroid
Android
 
Introdução ao android
Introdução ao androidIntrodução ao android
Introdução ao android
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 

Destaque

Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional AndroidLucas Damasceno
 
IOS sistema operacional
IOS sistema operacionalIOS sistema operacional
IOS sistema operacionalHamburg Süd
 
Trabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOSTrabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOSnadilei
 

Destaque (6)

Android
Android Android
Android
 
Android
AndroidAndroid
Android
 
História do Android
História do AndroidHistória do Android
História do Android
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
IOS sistema operacional
IOS sistema operacionalIOS sistema operacional
IOS sistema operacional
 
Trabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOSTrabalho de informatica - Sistema Operacional iOS
Trabalho de informatica - Sistema Operacional iOS
 

Semelhante a Introdução ao android e plataforma android

Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma AndroidÉdipo Souza
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidSalvador Torres
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de AndroidEdgar Eler
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo OliveiraRonildo Oliveira
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rqKMILT
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, ActivityArthur Emanuel
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de AndroidTiago Barreto
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidTiago Bencardino
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 

Semelhante a Introdução ao android e plataforma android (20)

Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Android Aula 2
Android Aula 2Android Aula 2
Android Aula 2
 
Iniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google AndroidIniciando o Desenvolvimento para o Google Android
Iniciando o Desenvolvimento para o Google Android
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Android Aula 3
Android Aula 3Android Aula 3
Android Aula 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Android Libs - AndroidDevConf
Android Libs - AndroidDevConfAndroid Libs - AndroidDevConf
Android Libs - AndroidDevConf
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, Activity
 
Treinamento básico de Android
Treinamento básico de AndroidTreinamento básico de Android
Treinamento básico de Android
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 

Mais de Juarez Junior

Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADBOracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADBJuarez Junior
 
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...Juarez Junior
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Juarez Junior
 
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...Juarez Junior
 
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...Juarez Junior
 
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...Juarez Junior
 
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...Juarez Junior
 
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...Juarez Junior
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesJuarez Junior
 
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...Juarez Junior
 
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...Juarez Junior
 
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...Juarez Junior
 
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...Juarez Junior
 
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...Juarez Junior
 
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ThreadsDWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ThreadsJuarez Junior
 
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...Juarez Junior
 
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...Juarez Junior
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesJuarez Junior
 
DevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesDevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesJuarez Junior
 
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...Juarez Junior
 

Mais de Juarez Junior (20)

Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADBOracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
Oracle CloudWorld 2023 - How to hook up Telegram with Spring Boot and ADB
 
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
Oracle CloudWorld 2023 - A Practical Guide to Implementing DevOps with IaC fo...
 
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
Oracle CloudWorld 2023 - A High-Speed Data Ingestion Service in Java Using MQ...
 
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
Oracle CloudWorld 2023 - Multi-cloud App Dev for Java Devs with Microsoft Azu...
 
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
GeeCon Prague 2023 - Unleash the power of your applications with Micronaut®, ...
 
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
jPrime 2023 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ...
 
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
Porto Tech Hub Conference 2023 - Revolutionize Java DB AppDev with Reactive S...
 
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...SevillaJUG - Unleash the power of your applications with Micronaut®  ,GraalVM...
SevillaJUG - Unleash the power of your applications with Micronaut® ,GraalVM...
 
SKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for DatabasesSKILup Days Container Orchestration - Kubernetes Operators for Databases
SKILup Days Container Orchestration - Kubernetes Operators for Databases
 
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
TDC Connections 2023 - Revolutionize Java DB AppDev with Reactive Streams and...
 
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
TDC Connections 2023 - A High-Speed Data Ingestion Service in Java Using MQTT...
 
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
DTU Global Azure 2023 Bootcamp - Multi-cloud App Dev for Java Developers with...
 
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
Melee Numerique 2022 - Revolutionize Java DB App Dev with Reactive Streams an...
 
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
JCON OpenBlend Slovenia 2023 - A High-Speed Data Ingestion Service in Java Us...
 
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual ThreadsDWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
DWX23 - Revolutionize Java DB AppDev with Reactive Streams and Virtual Threads
 
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
DWX23 - A High-Speed Data Ingestion Service in Java Using MQTT, AMQP, and STO...
 
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
DeveloperWeek Latin America 2023 - A High-Speed Data Ingestion Service in Jav...
 
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for DatabasesDeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
DeveloperWeekEnterprise2023 - Introduction to Kubernetes Operators for Databases
 
DevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for DatabasesDevConf.cz - Introduction to Kubernetes Operators for Databases
DevConf.cz - Introduction to Kubernetes Operators for Databases
 
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
CloudTalks - Revolutionize Java DB AppDev with Reactive Streams and Virtual T...
 

Introdução ao android e plataforma android

  • 2. • Android - plataforma de software que permite criar aplicativos para dispositivos móveis, composta por um sistema operacional, componentes, ferramentas, dispositivos e um ecosistema. • Desenvolvido pela empresa Google, com suporte da OHA (Open Handset Alliance), que agrega empresas com o objetivo de definir um ecosistema e um padrão colaborativo e aberto para dispositivos móveis. • O Android fornece APIs , ferramentas, JVM (Dalvik/ART), SQL Lite, Application Framework, Browser, APIs específicas (ex. Qualcomm Vuforia), tendo com OS base o Linux. Plataforma e Dispositivos Android
  • 3. • Todas as ferramentas para Android são gratuitas e disponíveis para os principais sistemas operacionais (Mac OS,Windows, Linux) – JDK – Java Development Kit • http://www.oracle.com/technetwork/java/index.html – Android SDK – SDK específico para Android, fornecido pela Google, com libraries, tools, emulator • http://developer.android.com/sdk/index.html – Eclipse ADT Plugin – componente que complementa a IDE Eclipse para permitir o desenvolvimento Android através dessa IDE • http://developer.android.com/sdk/installing/installing-adt.html Plataforma e Dispositivos Android
  • 4. • Aplicativos Android (APKs) – Arquivo com extensão APK (Android Package), que é um pacote com o código compilado, arquivos de configuração, arquivos XML, arquivos de propriedade, imagens, arquivos de aúdio e vídeo e outros conforme composição da aplicação. • Emulador – ferramenta que permite testar um aplicativo Android (APK) na estação de trabalho de desenvolvimento, sem necessidade de um dispositivo real Plataforma e Dispositivos Android
  • 5. • AVD - Android Virtual Device – simula uma imagem de um dispositivo e/ou versão do Android para execução no emulador – Executado tanto pela IDE (modo gráfico) quanto pela linha de comando – C:android-studiosdktoolsemulator.exe -avd Teste- AVD-4.1.2 -netspeed full -netdelay none Plataforma e Dispositivos Android
  • 7. • Estrutura de um projeto Android – src – pacotes e classes com código fonte Java do aplicativo, como qualquer outro projeto Java. – gen – arquivos gerados automaticamente pelo Eclipse plugin, como a classe R que dá acesso aos recursos do projeto. Não devem ser modificados pelo desenvolvedor. – assets – pasta com arquivos de recursos, dependências (conteúdo) utilizados na aplicação, como imagens, vídeos, aúdio. Não é criado por default. – bin – arquivos compilados pelo Eclipse ADT, geralmente não modificados pelo desenvolvedor também. • Arquivos .dex (Dalvik Executable) Plataforma e Dispositivos Android
  • 8. – Arquivo com versão do SDK (sdk.jar) • android.jar para versão alvo da aplicação – res – pasta de recursos (resources), com várias sub-pastas que possuem recursos com diferentes finalidades na aplicação. • drawable - armazena imagens que são usadas na aplicação, conforme resolução, como ícones. 3 resoluções por default. • layout – arquivos XML que representam layouts de tela da aplicação. Arquivo main.xml gerado por default. • values – arquivos XML que definem constantes globais, strings, estilos, cores, etc. – http://developer.android.com/guide/topics/resources/available-resources.html Plataforma e Dispositivos Android
  • 9. –AndroidManifest.xml • Arquivo XML que define a aplicação Android. • Responsável pela configuração do aplicativo Android, declaração de diversos componentes, tais como Activities, Intents, versões, permissões e outros parâmetros da aplicação. Plataforma e Dispositivos Android
  • 10. • Arquitetura de um aplicativo Android (componentes) • Activity –representa e apresenta uma tela do aplicativo. Além de exibir views, também pode chamar outra Activity. Deriva de android.app.Activity. –Todas Activities devem ser declaradas no AndroidManifest.xml – http://developer.android.com/reference/android/app/Activity.html Plataforma e Dispositivos Android
  • 12. • Services – componente responsável por executar tarefas em background, geralmente tarefas contínuas ou intermitentes, sem ter uma tela (GUI). – Derivados de android.app.Service – Também deve ser declarados no arquivo AndroidManifest.xml – Context.startService(), Context.bindService() – http://developer.android.com/reference/android/app/Service.html Plataforma e Dispositivos Android
  • 13. • Intents – componente intermediário entre activities e applications, permitindo passar mensagens e dados entre dois componentes. – Provê acesso a serviços nativos tais como camera, browser, notificações, etc. – Geralmente, possui ação (Action) e dados (data) – IntentFilter descreve quais intents uma activity (ou Intent Receiver) é capaz de tratar. Também informados no AndroidManifest.xml – Intent intent = new Intent(getApplicationContext(),SecondActivity.class); intent.putExtra("myKey",AnyValue); startActivity(intent); – http://developer.android.com/reference/android/content/Intent.html Plataforma e Dispositivos Android
  • 14. • Intent Receiver – Reagir a eventos externos a aplicação – Registrados no AndroidManifest.xml – Context.registerReceiver() – Context.broadCastIntent() • http://developer.android.com/training/sharing/receive.html – Classe BroadCastReceiver • http://developer.android.com/reference/android/content/BroadcastReceiver.html • http://developer.android.com/guide/topics/manifest/receiver-element.html Plataforma e Dispositivos Android
  • 15. • Views – Elemento de GUI. Trata eventos do usuário e desenha interface. – http://developer.android.com/reference/android/view/View.html • Content Providers – componente responsável por armazenar e gerenciar dados da aplicação (data sources) – Os dados podem ser armazenados em arquivos, banco SQL Lite, Shared Preferences – Content Provider permite compartilhar os dados com outros aplicativos – http://developer.android.com/guide/topics/providers/content-providers.html Plataforma e Dispositivos Android
  • 16. • Geração de APKs – Signed/Unsigned • File – Export; Android – Export Android Application; • Na tela “Select the project to export”, selecione o projeto alvo • Na tela Keystore Selection, escolha se deseja usar uma keystore e chave existentes ou criar novas • Especifique o destino (path, name) do seu APK • Instale em seu tablet/smartphone. Plataforma e Dispositivos Android
  • 17. • AndroidManifest.xml - http://developer.android.com/guide/topics/manifest/manifest-intro.html – arquivo principal do projeto onde são feitas as configurações do aplicativo. – obrigatoriamente deve ficar na pasta raiz do projeto. – obrigatório que cada activity do projeto esteja declarada no arquivo AndroidManifest.xml – Permissões • <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> – Entry point da aplicação • <intent-filter> • <action android:name="android.intent.action.MAIN" /> • <category android:name="android.intent.category.LAUNCHER" /> • </intent-filter> Plataforma e Dispositivos Android
  • 18. • Layout Managers – Todos gerenciadores de layout herdam (is-a relationship) da classe android.view.ViewGroup • http://developer.android.com/reference/android/view/ViewGroup.html • http://developer.android.com/guide/topics/ui/declaring-layout.html • http://developer.android.com/guide/topics/ui/layout/listview.html • http://developer.android.com/guide/topics/ui/layout/gridview.html – AbsoluteLayout : Posiciona os componentes fornecendo coordenadas específicas x e y. • http://developer.android.com/reference/android/widget/AbsoluteLayout.html – FrameLayout : Tipo mais comum e simples de layout. Usado quando um componente deve ocupar toda a tela. • http://developer.android.com/reference/android/widget/FrameLayout.html – LinearLayout : Utilizado para organizar os componentes na horizontal ou na vertical • http://developer.android.com/guide/topics/ui/layout/linear.html. Plataforma e Dispositivos Android
  • 19. • Layout Managers – TableLayout : Pode ser usado para organizar os componentes em uma tabela com linhas e colunas. • http://developer.android.com/reference/android/widget/TableLayout.html – RelativeLayout : Permite posicionar um componente relativo a outro, por exemplo, abaixo, acima ou ao lado de um componente já existente. • http://developer.android.com/guide/topics/ui/layout/relative.html Plataforma e Dispositivos Android
  • 20. • SharedPreferences – SharedPreferences – permite salvar preferências do usuário ou configurações específicas para o aplicativo, através de um mecanismo tipo chave/valor. – Aplicativo pode ter várias SharedPreferences conforme necessidade – getSharedPreferences (String name, int mode) – Armazenar dados, tipos primitivos e Strings – Ler dados, devemos usar um editor – http://developer.android.com/reference/android/content/SharedPreferences.html Plataforma e Dispositivos Android
  • 21. • SQL Lite – Sistema de Banco de Dados para sistemas embarcados (embedded database) - http://www.sqlite.org/ – Criar uma subclasse de SQLiteOpenHelper • http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.htm – Sobrescrever os métodos OnCreate() e OnUpgrade() • OnCreate() - criar o banco, tabelas, inicialização, povoar • OnUpgrade() - alterações no BD, schema, tabelas, colunas, etc – Métodos getWritableDatabase(), getReadableDatabase() • Retornam instância de SQLiteDatabase • http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html Plataforma e Dispositivos Android
  • 22. • SQL Lite – SQLiteDatabase – Métodos query(), rawQuery(), insert(), update(), delete() – Class Abstrata Cursor http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html – Interface Cursor http://developer.android.com/reference/android/database/Cursor.html Plataforma e Dispositivos Android
  • 23. • JSON – JSON - JavaScript Object Notation – Formato leve para troca de dados – http://json.org/ – http://www.w3schools.com/json/ – http://jsonlint.com/ { "id": 1, "name": "Foo", "price": 123, "tags": ["Bar","Eek" ], "stock": { "warehouse": 300, "retail": 20 } } Plataforma e Dispositivos Android
  • 24. • JSON – Android possui API para JSON – JSONObject – tratar objeto (String) JSON • http://developer.android.com/reference/org/json/JSONObject.html – JSONArray – tratar array de objetos JSON • http://developer.android.com/reference/org/json/JSONArray.html JSONObject json = new JSONObject(jsonString); try { String name = json.getString("name"); } catch (JSONException e) { e.printStackTrace(); //tratar exception } Plataforma e Dispositivos Android
  • 25. • Conexão HTTP – Preferencialmente, utilizar a classe HttpUrlConnection • http://developer.android.com/reference/java/net/HttpURLConnection.html • http://android-developers.blogspot.com.br/2011/09/androids-http-clients.html • http://developer.android.com/training/basics/network-ops/connecting.html • http://developer.android.com/reference/java/net/URLConnection.html • https://developer.android.com/training/articles/security-ssl.html Plataforma e Dispositivos Android
  • 26. • TextView – Representa um label como na maioria dos frameworks de GUI – Texto não editável – android:typeface – monospace – android:textStyle – bold, italic, bold_italic – android:textColor - #FF0000 • http://developer.android.com/reference/android/widget/TextView.html • http://android-developers.blogspot.com.br/2008/03/linkify-your-text.html Plataforma e Dispositivos Android
  • 27. • EditText – Representa um campo editável – field na maioria dos frameworks GUI – Subclasse de TextView – android:autoText – auto spelling – android:capitalize – primeira letra maiúscula – android:digits – somente certos dígitos – Android.singleLine – entrada single ou multiple line • http://developer.android.com/reference/android/widget/EditText.html • http://developer.android.com/guide/topics/ui/controls/text.html Plataforma e Dispositivos Android
  • 28. • Button – Button é subclasse de TextView – Todos atributos se aplicam para Button • http://developer.android.com/reference/android/widget/Button.html • http://developer.android.com/reference/android/widget/TextView.html final Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click } <Button android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/self_destruct" android:onClick="selfDestruct" /> Plataforma e Dispositivos Android
  • 29. • ImageView – Android tem dois componentes básicos para imagens • Imagens locais ao projeto, URIs - setImageURI (Uri uri) • ImageView subclasse de View • ImageButton subclasse de ImageView • http://developer.android.com/reference/android/widget/ImageView.html • http://developer.android.com/reference/android/widget/ImageButton.html • http://developer.android.com/training/animation/zoom.html • http://developer.android.com/training/displaying-bitmaps/display-bitmap.html Plataforma e Dispositivos Android
  • 30. • CheckBox – Caixa de check clássica – Dois estados: checked, unchecked – Click alter os estados, também via métodos – Toggle() – IsChecked() – setChecked() • http://developer.android.com/reference/android/widget/CheckBox.html • http://developer.android.com/guide/topics/ui/controls/checkbox.html Plataforma e Dispositivos Android
  • 31. • RadioButton e RadioGroup – Como checkboxes, tem dois estados – Permite apenas uma opção selecionada por vez – Agrupamento (RadioGroup) – Dois estados: checked, unchecked – Click altera os estados, também via métodos – check() - checar via ID – clearCheck() - limpar estado de todos RadioButtons – GetCheckedRadioButtonId() - ID do RadioButton checado • http://developer.android.com/reference/android/widget/RadioButton.html • http://developer.android.com/guide/topics/ui/controls/radiobutton.html • http://developer.android.com/reference/android/widget/RadioGroup.html Plataforma e Dispositivos Android
  • 32. • Toast – Possibilita notificação simples e rápida ao usuário – Notificação é exibida na quantidade de espaço necessário para a mensagem utilizada na Toast – Permanece visível conforme tempo determinado – método makeText(), três parâmetros: contexto, mensagem e duração • http://developer.android.com/reference/android/widget/Toast.html • http://developer.android.com/guide/topics/ui/notifiers/toasts.html Plataforma e Dispositivos Android
  • 33. • ContextMenu, MenuInflater – Menu contextual que aparece quando pressionamos longamente uma dada view – registerForContextMenu(View v) – registra view para usar – onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) – método disparado após o long press – onContextItemSelected(MenuItem item) – disparado quando Item no context menu é selecionado • http://developer.android.com/reference/android/view/ContextMenu.html • http://developer.android.com/reference/android/view/MenuInflater.html • http://developer.android.com/guide/topics/ui/menus.html#context-menu • http://developer.android.com/guide/topics/ui/menus.html • http://developer.android.com/guide/topics/resources/menu-resource.html Plataforma e Dispositivos Android
  • 34. • OptionMenu – Menu primário no Android – Pode ser usado para configurações, pesquisa, e-mail, etc – No Android 2.3-, mostrado pressionando Menu – No Android 3.0+, apresentado na ActionBar através de ações na tela e opções de overflow • http://developer.android.com/guide/topics/ui/menus.html • http://developer.android.com/guide/topics/ui/menus.html#options-menu • http://developer.android.com/guide/topics/ui/actionbar.html Plataforma e Dispositivos Android
  • 35. • Events, EventListeners, EventHandlers – Eventos no Android acontecem geralmente em função de ações do usuário do aplicativo – Click: componente com foco recebe Enter ou Touch; – Long click: Mesmo que anterior, entretanto mais prolongado – Touch Event: toque sobre um componente. Possível checar direção do toque (baixo, cima, esquerda, direita); – Focus Change: quando componente recebe ou perde foco; – Key Event: componente com foco e qualquer tecla é pressionada; – Selected Item: toda vez que um item é selecionado. • http://developer.android.com/guide/topics/ui/ui-events.html • http://developer.android.com/guide/topics/ui/ui-events.html#EventListeners • http://developer.android.com/guide/topics/ui/ui-events.html#EventHandlers Plataforma e Dispositivos Android
  • 36. • Threads – Thread normal – (new Thread(new Runnable() { @Override public void run() { doLongOperation(); } })).start(); – http://developer.android.com/reference/java/lang/Thread.html – http://developer.android.com/reference/java/lang/Thread.State.html – https://developer.android.com/training/multiple-threads/run-code.html Plataforma e Dispositivos Android
  • 37. • Threads – Handler – Nova thread não deve rodar no contexto ou atualizar a UI thread – Ponte entre nova thread e a UI queue – final Handler myHandler = new Handler(){ @Override public void handleMessage(Message msg) { updateUI((String)msg.obj); } }; ( new Thread(new Runnable() { @Override public void run() { Message msg = myHandler.obtainMessage(); msg.obj = doLongOperation(); myHandler.sendMessage(msg); } })).start(); http://developer.android.com/reference/android/os/Handler.html – http://developer.android.com/reference/android/os/Handler.Callback.html – https://developer.android.com/training/multiple-threads/communicate-ui.html – http://developer.android.com/reference/android/os/HandlerThread.html Plataforma e Dispositivos Android
  • 38. • Threads – AsyncTask – Thread que pode manipular operações da UI – class MyAsyncTask extends AsyncTask<Integer, String, Long> { @Override protected LongdoInBackground(Integer... params) { long start = System.currentTimeMillis(); for (Integer integer : params) { publishProgress(“start processing “+integer); doLongOperation(); publishProgress(“done processing “+integer); } return start - System.currentTimeMillis(); } @Override protected void onProgressUpdate(String... values) { updateUI(values[0]); } @Override protected void onPostExecute(Long time) { updateUI(“Done,it took:”+ time +”millisecondes”); } @Override protected void onPreExecute() { updateUI(“Starting the process”); } } MyAsyncTask aTask = new MyAsyncTask(); aTask.execute(1, 2, 3, 4, 5); – http://developer.android.com/reference/android/os/AsyncTask.html – http://developer.android.com/reference/android/os/AsyncTask.Status.html Plataforma e Dispositivos Android
  • 39. • Threads – Timer – Agendar jobs/serviços futuros ou recorrentes – TimerTask timerTask = new TimerTask() { @Override public void run() { – doSomething(); – } }; – Timer timer = new Timer(); – timer.schedule(timerTask, 2000,2000); – http://developer.android.com/reference/java/util/Timer.html – http://developer.android.com/reference/java/util/TimerTask.html Plataforma e Dispositivos Android
  • 40. • Services – Executar apps, processos em segundo plano – Sem interface com usuário (ao contrário de Activities) – Pode ser iniciado ou parado por uma Activity – AndroidManifest.xml • <service android:name=”.package.ServiceName”/> • Context.startService() • Context.bindService() – http://developer.android.com/reference/android/app/Service.html – http://developer.android.com/guide/components/services.html – https://developer.android.com/training/run-background-service/create-service.html Plataforma e Dispositivos Android
  • 41. • Broadcast Receivers – Escutar eventos do sistema – Todos os BroadcastReceivers inscritos são notificados quando evento acontece – Intent contém o evento – Normalmente, sem intervenção do usuário (troca de msgs em background) – Executar em no máximo 10 segundos (caso contrário use Service) – http://developer.android.com/reference/android/content/BroadcastReceiver.html Plataforma e Dispositivos Android
  • 42. • ContentProvider – Prover dados (data sources) – Shared ContentProviders – públicos, acessados por várias apps – Uri – content://<authority>/<param1>/<param2>/…/<paramN> – http://developer.android.com/reference/android/content/ContentProvider.html – http://developer.android.com/guide/topics/providers/content-providers.html – http://developer.android.com/tools/testing/contentprovider_testing.html Plataforma e Dispositivos Android
  • 43. • Fragments – Android 3.0 HoneyComb – Blank Activity – Fragmento de uma tela em um aplicativo Android – Reusável – herda de android.app.Fragment – Deve sempre estar contido em uma Activity – Possui seu próprio cicloe de vida, afetado pelo lifecycle da Activity – http://developer.android.com/reference/android/app/Fragment.html – http://developer.android.com/guide/components/fragments.html – http://developer.android.com/training/basics/fragments/index.html Plataforma e Dispositivos Android
  • 44. • Fragments – View → findViewById() – Fragment → findFragmentById() ou findFragmentByTag() através do método getFragmentManager() – método getActivity() retorna a Activity corrente do Fragment – método beginTransaction() possibilita adicionar, remover ou substituir um Fragment em tempo de execução Plataforma e Dispositivos Android
  • 49. cursos@nxt-mobile.com Todas as marcas, nomes, relatórios e recursos visuais utilizados e/ou citados nessa apresentação são de propriedade das respectivas empresas. Todos os direitos reservados.