Total de visualizações de página
Debug Wireless : Android Studio
Saudações pessoal,
Nas minha andança pelo mundo de desenvolvimento android deparei-me com uma situação.
Estando eu a programar e testando um aplicativo via USB surge o meu irmão que pede o cabo com urgência porque precisava tirar uma informação do telefone e este estava quase a desligar. Tive de entregar.
Surgiu-me então a pergunta: Será que posso fazer o debug por uma conexão wireless ?
Comecei a busca e encontrei em poucos passos como fazer. Segue a baixo:
Passo 1:
Habilite a opção de desenvolvedor em seu aparelho, para tal vá em "Configurações > Sobre o telefone > Status do telefone" no final da tela esta a opção "Número da versão", clique sobre ela 10 vezes e mostrará a mensagem que é um desenvolvedor.
Passo 2:
Terá inicialmente de fazer com que o seu aparelho android escute a porta 5555 pelo seguinte comando (Conecte o aparelho via USB):
Este passo é feito apenas uma vez.
Passo 3:
Agora pode desligar o cabo usb, ligar o PC e o aparelho na mesma rede wi-fi (tenha atenção com o proxy e firewall)
Abra o terminal e vá até a pasta do SDK:
C:\Users\username\AppData\Local\Android\Sdk\platform-tools>
Execute o comando:
adb.exe connect 10.5.1.17:5555
Para ver a lista de dispositivos conectados digite o comando "adb.exe devices"
Já está, pode continuar a desenvolver e aqora testando usando uma conexão wireless.
Espero ter ajudado.
Deixa o teu comentário.
Fonte: https://developer.android.com/studio/command-line/adb.html#wireless
Nas minha andança pelo mundo de desenvolvimento android deparei-me com uma situação.
Estando eu a programar e testando um aplicativo via USB surge o meu irmão que pede o cabo com urgência porque precisava tirar uma informação do telefone e este estava quase a desligar. Tive de entregar.
Surgiu-me então a pergunta: Será que posso fazer o debug por uma conexão wireless ?
Comecei a busca e encontrei em poucos passos como fazer. Segue a baixo:
Passo 1:
Habilite a opção de desenvolvedor em seu aparelho, para tal vá em "Configurações > Sobre o telefone > Status do telefone" no final da tela esta a opção "Número da versão", clique sobre ela 10 vezes e mostrará a mensagem que é um desenvolvedor.
Passo 2:
Terá inicialmente de fazer com que o seu aparelho android escute a porta 5555 pelo seguinte comando (Conecte o aparelho via USB):
$ adb tcpip 5555
Este passo é feito apenas uma vez.
Passo 3:
Agora pode desligar o cabo usb, ligar o PC e o aparelho na mesma rede wi-fi (tenha atenção com o proxy e firewall)
Abra o terminal e vá até a pasta do SDK:
C:\Users\username\AppData\Local\Android\Sdk\platform-tools>
Execute o comando:
adb.exe connect 10.5.1.17:5555
Para ver a lista de dispositivos conectados digite o comando "adb.exe devices"
Já está, pode continuar a desenvolver e aqora testando usando uma conexão wireless.
Espero ter ajudado.
Deixa o teu comentário.
Fonte: https://developer.android.com/studio/command-line/adb.html#wireless
Persistencia de Dados Android - ROOM - Parte 2
Saudações pessoal,
Hoje vou mostrar o código completo de suporte ao post Persistencia de Dados Android - ROOM
Fiz um código auto-explicativo por ser complemento do post passado.
Como é possível ver na imagem não foram feitas alterações no manifeste.
No Gradle (Module) foi adicionado as linhas
Estrutura de pastas: Dentro de model temos 3 classe Person, AppDatabase e PersonDao
Person é a nossa entidade
PersonDao é a interfaces que vai permitir usar os métodos relacionados a person.
AppDatabase é a classe abstrata que nos permite a conexão directa com o SQLite.
Na pasta "ui" temos apenas a MainActivity onde faremos uma boa parte do trabalho.
Vamos ao código
Person.java
PersonDao.java
AppDatabase.java
MainActivity.java
activity_main.xml
Espero ter ajudado com este post.
Se foi util para ti deixa um (y) comentario ou faça algum outro gesto para que eu saiba.
Bons estudos.
Link IQ Option
Hoje vou mostrar o código completo de suporte ao post Persistencia de Dados Android - ROOM
Fiz um código auto-explicativo por ser complemento do post passado.
Como é possível ver na imagem não foram feitas alterações no manifeste.
No Gradle (Module) foi adicionado as linhas
// Roomimplementation "android.arch.persistence.room:runtime:1.0.0"annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
Estrutura de pastas: Dentro de model temos 3 classe Person, AppDatabase e PersonDao
Person é a nossa entidade
PersonDao é a interfaces que vai permitir usar os métodos relacionados a person.
AppDatabase é a classe abstrata que nos permite a conexão directa com o SQLite.
Na pasta "ui" temos apenas a MainActivity onde faremos uma boa parte do trabalho.
Vamos ao código
Person.java
@Entity(tableName = "person") public class Person { @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") private int id; @ColumnInfo(name = "name") private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { // Usei a ajuda do toString para mostrar os dados porque o foco não era adapter return getId()+" - "+getName(); } }
PersonDao.java
@Daopublic interface PersonDao { @Query("SELECT * FROM person") List<Person> loadAll(); // metodo nao usado mas coloquei para ilucidar como pode ser criado @Query("SELECT * FROM person WHERE id IN (:ids)") List<Person> loadAllByPersonId(int... ids); // metodo nao usado mas coloquei para ilucidar como pode ser criado @Query("SELECT * FROM person where name LIKE :name LIMIT 1") Person loadPersonByName(String name); // metodo nao usado mas coloquei para ilucidar como pode ser criado @Insert void insertAll(Person... person); @Insert void insert(Person person); @Update void update(Person person); @Delete void delete(Person person); }
AppDatabase.java
@Database(entities = {Person.class},version = 1, exportSchema = false) public abstract class AppDatabase extends RoomDatabase { public abstract PersonDao personDao();}
MainActivity.java
package ao.co.a2xevolution.persistenciaandroidroom.ui; import android.arch.persistence.room.Room;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.EditText;import android.widget.ListView; import java.util.List; import ao.co.a2xevolution.persistenciaandroidroom.R;import ao.co.a2xevolution.persistenciaandroidroom.model.AppDatabase;import ao.co.a2xevolution.persistenciaandroidroom.model.Person; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EditText txtName; private Button btnSave; private ListView lstPerson; private AppDatabase db; private List<Person> people; private ArrayAdapter<Person> adapter; private Person person; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); person = new Person(); txtName = (EditText) findViewById(R.id.txtName); btnSave = (Button) findViewById(R.id.btnSave); btnSave.setOnClickListener(this); lstPerson = (ListView) findViewById(R.id.lstPerson); lstPerson.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { delete(position); listAll(); return true; } }); lstPerson.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { person = people.get(position); txtName.setText(person.getName()); } }); // Usei a ajuda do toString para mostrar os dados porque o foco não era adapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1); lstPerson.setAdapter(adapter); db = Room .databaseBuilder(getApplicationContext(), AppDatabase.class, "Exemplo-cda") .allowMainThreadQueries() // não usar esta linha na UI Principal .build(); listAll(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnSave: if (person.getId() < 1) { person.setName(txtName.getText().toString()); insert(); listAll(); txtName.setText(""); } else { person.setName(txtName.getText().toString()); update(); listAll(); txtName.setText(""); } break; } } private void insert(){ db.personDao().insert(person); person = new Person(); } private void update() { db.personDao().update(person); person = new Person(); } private void delete(int position) { db.personDao().delete(people.get(position)); } private void listAll() { people = db.personDao().loadAll(); adapter.clear(); adapter.addAll(people); } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="ao.co.a2xevolution.persistenciaandroidroom.ui.MainActivity"> <EditText android:id="@+id/txtName" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:ems="10" android:inputType="textPersonName" android:hint="Name" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/btnSave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:layout_marginTop="8dp" android:text="Save" app:layout_constraintBottom_toTopOf="@+id/lstPerson" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/txtName" /> <ListView android:id="@+id/lstPerson" android:layout_width="368dp" android:layout_height="385dp" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /></android.support.constraint.ConstraintLayout>
Espero ter ajudado com este post.
Se foi util para ti deixa um (y) comentario ou faça algum outro gesto para que eu saiba.
Bons estudos.
Link IQ Option
Persistencia de Dados Android - ROOM
Saudações
pessoal,
Tal como em
outras linguagens o android também tem formas de persistência de dados.
Existem 4
metodos que passo a descrever:
- SharedPreferences: Armazenar dados particulares primitivos em pares chave-valor.
- Internal Storage: Armazenar dados privados na memória do dispositivo. ( com persistência de objetos )
- External Storage: Armazenar dados públicos sobre o armazenamento externo compartilhado.
- SQLite Databases: Armazenar dados estruturados em um banco de dados privado.
Para esta
secção vamos focar no SQLite Database.
Durante
algum tempo usar "SQLite Database" cru ou uma api de terceiros foi a
opção e em minha opinião trabalhosa.
Recentemente
foi disponibilizada para a nossa alegria o ROOM PERSISTENCE LIBRARY.
O
Room fornece uma camada de abstração sobre o SQLite para permitir o acesso
fluente de banco de dados enquanto aproveita todo o poder do SQLite.
O que traz
de bom?
Trabalhar
com o ROOM é extremamente fácil.
Existem 3
componentes para facilitar o nosso trabalho.
Database: A
classe que representa a base de dados.
Entity:
Representa a tabela na base de dados.
DAO: contem
os metodos para acesso a base de dados.
Exemplo
pratico:
Adicionar as
dependências ao projecto.
// Room
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
implementation "android.arch.persistence.room:runtime:1.0.0"
annotationProcessor "android.arch.persistence.room:compiler:1.0.0"
Codificar:
User.java
@Entity
public class User {
@PrimaryKey
private int uid;
@ColumnInfo(name = "first_name")
private String firstName;
@ColumnInfo(name = "last_name")
private String lastName;
// Getters and setters are ignored for brevity,
// but they're required for Room to work.
}
public class User {
@PrimaryKey
private int uid;
@ColumnInfo(name = "first_name")
private String firstName;
@ColumnInfo(name = "last_name")
private String lastName;
// Getters and setters are ignored for brevity,
// but they're required for Room to work.
}
UserDao.java
@Dao
public interface UserDao {
@Query("SELECT * FROM user")
List<User> getAll();
@Query("SELECT * FROM user WHERE uid IN (:userIds)")
List<User> loadAllByIds(int[] userIds);
@Query("SELECT * FROM user WHERE first_name LIKE :first AND "
+ "last_name LIKE :last LIMIT 1")
User findByName(String first, String last);
@Insert
void insertAll(User... users);
@Delete
void delete(User user);
}
public interface UserDao {
@Query("SELECT * FROM user")
List<User> getAll();
@Query("SELECT * FROM user WHERE uid IN (:userIds)")
List<User> loadAllByIds(int[] userIds);
@Query("SELECT * FROM user WHERE first_name LIKE :first AND "
+ "last_name LIKE :last LIMIT 1")
User findByName(String first, String last);
@Insert
void insertAll(User... users);
@Delete
void delete(User user);
}
AppDatabase.java
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
AppDatabase db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "database-name").build();
AppDatabase.class, "database-name").build();
Espero
que tires proveito das informações encontradas aqui e não esqueça de consultar
sempre o site do Desenvolvedor Android
- Fonte 1: https://www.devmedia.com.br/persistencia-de-dados-no-android/26947
- Fonte 2: https://developer.android.com/training/data-storage/room/index.html
Como Começar a desenvolver para Android
Saudações pessoal,
Hoje pretendo ajudar o pessoal que deseja ser desenvolvedor Android a dar os primeiros passos.
Vou assumir que já tem conhecimento de uma outra linguagem de programação.
Algumas perguntas passam pela cabeça das pessoas que desejam sair de linguagens web para mobile:
- O que é necessário para começar?
- Onde começar ?
- Onde encontrar apoio ?
Antes de tudo devemos procurar o site oficial para desenvolvimento android para obter toda informação necessária .
- Mas o Site esta em inglês.
Para os desenvolvedores não há muitas saídas quando a língua nativa não é o inglês, eu aconselho a todo desenvolvedor a compreender ao menos 2 línguas.
Mas também poderá contar com o apoio das comunidades de desenvolvimento dos países de Língua oficial Portuguesa. Em Angola pode Juntar-se ao Coding Dojo Angola.
OK, no site oficial do android poderá encontrar toda a informação necessária.
Comece por estudar como funciona o desenvolvimento Android.
1. Design
* Conheça as guidelines para construção de um app.
* Crie as suas telas baseadas nestas guidelines tendo como foco como tornar a interação com o utilizador a mais agradável possível.
2. Codificação
* Com o ambiente de desenvolvimento todo configurado é chegado o tempo de codificar as ideias.
* A documentação da API por ser facilmente encontrada no próprio site do android.
3. Publicação e Distribuição.
* O android tem a Playstore que é o local onde oficialmente são colocados os APK's dos app's.
* Para ter acesso a consola de desenvolvedor android é necessário fazer um pagamento (OBS: pagamento único) de 25 USD.
Agora já sabes como começar e onde encontrar apoio.
Desejo a si sucesso nesta nova jornada.
Fonte: https://developer.android.com/
Hoje pretendo ajudar o pessoal que deseja ser desenvolvedor Android a dar os primeiros passos.
Vou assumir que já tem conhecimento de uma outra linguagem de programação.
Algumas perguntas passam pela cabeça das pessoas que desejam sair de linguagens web para mobile:
- O que é necessário para começar?
- Onde começar ?
- Onde encontrar apoio ?
Antes de tudo devemos procurar o site oficial para desenvolvimento android para obter toda informação necessária .
- Mas o Site esta em inglês.
Para os desenvolvedores não há muitas saídas quando a língua nativa não é o inglês, eu aconselho a todo desenvolvedor a compreender ao menos 2 línguas.
Mas também poderá contar com o apoio das comunidades de desenvolvimento dos países de Língua oficial Portuguesa. Em Angola pode Juntar-se ao Coding Dojo Angola.
OK, no site oficial do android poderá encontrar toda a informação necessária.
Comece por estudar como funciona o desenvolvimento Android.
1. Design
* Conheça as guidelines para construção de um app.
* Crie as suas telas baseadas nestas guidelines tendo como foco como tornar a interação com o utilizador a mais agradável possível.
2. Codificação
* Com o ambiente de desenvolvimento todo configurado é chegado o tempo de codificar as ideias.
* A documentação da API por ser facilmente encontrada no próprio site do android.
3. Publicação e Distribuição.
* O android tem a Playstore que é o local onde oficialmente são colocados os APK's dos app's.
* Para ter acesso a consola de desenvolvedor android é necessário fazer um pagamento (OBS: pagamento único) de 25 USD.
Agora já sabes como começar e onde encontrar apoio.
Desejo a si sucesso nesta nova jornada.
Fonte: https://developer.android.com/
Assinar:
Postagens (Atom)
-
Liga Angola O aplicativo angolano que visa facilitar a vida dos angolanos no que toca a codigos dificilmente memorizados disponibilizados p...
-
Detalhes da aplicação Crédito Angola é uma aplicação com o objectivo fornecer de forma rápida e pratica os dados sobre as prestações dos cr...
-
Política de Privacidade A a2x Evolution estamos comprometidos com a proteção da sua privacidade. Antes de dar-nos algumas de suas informaçõ...
Comandos para conectar automaticamente o firebase com o flutter.
dart pub global activate flutterfire_cli\n export PATH="$PATH":"$HOME/.pub-cache/bin"\n flutterfire configu...