Comunicação via Sockets

Tamanho: px
Começar a partir da página:

Download "Comunicação via Sockets"

Transcrição

1 Programação para a Plataforma Android Aula 9 Comunicação via Sockets O que são sockets? O que são data access objects? Como criar servidores de serviços distribuídos? Aplicações mulb threading simples O padrão de projetos command O que é o princípio da inversão de dependências?

2 Sockets Sockets são uma abstração de endereços de comunicação: Um nome de host, mais um número de porta. Esse Bpo de dados é a abstração de comunicação básica em várias linguagens de programação. Java não é exceção.

3 Banco de Dados Distribuído Serviço de notas de estudantes: Implemente um banco de dados distribuído que informe a nota de um estudante. Estudantes são encontrados por um id um inteiro do tipo longo que os identifica unicamente. O banco de dados deve ser acessado via um DAO (Data Access Object) As operação aceitas são add, get, delete e update. O servidor de dados deve receber conexões na porta O servidor deve criar uma thread para tratar cada conexão recebida. O banco de dados deve receber conexões de clientes android.

4 Data Access Object Um DAO é um objeto que faz a intermediação entre a lógica de serviço, e o sistema de banco de dados. É o intermediário. Operações Bpicamente fornecidas por um DAO são adicionar, atualizar, remover e pesquisar. Em termos de padrões de projeto um DAO é um adaptador. Como descrever o DAO em Java?

