Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introdução ao android e plataforma android

717 views

Published on

Introdução ao android e plataforma android
Android Introduction

Published in: Technology
  • Be the first to comment

Introdução ao android e plataforma android

  1. 1. Introdução ao Android
  2. 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. 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. 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. 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
  6. 6. Plataforma e Dispositivos Android
  7. 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. 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. 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. 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
  11. 11. Plataforma e Dispositivos Android
  12. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  45. 45. Plataforma e Dispositivos Android
  46. 46. 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.

×