Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisão dispositivos Móveis Maquina Virtual Na ciência da computação, máquina virtual consiste em um software de ambiente computacional, que executa programas como um computador real, também chamado de processo de virtualização. Uma máquina virtual (Virtual Machine – VM) pode ser definida como “uma duplicata eficiente e isolada de uma máquina real”. A IBM define uma máquina virtual como uma cópia isolada de um sistema físico, e esta cópia está totalmente protegida. Uma máquina virtual é um arquivo de computador (normalmente chamado de imagem) que se comporta como um computador de verdade. Em outras palavras, é a criação de um computador dentro de um computador. Ela é executada em uma janela, assim como outros programas, proporcionando ao usuário final a mesma experiência na máquina virtual que ele teria no sistema operacional host. Uma máquina virtual é um software que funciona como um ou vários hardwares, todos isolados. SDK O Android SDK ou Kit de Desenvolvimento de Software para Android é um pacote com diversas ferramentas utilizadas pelo Android Studio e pelos desenvolvedores Android, incluindo componentes como o SDK Tools, Build Tools e o Platform Tools. Android Virtual Device Manager O AVD Manager fornece uma interface gráfica na qual você pode criar e gerenciar dispositivos virtuais Android (AVDs) que são executados no Android Emulator. Executando o AVD Manager: No Android Studio, selecione Tools > Android > AVD Manager.Ou, clique no ícone do AVD Manager na barra de ferramentas. Android Emulator Uma ferramenta de emulação de dispositivo baseada no QEMU que você pode usar para debugar e testar seus aplicativos em um ambiente real de execução do Android. SDK Manager Permite gerenciar os pacotes do SDK, como plataformas instaladas e imagens do sistema. SQlite Permite acessar os arquivos de dados do SQLite criados e usados por aplicativos do Android. Ambiente de Desenvolvimento A principal linguagem de programação utilizada para construção de aplicações para Plataforma Android é a linguagem Java. Java Runtime Environment (JRE) Java Runtime Environment (JRE) significa Ambiente de Tempo de Execução Java, e é utilizado para executar as aplicações da plataforma Java. É composto por bibliotecas (APIs) e pela Máquina virtual Java (JVM) Java Development Kit : Java Development Kit (JDK) significa Kit de Desenvolvimento Java, e é um conjunto de utilitários que permitem criar sistemas de software para a plataforma Java. É composto por compilador e bibliotecas. Concluída a instalação do JDK você já pode escolher o ambiente de desenvolvimento para começar a construir as suas primeiras aplicações na plataforma Android. O ambiente Android Studio é uma nova plataforma para desenvolvimento de aplicações para Android. Este ambiente oferece recursos adicionais em relação ao Eclipse e segundo recomendações do Google será o ambiente oficial para construção de aplicações. O Android Studio é baseado no ambiente IntelliJ IDEA e está disponível para as plataformas Windows, MacOS e Linux. Conforme observado anteriormente, nesta disciplina será utilizado o ambiente Android Studio IntelliJ IDEA - é um ambiente de desenvolvimento integrado em Java para o desenvolvimento de software de computador. Ele é desenvolvido pela JetBrains e está disponível como uma edição da comunidade licenciada do Apache 2 e em uma edição comercial proprietária. Ambos podem ser usados para desenvolvimento comercial. SQLite Componentes SQLite não tem um programa de servidor de banco de dados separado, em vez disso , torna-se parte do aplicativo que usa o banco de dados. Design altamente eficiente do software implementa a maior parte do padrão SQL-92, evitando o uso intenso de recursos de computação geralmente encontrado com software de gerenciamento de banco de dados. SQLite é um open-source, sistema de gerenciamento gratuito , banco de dados relacional que utiliza o padrão da indústria, Structured Query Language, ou SQL. tornando-se uma escolha popular para aplicações rodando em smartphones , tablets e outros sistemas de pequeno porte. O principal componente em SQLite é a sua biblioteca, um arquivo que torna-se parte de uma aplicação de software maior. Por exemplo, se um programador escreve um jogo que usa um banco de dados SQLite, sua biblioteca é adicionado aos arquivos de programa para o jogo em um processo chamado de " compilação . " O arquivo programa compilado contém o jogo ea biblioteca SQLite . Quando um jogador faz uma pontuação elevada , o programa de jogo passa as informações para a biblioteca , que grava o placar para o banco de dados. Banco de Dados lojas SQLite sua informações do banco de dados em um único arquivo , um arquivo por banco de dados. O arquivo contém as tabelas, visões e outras estruturas normalmente presentes em um banco de dados , bem como informações de apoio. Por exemplo, o arquivo contém índices usados para localizar dados em um banco de dados rapidamente. O tamanho máximo de um arquivo de banco de dados SQLite é de 140 terabytes , suficiente para quase qualquer uso que se possa imaginar . Auxiliar Arquivos SQLite mantém arquivos auxiliares que controlam o estado do banco de dados . Esses arquivos residem no mesmo diretório que o arquivo de banco de dados. Um arquivo, chamado um jornal rollback, salva as operações em andamento. Se o computador tiver uma falha de energia no meio de uma atualização de banco de dados, e posteriormente é reiniciado, SQLite usa o diário de reversão para desfazer graciosamente quaisquer transações semi-acabados . Outro arquivo, chamado log de write-ahead ou WAL , serve a um propósito similar. Um banco de dados pode ter um diário de reversão ou uma WAL , mas não ambos . A plataforma Android oferece suporte nativo ao armazenamento persistente de dados utilizando o SQLite. Este é um banco de dados de código fonte aberto, multiplataforma e tem sido utilizado principalmente em aplicativos embarcados. A arquitetura de funcionamento do SQLite é diferente de outros sistemas de gerenciamento de banco de dados tradicionais, uma vez, que todas as funcionalidades do sistema são oferecidas por meio de uma biblioteca escrita na linguagem C. Este fato torna o SQLite uma solução leve, e de fácil integração, pois não necessita de instalação, configuração e administração. O SQLite é compatível com um grande número de linguagens de programação, e as instruções SQL utilizadas no banco são baseadas no padrão SQL-92 (SQLITE, 2014). No contexto da plataforma Android, o SQLite é encapsulado em um provedor de conteúdo (content provider). Dessa forma, os dados são manipulados de maneira abstrata e podem ser disponibilizados para os diversos serviços oferecidos nos dispositivos. As bases de dados criadas com o SQLite são privadas e acessíveis apenas pelo aplicativo responsável, ou, disponibilizada para outros aplicativos desde que atribuídas as devidas permissões. O armazenamento persistente dos dados ocorre em um caminho pré-definido do dispositivo Componentes das Aplicações Android A plataforma Android tem uma estrutura de componentes altamente modular, o que permite o reaproveitamento de código entre as aplicações. Os componentes são divididos em quatro tipos, os quais possuem características e funcionalidades distintas. Esses componentes são denominados: • Atividades (Activities) • Serviços (Services) • Provedores de Conteúdo (Content Providers) • Receptores de Transmissão (Broadcat Receivers) Nas aplicações Android uma Atividade (Activity) é utilizada para representar uma tela de interface com o usuário. As aplicaçõespodem ser formadas por várias atividades, cada qual funcionando de maneira independente e podem realizar a troca de informações entre elas. Em termos de programação, toda atividade é derivada (ou herda) uma classe denominada Activity do pacote android. app.Activity. Esta superclasse fornece o método fundamental para criação da atividade conhecido como onCreate. No método onCreate é possível especificar todas as característica que deverão ser inicializadas na interface. Em aplicações com múltiplas atividades, é necessário indicar qual atividade é definida como principal, ou seja, qual atividade a primeira atividade que será carregada quando a aplicação for inicializada. A indicação da atividade principal é realizada no arquivo AndroidManifest.xml, o qual será abordado nas seções seguintes (ACTIVITIES, 2014). O componente de Serviço (Service) tem como principal objetivo a execução de tarefas em background. Um serviço pode ser utilizado, por exemplo, para executar um arquivo de música no formato MP3, enquanto o usuário interage com a aplicação. Uma característica importante dos serviços é o fato de não possuir interface gráfica, além disso, permite a execução de operações durante um longo tempo sem interferir na interação do usuário com a aplicação (SERVICES, 2014). Um Intent é um objeto que fornece vínculos de tempo de execução entre componentes separados, como duas atividades. O Intent representa uma "intenção de fazer algo" do app. Você pode usar intents para uma ampla variedade de tarefas, mas o intent iniciará outra atividade nesta lição. Botões do rádio <?xml version="1.0" encoding="utf-8"?> <RadioGroup xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio_pirates" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/pirates" android:onClick="onRadioButtonClicked"/> <RadioButton android:id="@+id/radio_ninjas" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/ninjas" android:onClick="onRadioButtonClicked"/> </RadioGroup> Dentro do Activity que hospeda esse layout, o método a seguir lida com o evento click dos dois botões de opção: public void onRadioButtonClicked(View view) { // Is the button now checked? boolean checked = ((RadioButton) view).isChecked(); // Check which radio button was clicked switch(view.getId()) { case R.id.radio_pirates: if (checked) // Pirates are the best break; case R.id.radio_ninjas: if (checked) // Ninjas rule break; } } Checkboxes <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <CheckBox android:id="@+id/checkbox_meat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/meat" android:onClick="onCheckboxClicked"/> <CheckBox android:id="@+id/checkbox_cheese" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/cheese" android:onClick="onCheckboxClicked"/> </LinearLayout> Na Activity que hospeda esse layout, o método a seguir lida com o evento click para ambas as caixas de seleção: un onCheckboxClicked(view: View) { if (view is CheckBox) { val checked: Boolean = view.isChecked when (view.id) { R.id.checkbox_meat -> { if (checked) { // Put some meat on the sandwich } else { // Remove the meat } } R.id.checkbox_cheese -> { if (checked) { // Cheese me } else { // I'm lactose intolerant } } // TODO: Veggie sandwich } } } Editar texto m elemento da interface do usuário para inserir e modificar texto. Ao definir um widget de edição de texto, você deve especificar o R.styleable.TextView_inputType atributo Por exemplo, para entrada de texto sem formatação, defina inputType como "text": <EditText android: id = "@ + id / plain_text_input" android: layout_height = "wrap_content" android: layout_width = "match_parent" android: inputType = "text" /> A escolha do tipo de entrada configura o tipo de teclado mostrado, os caracteres aceitáveis e a aparência do texto de edição. Por exemplo, se você deseja aceitar um número secreto, como um pino ou número de série exclusivo, pode definir inputType como "numericPassword". Um inputType de "numericPassword" resulta em um texto de edição que aceita apenas números, mostra um teclado numérico quando focado e mascara o texto digitado para fins de privacidade. Adapters Um Adapter funciona como uma ponte entre uma AdapterView e os dados destinados para essa View. O Adapter permite o acesso aos itens de dados. O Adapter também é responsável por fazer uma exibição para cada item no conjunto de dados. Ou seja, um Adapter representa a ligação entre a View e alguma fonte de dados. Ele geralmente vêm em dois tipos: aqueles que representam dados baseadas em array’s ou listas; aqueles que representam os dados baseados em cursor. Neste post falaremos sobre criação de tipos relacionados à um Adapter (List, Spinner, GridView, Gallery, e também mais um pouco mais sobre banco de dados (criando um exemplo que faz a interação entre um banco de dados e um Adapter). Primeiramente, veremos os tipos de listas mais comuns em Android (ArrayAdapter, SimpleAdapter, CursorAdapter, dentre outros), para então aplicá-las em componentes de interface que associam listas com View (tipos Spinner, GridView, Gallery). Um Adapter é uma classe de Android que intermedia a criação de listas, e também lida com outros tipos de componentes, como os tipos Spinner, GridView, Gallery e AutoCompleteTextView. Podemos utilizar um Adapter em uma Activity de duas maneiras: • Extendendo de Activity. Neste caso, precisamos declarar um atributo de classe do tipo ListView, e também definir o Adapter da seguinte forma: mListView.setAdapter(). • Extendendo de ListActivity. Neste caso, a ListView já está implícita na Activity, e definimos o Adapter através do método setListAdapter(). E não precisamos definir um layout para a Activity (como comumente é feito através do método setContentView()), uma vez que uma classe que extende de ListActivity já implementa nativamente uma ListView. Resposta ao click /* * Setup the 'next' button. The counter is incremented when clicked and * the new value is displayed in the TextSwitcher. The change of text is * automatically animated using the in/out animations set above. */ Button nextButton = (Button) findViewById(R.id.button); nextButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {mCounter++; mSwitcher.setText(String.valueOf(mCounter)); } });
Compartilhar