5 Data Access Object server/dao.java package server; public interface DAO<K, V> { V get(k key); void add(k key, V value); O que são esses K s e V s? O nosso banco de dados irá armazenar estudantes. void delete(k key); void update(k key, V value); O que é um estudante?

6 Estudantes public class Student { public Student(long key, String name, double grade) { this.name = name; this.grade = grade; this.key = key; public final String name; public final double grade; public final long key; public String tostring() { Instâncias dessa classe deverão ser passadas via rede. return name + "" + "(" + key + "): " + grade; server/student.java Qual propriedade objetos passáveis via rede devem ter?

7 import java.io.serializable; public class Student implements Serializable { public Student(long key, String name, double grade) { this.name = name; this.grade = grade; this.key = key; public final String name; public final double grade; public final long key; public String tostring() { Estudantes Como será nosso servidor de banco de dados? return name + "" + "(" + key + "): " + grade; server/student.java

8 server/server1/gradeserver.java O Servidor public stabc void main(string[] args) { Map<Long, Student> students = new HashMap<Long, Student>(); loaddb(students); ServerSocket serversocket = null; boolean listening = true; try { serversocket = new ServerSocket(4444); System.out.println("WaiBng for connecbon"); while (listening) { new StudentHandlerThread(serverSocket.accept(), students).start(); serversocket.close(); catch (IOExcepBon e) { e.printstacktrace(); System.exit( 1); O que é um stub? Precisamos implementar um stub para testar nosso programa. E como será a implementação de nosso stub?

9 Um Stub muito Simples private stabc void loaddb(map<long, Student> students) { students.put( l, new Student( L, "Alberico", 90.5)); students.put( l, new Student( L, "Bernadino", 71.0)); students.put( l, new Student( L, "Romao", 84.0));

10 server/server1/gradeserver.java O Servidor public stabc void main(string[] args) { Map<Long, Student> students = new HashMap<Long, Student>(); loaddb(students); ServerSocket serversocket = null; boolean listening = true; try { serversocket = new ServerSocket(4444); System.out.println("WaiBng for connecbon"); while (listening) { new StudentHandlerThread(serverSocket.accept(), students).start(); serversocket.close(); catch (IOExcepBon e) { e.printstacktrace(); System.exit( 1); O que é uma thread? Agora precisamos implementar essa thread E como implementar threads em Java?

11 server/server1/studenthandlerthread.java public class StudentHandlerThread extends Thread { private Socket socket = null; Map<Long, Student> students; A Thread Novamente: o que é uma thread? public StudentHandlerThread(Socket socket, Map<Long, Student> students) { System.out.println("Got conecbon!"); this.socket = socket; this.students = students; public void run() {... Como inicia-se a execução de uma thread? Qual a vantagem de se programar com threads? Que suporte java dá para programação multi-thread? Como implementar o método run?

12 server/server1/studenthandlerthread.java public void run() { try { ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream()); ObjectInputStream in = new ObjectInputStream(socket.getInputStream()); Long key = (Long) in.readobject(); while (key.longvalue()!= 0L) { System.out.println("Received " + key); if (students.containskey(key)) { out.writeobject(students.get(key)); else { out.writeobject(new Student( 1, "", 0.0)); key = (Long) in.readobject(); out.close(); in.close(); socket.close(); catch (ExcepBon e) { e.printstacktrace(); Quantas vezes essa thread provê esse serviço? Que tipo de serviço essa thread provê? O que acontece quando um id não está presente no banco de dados? Precisamos implementar o lado cliente da aplicação

13 O Lado Cliente public class Dao1 implements DAO<Long, Student> { public Student get(long key) {... public void add(long key, Student value) {... Por enquanto, vamos prover somente o get. public void update(long key, Student value) {... public void delete(long key) {... server/server1/dao1.java E como seria a implementação do get?

14 Implementação do DAO public Student get(long key) { Student s = null; Socket socket; ObjectOutputStream out; ObjectInputStream in; try { socket = new Socket(" ", 4444); out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); out.writeobject(new Long(key)); s = (Student) in.readobject(); out.writeobject(new Long(0L)); socket.close(); out.close(); in.close(); catch (ExcepBon e) { e.printstacktrace(); return s; server/server1/dao1.java Comecemos então pelo layout! Que endereço é esse? Olhando para cliente e servidor, qual é o protocolo de comunicação? Ok, mas agora é preciso usar esse cliente em um telefone

15 Aviso importante: Setup Para que nosso cliente funcione, ele precisa enxergar o servidor. Botão direito no projeto > build path > configure build path Lembre se de exportar o pacote server com a aplicação, ou ela será compilada, mas não executará corretamente.

16 Layout do Cliente Como criar esse layout em XML?

17 <LinearLayout xmlns:android="h7p://schemas.android.com/apk/res/ android" android:orientabon="ver>cal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" <LinearLayout android:orientabon="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="0.3"/> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> Vamos precisar de algumas constants strings. main.xml Layout do Cliente

18 Layout do Cliente <LinearLayout xmlns:android="h7p://schemas.android.com/apk/res/ android" android:orientabon="ver>cal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" <LinearLayout android:orientabon="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="0.3"/> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> main.xml <?xml version="1.0" encoding="u} 8"?> <resources> <string name="app_name">aula9</string> <string name="client_name">daoclient</string> <string name="read">r</string> <string name="write">w</string> <string name="lblresults">nome e Nota:</string> <string name="get">g</string> <string name="add">a</string> <string name="upd">u</string> <string name="del">d</string> <string name="cln">c</string> <string name="siz">s</string> </resources> E como implementar a atividate? strings.xml

19 @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); final EditText txtid = (EditText) findviewbyid(r.id.txtid); final EditText txtname = (EditText) findviewbyid(r.id.txtname); final EditText txtgrade = (EditText) findviewbyid(r.id.txtgrade); ((Bu on) findviewbyid(r.id.read)).setonclicklistener(new Bu on.onclicklistener() { public void onclick(view arg0) { String strid = txtid.gettext().tostring(); long id = Long.parseLong(strId); Dao1 d = new Dao1(); Student s = d.get(id); txtname.settext(s.name); txtgrade.settext(string.valueof(s.grade)); }); AulaAcBvity9.java Essa atividade precisa de permissões especiais. Quais? E como indicamos que essas permissões são necessárias?

20 manifest.xml Manifesto! Agora temos de testar nossa atividade! Como? <?xml version="1.0" encoding="u} 8"?> <manifest xmlns:android="h p://schemas.android.com/apk/res/android" package="com.aula9" android:versioncode="1" android:versionname="1.0" > <applicabon <acbvity android:name=".aulaacibvity9" <intent filter> <acbon android:name="android.intent.acbon.main" /> <category android:name="android.intent.category.launcher" /> </intent filter> </acbvity> </applicabon> <uses sdk android:minsdkversion="2" /> <uses permission android:name="android.permission.internet" /> </manifest>

21 Objetos Remotos A mágica de programar para as interfaces. Note que nosso DAO funciona como um objeto remoto. Ele é usado como se seus dados esbvessem disponíveis localmente, ainda que esses dados estejam distribuídos! Simplesmente olhando para esse código, não é possível saber que o objeto é remoto. public void onclick(view arg0) { String strid = txtid.gettext().tostring(); long id = Long.parseLong(strId); Dao1 d = new Dao1(); Student s = d.get(id); txtname.settext(s.name); txtgrade.settext(string.valueof(s.grade));

22 Ligando o Servidor Podemos abrir uma nova instância de Eclipse, ou simplesmente iniciar o servidor a parbr da linha de comando: ~/workspace/server$ cd bin/ ~/workspace/server/bin$ java server.server1.gradeserver Waiting for connection Agora já podemos usar o cliente!

23 Testando a Aplicação Precisamos implementar os outros métodos: add, update, delete. Mas o nosso programa possui várias falhas de projeto! Quais? Existem falhas no servidor Mas também existem falhas no cliente!

24 Analisando a Camada de Comunicação public Student get(long key) { Student s = null; Socket socket; ObjectOutputStream out; ObjectInputStream in; try { socket = new Socket(" ", 4444); out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); out.writeobject(new Long(key)); s = (Student) in.readobject(); out.writeobject(new Long(0L)); socket.close(); out.close(); in.close(); catch (ExcepBon e) { e.printstacktrace(); return s; server/server1/dao1.java Há um grande desperdício de recursos aqui. Que desperdício é esse?

25 Analisando a Camada de Comunicação public Student get(long key) { Student s = null; Socket socket; ObjectOutputStream out; ObjectInputStream in; try { socket = new Socket(" ", 4444); out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); out.writeobject(new Long(key)); s = (Student) in.readobject(); out.writeobject(new Long(0L)); socket.close(); out.close(); in.close(); catch (ExcepBon e) { e.printstacktrace(); return s; server/server1/dao1.java Há um grande desperdício de recursos aqui. Que desperdício é esse? E como reusar os canais de comunicação? Como garantir que o canal aberto seja eventualmente fechado?

26 O padrão Command server/server2/command.java public interface Command { void execute(dao6 d); Temos um miniarcabouço. Vocês lembram o que é um arcabouço? Esse padrão é uma forma de inversão de dependências. O que é isso? public class Invoker { public void invoke(dao6 d, Command c) { openconnecbon(); d.setchannels(out, in); c.execute(d); closeconnecbon(); server/server2/invoker.java

27 O padrão Command server/server2/command.java public interface Command { void execute(dao6 d); Como estão sendo divididas as responsabilidades? public class Invoker { public void invoke(dao6 d, Command c) { openconnecbon(); d.setchannels(out, in); c.execute(d); closeconnecbon(); server/server2/invoker.java

28 Command Como transcrever esses elementos para nossa aplicação?

29 server/server2/invoker.java O Invocador public class Invoker { public void invoke(dao6 d, Command c) {... private void openconnecbon() {... private void closeconnecbon() {... public Invoker(String host, int port) { this.host = host; this.port = port; public class Invoker { public void invoke(dao6 d, Command c) { openconnecbon(); d.setchannels(out, in); c.execute(d); closeconnecbon();

30 O Invocador private void openconnecbon() { try { socket = new Socket(host, port); out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); catch (ExcepBon e) { e.printstacktrace(); server/server2/invoker.java private void closeconnecbon() { try { out.writeobject(new Integer(EOF)); out.flush(); socket.close(); out.close(); in.close(); catch (ExcepBon e) { e.printstacktrace(); Quais os campos de objetos invokers? Como seria o construtor da classe Invoker? public void invoke(dao6 d, Command c) { openconnecbon(); d.setchannels(out, in); c.execute(d); closeconnecbon();

31 Ainda o Invocador public class Invoker { private stabc final int EOF = 1; private String host; private int port; private Socket socket = null; private ObjectOutputStream out = null; private ObjectInputStream in = null; public Invoker(String host, int port) { this.host = host; this.port = port; private void closeconnecbon() { private void openconnecbon() { public void invoke() { Quais são as responsabilidades do DAO?

32 Inversão de Dependência Antes o DAO Bnha a responsabilidade de abrir a conexão de rede. O DAO dependia da conexão de rede para funcionar. Agora o DAO recebe uma conexão já aberta. A dependência não mais existe. A enbdade responsável por abrir essas conexões, o Invoker, agora depende do DAO. A criação e liberação de recursos já não é mais responsabilidades dos usuários do DAO.

33 server/server2/dao6.java public class Dao6 implements DAO<Long, Student> { private ObjectOutputStream out; private ObjectInputStream in; public void setchannels (ObjectOutputStream out, ObjectInputStream in) { this.out = out; this.in = in; public Student get(long key) { Student s = null; try { out.writeobject(new Integer(DAO.GET)); out.writeobject(new Long(key)); s = (Student) in.readobject(); out.flush(); catch (ExcepBon e) { e.printstacktrace(); return s; O Novo DAO Qual é o protocolo de comunicação? Que constante é essa aqui? Para que ela serve?

34 Constantes para a Comunicação public interface DAO<K, V> { final int GET = 1; final int ADD = 2; final int DELETE = 3; final int UPDATE = 4; final int SIZE = 5; final int PORT = 4444; final String HOST = " "; V get(k key); void add(k key, V value); void delete(k key); void update(k key, V value); int size(); server/dao.java Nós já vimos a implementação desse método. Como ficam os outros?

35 server/server2/dao6.java public void add(long key, Student value) { try { out.writeobject(new Integer(DAO.ADD)); out.writeobject(new Long(key)); out.writeobject(value); out.flush(); catch (ExcepBon e) { e.printstacktrace(); O Novo DAO public void delete(long key) { try { out.writeobject(new Integer(DAO.DELETE)); out.writeobject(new Long(key)); out.flush(); catch (ExcepBon e) { e.printstacktrace(); public void update(long key, Student value) { try { out.writeobject(new Integer(DAO.UPDATE)); out.writeobject(new Long(key)); out.writeobject(value); out.flush(); catch (ExcepBon e) { e.printstacktrace(); Como é a implementação do protocolo no lado servidor?

36 public void run() { try { Integer request = (Integer) in.readobject(); boolean isworking = true; while (isworking) { switch (request.intvalue()) { case DAO.GET: out.writeobject(get((long) in.readobject())); break; case DAO.DELETE: delete((long) in.readobject()); break; case DAO.UPDATE: update((long) in.readobject(), (Student)in.readObject()); break; case DAO.ADD: add((long) in.readobject(), (Student)in.readObject()); break; default: isworking = false; return; request = (Integer) in.readobject(); out.close(); in.close(); socket.close(); catch (ExcepBon e) { e.printstacktrace(); Fecho, mas onde abro? server/server2/studenthandlerthread.java O Servidor public Student get(long key) { Student s = null; if (students.containskey(key)) { s = students.get(key); else { s = new Student( 1, "", 0.0); return s; private Socket socket = null; private Map<Long, Student> students; private ObjectOutputStream out; private ObjectInputStream in;

37 O Servidor public void run() { try { Integer request = (Integer) in.readobject(); boolean isworking = true; while (isworking) { switch (request.intvalue()) { case DAO.GET: out.writeobject(get((long) in.readobject())); break; case DAO.DELETE: delete((long) in.readobject()); break; case DAO.UPDATE: update((long) in.readobject(), (Student)in.readObject()); break; case DAO.ADD: add((long) in.readobject(), (Student)in.readObject()); break; default: isworking = false; return; request = (Integer) in.readobject(); out.close(); in.close(); socket.close(); catch (ExcepBon e) { e.printstacktrace(); server/server2/studenthandlerthread.java public StudentHandlerThread(Socket socket, Map<Long, Student> students) { System.out.println("Got conecbon!"); this.socket = socket; this.students = students; try { out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); catch (ExcepBon e) { e.printstacktrace(); Temos, é claro, outros métodos para implementar

38 O Servidor public void add(long key, Student value) { this.students.put(key, value); public void update(long key, Student value) { add(key, value); public void delete(long key) { this.students.remove(key); Prcisamos, agora, escrever o novo cliente. Temos quatro eventos para tratar. Quais são eles? E como seria o layout do novo programa? server/server2/studenthandlerthread.java

39 Quatro Botões Como fazer um layout assim? Quantos layouts lineares temos aqui? E como seria a atividade cliente? Quantos eventos precisam ser tratados?

40 Layout <LinearLayout xmlns:android= "h p://schemas.android.com/apk/res/android" android:orientabon="verbcal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" <LinearLayout android:orientabon="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="0.3"/> <EditText android:focusable="true" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> <LinearLayout android:orientabon="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> <Bu on android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"/> </LinearLayout> </LinearLayout> client.xml Escreva agora a classe que implementa essa atividade.

41 @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.client); txtid = (EditText) findviewbyid(r.id.txtid); txtname = (EditText) findviewbyid(r.id.txtname); txtgrade = (EditText) findviewbyid(r.id.txtgrade); oncreate ((Bu on) findviewbyid(r.id.get)).setonclicklistener(new GetCmd()); ((Bu on) findviewbyid(r.id.add)).setonclicklistener(new AddCmd()); ((Bu on) findviewbyid(r.id.upd)).setonclicklistener(new UpdCmd()); ((Bu on) findviewbyid(r.id.del)).setonclicklistener(new DelCmd()); ((Bu on) findviewbyid(r.id.cln)).setonclicklistener(new Bu on.onclicklistener() { public void onclick(view arg0) { txtid.settext(""); txtname.settext(""); txtgrade.settext(""); }); Client2.java Precimos implementar todos esses eventos!

42 class UpdCmd implements Command, Bu on.onclicklistener { public void onclick(view arg0) { Invoker i = new Invoker(DAO.HOST, DAO.PORT); Dao6 d = new Dao6(); i.invoke(d, this); public void execute(dao6 d) { long id = Long.parseLong(txtId.getText().toString()); String name = txtname.gettext().tostring(); double grade = Double.parseDouble(txtGrade.getText().toString()); Student std = new Student(id, name, grade); d.update(id, std); Essa alternativa é muito redundante. Como fatorar onclick( )? Já podemos testar nossa aplicação! class GetCmd implements Command, Bu on.onclicklistener { public void onclick(view arg0) { Invoker i = new Invoker(DAO.HOST, DAO.PORT); Dao6 d = new Dao6(); i.invoke(d, this); public void execute(dao6 d) { String strid = txtid.gettext().tostring(); long id = Long.parseLong(strId); Student s = d.get(id); txtname.settext(s.name); txtgrade.settext(string.valueof(s.grade));

43 Client2.java Classes Abstratas abstract class AbstractCommand implements Command, Bu on.onclicklistener { public abstract void execute(dao6 d); public void onclick(view arg0) { Invoker i = new Invoker(DAO.HOST, DAO.PORT); Dao6 d = new Dao6(); i.invoke(d, this); Como seria o tratador do evento de adição de novo dado? Todos os tratadores de evento vão usar esse método onclick Eles terão somente de implementar o método execute.

44 Client2.java AddCmd class AddCmd extends AbstractCommand implements Command { public void execute(dao6 d) { long id = Long.parseLong(txtId.getText().toString()); String name = txtname.gettext().tostring(); double grade = Double.parseDouble(txtGrade.getText().toString()); Student std = new Student(id, name, grade); d.add(id, std); Agora está fácil: como ficaria o comando para pesquisar um ID?

45 getcmd Client2.java class GetCmd extends AbstractCommand implements Command { public void execute(dao6 d) { String strid = txtid.gettext().tostring(); long id = Long.parseLong(strId); Student s = d.get(id); txtname.settext(s.name); txtgrade.settext(string.valueof(s.grade)); E o comando para atualizar um item? Não se esqueçam do comando para apagar um item!

46 UpdCmd Client2.java class UpdCmd extends AbstractCommand implements Command { public void execute(dao6 d) { long id = Long.parseLong(txtId.getText().toString()); String name = txtname.gettext().tostring(); double grade = Double.parseDouble(txtGrade.getText().toString()); Student std = new Student(id, name, grade); d.update(id, std);

47 DelCmd Client2.java class DelCmd extends AbstractCommand implements Command { public void execute(dao6 d) { long id = Long.parseLong(txtId.getText().toString()); d.delete(id);

48 Exercício: Size Modifique a sua aplicação para que ela seja capaz de informar o número de elementos presentes no banco de dados. Será preciso modificar a interface DAO. Será também necessário modificar o layout do cliente. public interface DAO<K, V> { final int GET = 1; final int ADD = 2; final int DELETE = 3; final int UPDATE = 4; final int SIZE = 5; final int PORT = 4444; final String HOST = " "; V get(k key); void add(k key, V value); void delete(k key); void update(k key, V value); int size();

49 Exercício: Size Adicione um botão size à interface do cliente. Quando esse botão receber um clique, o número de elementos armazenados no banco de dados deverá ser impresso na caixa de texto em que são impressas as notas:

Comunicação entre A0vidades

Comunicação entre A0vidades Programação para a Plataforma Android Aula 8 Comunicação entre A0vidades Como invocar uma a0vidade a par0r de outra? Como descrever um serviço em Android? Como duas a0vidades se comunicam? Como abrir uma

Leia mais

Provedores de Conteúdo

Provedores de Conteúdo Programação para a Plataforma Android Aula 12 Provedores de Conteúdo O que são provedores de conteúdo? Como ler dados de outras aplicações? Como iden@ficar recursos de forma única? Como deixar dados disponíveis

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 05 Programando formularios, activities e intents. Dalton Martins dmartins@gmail.com São Paulo, Março, 2012

Leia mais

Programação para a Plataforma Android Aula 7. Mul$mídia

Programação para a Plataforma Android Aula 7. Mul$mídia Programação para a Plataforma Android Aula 7 Mul$mídia Como executar aplicações que contêm músicas? Como abrir vídeos em Android? Quais formatos de músicas são aceitos? Quais formatos de vídeo? Como o$mizar

Leia mais

Programa de Dispositivos Móveis

Programa de Dispositivos Móveis Aula 02 - Exercício Programa de Dispositivos Móveis PDM - Aula02 - Exercício- Ver 02-04/06/2014 08:56 Criando Aplicação Android (BasicView) Vamos continuar a criar interfaces gráficas (UI) básicas com

Leia mais

Java : Comunicação Cliente-Servidor.

Java : Comunicação Cliente-Servidor. Java : Comunicação Cliente-Servidor. Objetivo: Capacitar o aluno a desenvolver uma aplicação servidora para múltiplos clientes. Apresentar as classes Socket e ServerSocket, classes de fluxo de dados, a

Leia mais

Programação para Android. Aula 06: Activity, menus e action bar

Programação para Android. Aula 06: Activity, menus e action bar Programação para Android Aula 06: Activity, menus e action bar Activity A classe Activity é quem gerencia a interface com o usuário. Ela quem recebe as requisições, as trata e processa. Na programação

Leia mais

Programa de Computador que funciona em Rede

Programa de Computador que funciona em Rede Programa de Computador que funciona em Rede professor Robinson Vida Noronha 1 Paradigma Um programa rodando em rede é como uma loja. 2 Uma loja é composta por Vendedores Vendedores 3 Um loja deve servir

Leia mais

Programação para a Plataforma Android Aula 11. Banco de Dados

Programação para a Plataforma Android Aula 11. Banco de Dados Programação para a Plataforma Android Aula 11 Banco de Dados Introdução a linguagem SQL O banco de dados SQLite Como criar e manipular um banco de dados em Android Como apresentar dados na tela do aparelho

Leia mais

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler

Desenvolvimento para Android Prá9ca 2. Prof. Markus Endler Desenvolvimento para Android Prá9ca 2 Prof. Markus Endler Criando o primeiro projeto Android Com o ambiente de desenvolvimento preparado, vá em File - > New - > Project... Na janela que abrir, selecione

Leia mais

Programação de Dispositivos Móveis

Programação de Dispositivos Móveis Aula 04 Programação de Dispositivos Móveis A Classe Activity É obrigatório que cada activity do projeto esteja declarada no arquivo AndroidManisfest.xml, caso contrário não é possível utilizá-la. Para

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ Introdução ao Android SECAP 2014 Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode baixar e modificar Máquina

Leia mais

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

Olho por olho, e o mundo acabará cego. Mohandas Gandhi Sockets Olho por olho, e o mundo acabará cego. Mohandas Gandhi Conectando-se a máquinas remotas. Protocolo Da necessidade de dois computadores se comunicarem surgiram diversos protocolos que permitissem

Leia mais

Programa de Dispositivos Móveis

Programa de Dispositivos Móveis Aula 02 Programa de Dispositivos Móveis A Classe Activity A classe Actvity é similar a classe JFrame do Swing representa basicamente uma tela. Quase todas as atividades interagem com o usuário, então ela

Leia mais

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Programação de Dispositivos Móveis

Programação de Dispositivos Móveis Aula 07 Programação de Dispositivos Móveis Interface Gráfica ListView com ArrayAdapter Um elemento muito utilizado em aplicativos é a ListView, com ela pode-se criar uma lista de objetos. A partir dos

Leia mais

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. JDBC CRIANDO O BANCO DE DADOS: Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos. CRIANDO O PROJETO JAVA PARA DESKTOP: Crie um projeto Java chamado Prograd Crie um pacote chamado

Leia mais

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO

( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO DISPOSITIVOS MOVEIS ANDROID STUDIO Serviço Nacional de Aprendizagem Comercial E.E.P. Senac Pelotas Centro Histórico Programa Nacional de Acesso ao Ensino Técnico e Emprego Curso Técnico em Informática ( TIAGO DOS SANTOS MENDES ) PROGRAMAÇÃO

Leia mais

Armazenamento Persistente de Dados

Armazenamento Persistente de Dados Programação para a Plataforma Android Aula 10 Armazenamento Persistente de Dados Como armazenar as opções de preferência de uma aplicação? Como tocar músicas em uma a@vidade Android? Como armazenar dados

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

Leia mais

Android Banco de Dados. Ivan Nicoli

Android Banco de Dados. Ivan Nicoli Android Banco de Dados Ivan Nicoli SQLite O Android tem suporte ao SQLite (http://www.sqlite.org), um leve e poderoso banco de dados. Cada aplicação pode criar um ou mais banco de dados, que ficam localizados

Leia mais

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android Realização de Dinâmica Hands- On para Construção de uma App Android Dr. Eduardo Manuel de Freitas Jorge, PMP Realização de Dinâmica

Leia mais

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Módulo 2 - Novas Activities Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Inserindo a segunda activity Para inserir uma nova activity basta clicar com o botão direito sobre o pacote,

Leia mais

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos

Programação em Java para a Plataforma Android AULA 1. Primeiros Passos Programação em Java para a Plataforma Android AULA 1 Primeiros Passos O que é Android Como é o desenvolvimento de aplicações para esse ambiente O que é preciso para começar a programar ABvidades, o início

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Prof. Jhonatan Fernando

Prof. Jhonatan Fernando Prof. Jhonatan Fernando É uma classe gerenciadora de UI. É possível informar qual layout (arquivo xml) que será carregado para uma determinada activity. O método responsável por informar qual layout será

Leia mais

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Programação para Android. Aula 05: Estilos e temas; galeria de imagens Programação para Android Aula 05: Estilos e temas; galeria de imagens Objetivos Aplicar estilos e temas Criar uma galeria de imagens com o widget Gallery Parte 01: Estilos e temas Interface de Usuários

Leia mais

Aula 30 - Sockets em Java

Aula 30 - Sockets em Java Aula 30 - Sockets em Java Sockets Sockets são estruturas que permitem que funções de software se interconectem. O conceito é o mesmo de um soquete (elétrico, telefônico, etc...), que serve para interconectar

Leia mais

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler

Desenvolvimento para Android Prá3ca 3. Prof. Markus Endler Desenvolvimento para Android Prá3ca 3 Prof. Markus Endler Exercício 3.1 Solicitando permissão para abrir uma página Web ü Criaremos uma Ac.vity com um EditText (para entrada de uma URL), um Bu?on e uma

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Introdução ao Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Introdução ao Android Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ O que é o Android? Sistema operacional móvel, baseado numa versão modificada do Linux. Código aberto: qualquer pessoa pode

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais

ANDROID APPLICATION PROJECT

ANDROID APPLICATION PROJECT Criando um programa Abrindo o programa Eclipse, clique na opção [FILE], depois em [NEW], selecione a opção [PROJECT], uma janela de opção do tipo de projeto irá se abrir, escolha [ANDROID] logo depois

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Mecanismos de Comunicação. Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/)

Mecanismos de Comunicação. Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/) Mecanismos de Comunicação Sockets em java (http://java.sun.com/docs/books/tutorial/networking/sockets/) Sockets o que é? Um socket é um mecanismo de comunicação (dois sentidos) entre dois programas a funcionar

Leia mais

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6 Android Core Felipe Silveira felipesilveira.com.br Aula 6 Aplicações I Desenvolvimento de Aplicações Android SDK SDK https://developer.android.com/sdk Android SDK Android SDK: Eclipse + ADT plugin + Android

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Programação para a Plataforma Android Aula 13. Localização

Programação para a Plataforma Android Aula 13. Localização Programação para a Plataforma Android Aula 13 Localização O que são serviços baseados em localização? Como usar a API de mapas do Google? Como sobrepor diferentes visões a um mapa? Como integrar o mapa

Leia mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 18 Sockets OLadoServidor O Lado Cliente Múltiplos Clientes 1 Programa Capítulo 18 Sockets

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 03 Introdução ao ambiente de desenvolvimento: Eclipse e Android SDK Dalton Martins dmartins@gmail.com São

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Invocação de Métodos Remotos RMI (Remote Method Invocation) Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente

Leia mais

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações Programação Orientada por Objectos com Java www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Multithreading 154 Objectivos Ser capaz de: Explicar os conceitos básicos de multithreading Criar threads múltiplos

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 06 Controlando o fluxo de eventos e passando parametro para Activities. Dalton Martins dmartins@gmail.com

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this. Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.x = x; this.y = y; public String tostring(){ return "(" + x + "," +

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 3 Invocação de Objetos

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

Leia mais

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na

Leia mais

Camada de Transporte. Bruno Silvério Costa

Camada de Transporte. Bruno Silvério Costa Camada de Transporte Bruno Silvério Costa Serviços Oferecidos à camada superior Camadas de rede, transporte e aplicação. Primitivas do Serviço de Transporte As primitivas para um serviço de transporte

Leia mais

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos. import java.util.scanner; class Data... class Compromisso... public class Agenda private Compromisso[] compromissos; private Compromisso[] realoquecompromissos (Compromisso[] vetor, int tamanhodesejado)

Leia mais

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar Projeto Integrador Sistemas Operacionais Prof.ª Lucilia Ribeiro GTI 3 Noturno Grupo: Anderson Alves da Mota. André Luiz Silva. Misael bezerra dos santos. Sandro de almeida silva. Analisar os sistemas operacionais

Leia mais

Introdução ao Android

Introdução ao Android Introdução ao Android André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida Parte 1 Conhecendo o Sistema e Primeiro Programa Roteiro Pré-requisitos Conceitos Básicos Configurando o Ambiente

Leia mais

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos Desenvolvimento com Android Studio Aula 02 Widgets, Manipulação de Dados e Programação de Eventos Widgets TextView O Widget TextView é utilizado para apresentar um texto não editável na tela. Qualquer

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Android Android é um sistema operacional para dispositivos móveis Kernel Linux, drivers e bibliotecas do

Leia mais

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Módulo 4 - Interface Gráfica Gerenciadores de Layout Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ Classe View Todos os componente gráficos são filhos de View Para se criar um novo componente

Leia mais

Android Layout Manager. Ivan Nicoli

Android Layout Manager. Ivan Nicoli Android Layout Manager Ivan Nicoli Classe View A classe android.view.view é a classe mãe de todos os componentes visuais do Android. Qualquer desenvolvedor pode criar seu próprio componente herdando a

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Cliente-servidor com Sockets TCP

Cliente-servidor com Sockets TCP Cliente-servidor com Sockets TCP Paulo Sérgio Almeida Grupo de Sistemas Distribuídos Departamento de Informática Universidade do Minho 2007/2008 c 2000 2007 Paulo Sérgio Almeida Cliente-servidor com Sockets

Leia mais

AULA 2. Minicurso PET-EE UFRN

AULA 2. Minicurso PET-EE UFRN AULA 2 Minicurso PET-EE UFRN Agora iremos mostrar o passo-a-passo de como criar um projeto no Android Studio. 1. No Android Studio, crie um New Project. 2. Em Configure your new project, você deve preencher

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

5 Caso de estudo O cartão fidelidade

5 Caso de estudo O cartão fidelidade 5 Caso de estudo O cartão fidelidade Cartão de fidelização de clientes das distribuidoras de combustível. Definição em JAVA da classe CartaoFidelidade, que deverá apresentar uma funcionalidade semelhante

Leia mais

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente Java RMI - Remote Method Invocation Callbacks Folha 9-1 Vimos, na folha prática anterior, um exemplo muito simples de uma aplicação cliente/ servidor em que o cliente acede à referência remota de um objecto

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho

Programação para Android. Aula 10: Acesso a câmera, sms e recursos do aparelho Programação para Android Aula 10: Acesso a câmera, sms e recursos do aparelho Objetivos Nesta aula iremos aprender como invocar os recursos do aparelho: Fazer chamadas telefônicas Enviar SMS Utilizar a

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Introdução ao Desenvolvimento para Sistema Operacional Android

Introdução ao Desenvolvimento para Sistema Operacional Android Dr. prof.sylvio@fatecriopreto.edu.br Conteúdo: 1) Introdução ao Android e Mercado de Dispositivos Móveis; 2) Plataforma: 2.1) Arquitetura; 2.2) Framework; 2.3) Bibliotecas; 2.4) Android Runtime; 2.5) Linux

Leia mais

Acesso a banco de dados

Acesso a banco de dados Acesso a banco de dados 1. Crie uma pasta chamada AcessoBD com as seguintes subpastas: Aplicativos, Drivers, AcessoMSACCESS, AcessoMySQL e AcessoSQLSERVER Exemplo 1: MS ACCESS 1. Crie um banco de dados

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

POO Programação Orientada a Objetos. Classes em Java

POO Programação Orientada a Objetos. Classes em Java + POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo

Leia mais

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...

Leia mais

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015

Manipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações

Leia mais

FTP FILE F TRANSFER PROTOCOL. Tópicos

FTP FILE F TRANSFER PROTOCOL. Tópicos FTP FILE F TRANSFER PROTOCOL Tópicos Revisão da aplicação FTP Implementação simples em Java de uma conexão FTP Implementação simples em Java de um comando de transferência de arquivo Descrição dos exercícios

Leia mais

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. 1 - Criando uma classe em Java Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans. Antes de criarmos a(s) classe(s) é necessário criar o projeto

Leia mais

Programação para a Plataforma Android Aula 2. Aula 2 Views

Programação para a Plataforma Android Aula 2. Aula 2 Views Programação para a Plataforma Android Aula 2 Aula 2 Views O que é modelo, visão e controle Como definir layouts gráficos Como Separar visão de modelo Como criar layouts em arquivos XML Como adicionar eventos

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

Is Event Dispatcher Threade (Animation)

Is Event Dispatcher Threade (Animation) JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: Is Event Dispatcher Threade (Animation) FACULDADE DE TECNOLOGIA SENAC PELOTAS Nome do aluno: João Vitor Ávila dos Santos Identificação da Turma: 3º Semestre/

Leia mais

Implementação de Classe e Auto-Relacionamento em Java

Implementação de Classe e Auto-Relacionamento em Java UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Implementação de Classe e Auto-Relacionamento em Java 1)Introdução Um modelo de Diagrama de Classes representa a estrutura definida

Leia mais

Display de Cristal Líquido

Display de Cristal Líquido TUTORIAL Display de Cristal Líquido Autor: Tiago Lone Nível: Básico Criação: 09/03/2006 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível

Leia mais

Invocação Remota MC704

Invocação Remota MC704 Invocação Remota MC704 Aplicações distribuídas Aplicação distribuída: conjunto de processos que cooperam entre si para prover um serviço ou realizar uma computação normalmente processos precisam invocar

Leia mais

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet. Sockets Programando para redes em Java Introdução n O URLs e URLConnections fornecem um mecanismo de alto nível para acessar recursos na Internet. n Em aplicações de servidor de cliente, o servidor fornece

Leia mais

Threads e Sockets em Java. Threads em Java. Programas e Processos

Threads e Sockets em Java. Threads em Java. Programas e Processos Threads em Java Programas e Processos Um programa é um conceito estático, isto é, um programa é um arquivo em disco que contém um código executável por uma CPU. Quando este programa é executado dizemos

Leia mais

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 06 APRESENTAÇÃO Uso e criação de classes; uso de herança; uso de final,

Leia mais

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android MVVM_ Implementando o padrão de projeto MVVM com Android Binding Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android O padrão de projeto MVVM O MVVM (Model-View-ViewModel) foi divulgado

Leia mais