Pesquisar neste blog

quinta-feira, 23 de dezembro de 2010

Configuração do Ambiente Eclipse para o Android

Opa.
De volta e do início.
Postando aqui um tutorial para configurar o eclipse para rodar android.


O primeiro passo será baixar a IDE Eclipse, que pode ser encontrada no site http://www.eclipse.org/. Neste trabalho a versão utilizada foi a Helios Service Release 1. Após baixar o arquivo, basta descompactá-lo em uma pasta e a sua aparência deverá ficar como no exemplo mostrado na Figura 2.


Figura 2: Pasta do Eclipse

Para executar o Eclipse, deve-se clicar em eclipse.exe e ele irá iniciar, mostrando a tela de boas vindas.


Com o Eclipse já funcionando, o próximo passo é baixar o JDK. Ele será necessário para o desenvolvimento Android, e pode ser baixado no site da Oracle: http://www.oracle.com/-technet-work/java/javase/downloads/index.html
 Sua instalação é bastante simples, bastando confirmar as perguntas que aparecem.
 Após isso, vamos instalar o SDK do Android.
Podemos achar este SDK no site: http://developer.android.com/sdk/index.html. A versão mais atual é a Release 08. A sua instalação segue o mesmo estilo da instalação do JDK, bastante fácil. Ao final da instalação, será exibida a opção de iniciar o SDK Manager.
Figura 4: Tela de instalação do SDK Android

Figura 5: Tela do SDK Manager

O SDK Manager serve para baixar outras versões de SDK, modelos e documentações. Ele vem integrado com o gerenciador de AVD (dispositivos virtuais Android) também. Com o gerenciador de AVD, podemos gerenciar nossos dispositivos virtuais, criando vários modelos com configurações diferentes para simular dispositivos reais. Entre as configurações, temos: GPS, teclado, touch screen, tamanho da tela, câmera, etc.

Após estas configurações, devemos voltar agora ao Eclipse. Precisamos instalar o plugin ADT (Android Development Tools) no Eclipse. Para isso, deve-se ir em: menu Help>Install New Software>Add Repository e adicionar uma nova Location com o endereço https://dl-ssl.google.com/android/eclipse/
       Figura 6: Adicionando repositório no Eclipse
Após isso, basta baixar o Developer Tools deste repositório que foi adicionado.

Figura 7: Baixando o Developer Tools

Depois devemos ir em Menu Window>Preferences>Android>SDK Location. Lá deve-se informar a localização do SDK Android. Nesta tela aparecerão todos os SDKs que você baixou pelo SDK Manager.

Figura 8: Configurando o local do SDK


Após isso, devemos configurar uma AVD, que seria uma simulação de um dispositivo real Android. Com a AVD Manager, podemos configurar de acordo com nossa necessidade, definir se o dispositivo terá GPS ou não, se terá câmera, qual o tamanho do cartão de memória dele, entre vários outros atributos. Um dos mais importantes atributos é a versão do Android que você irá utilizar, que está localizado na opção Target.

Para criar, deve-se ir em Window>Android SDK and AVD Manager>Virtual Device>New.
Nesta tela você escolhe como será seu dispositivo virtual, qual hardware ele terá e qual a versão do S.O. Android você utilizará.

Bem é isso. Depois volto e posto mais coisas =)
Vlw!!!

domingo, 26 de setembro de 2010

Motorola Milestone


De volta =)
Após este longo tempo com meu velho HTC G1 de guerra, resolvi trocar.Vendi ele e comprei um Milestone.
Já estava de olho no milestone a algum tempo.....Era o celular que melhor servia para substituir o g1... tem tudo que o G1 tem, porém melhor =p.
Gostei da aparência dele.... mais fino que o G1...... 
Como ele possui o SO Android não vou falar das facilidades do sistema pois são praticamente as mesmas que já falei no review do G1(Review G1). De diferente que eu lembre agora, notei só o dicionário em português. Facilita muito a vida Meu G1 era importado e não tinha isso.E também a quantidade de telas que você pode modificar entre 5 , 7 e 9.
Alguns pontos que me chamaram atenção...
  • O slide do teclado não tem nenhuma mola ou outro dispositivo que a mova que nem o G1... você tem que empurrar até o fim na mão mesmo.
  • Os Botões (voltar), (inicio), (opções) e busca ficam na carcaça e são sensíveis ao toque ao invés de botões mecânicos que você aperta.... Com isso fico sem querer acionando essas funções quando encosto neles...(O botão voltar é campeão.).
  • O teclado é diferente.... as teclas ficam mais próximas... complica um pouco na hora de jogar =p. e possui apenas 4 fileiras de teclas contra as 5 do G1. Com isso perdi a fileira de cima que tinha os números no g1.. No Milestone para digitar números tem-se que apertar o alt e uma das 10 teclas de cima.
  • A tela é perfeita. Assim que vi notei a diferença. 
  • A entrada do fone fica na parte superior do celular...PONTO!!! ... Fica melhor para deixar o celular no bolso com o fone, ao contrário de outros celulares que deixam essa entrada na parte de baixo.Outro ponto positivo é que a entrada do fone é daquelas mais comuns que usamos no computador ,mp4 etc
  • A conexão usb dele porém.... é daqueles tipos específicos.... ela é mais fina... provavelmente deve ser propríetária motorola. Adeus usar qualquer cabo ching ling pra carregar....dificilmente alguém no trabalho terá um destes pra me emprestar caso eu esqueça =p
  • A câmera não achei muito boa... o flash não é tão esperto e algumas das fotos que tirei sairam meio escuras.... O autozoom nem sempre conseguia deixar a foto mais nítida.. coisa que o G1 conseguia.
Estou gostando da velocidade dele. Não fiz o overclock nem o JIT e mesmo assim considero ele beemmm rápido. A navegação na internet é super tranquila. e os jogos então.... Comprei hoje o UNO da gameloft. A tela grande ajuda muito.
Estou no aguardo da atualização do Android para 2.2 para poder instalar os aplicativos diretamente no cartão de memória... O Milestone de fábrica fica com uns 150Mb (O g1 ficava com uns 70 se não me engano) Fica complicado baixar os jogos e aplicativos grandes deste jeito.
Algumas melhorias que notei em relação ao G1.
  • O Emulador do Playstation 1 roda quase 100%... Estou para comprar um game-gripper( pra jogar mais tranquilo =p. Foto dele acima.Nada mais é que uma base de plástico com botoes e o direcional. Quando se aperta no botão ele preciona um dos botões do teclado do celular.
  • Usei um programa para rodar videos e ele rodou tranquilamente .avi e .rmvb sem problema algum.
  • O touch screen achei melhor. Respondendo mais prontamente.
Bem essa é minha impressão inicial.Estou com ele a 3 dias.
Depois posto sobre como fazer modificações (JIT, Root, Overclock, instalar roms modificadas etc....)
FUI!!!!!!!

domingo, 6 de junho de 2010

Faixa Amarela

Aeee
Faixa amarela no BlackBeltFactory =)
Foram 28 questões e acertei 22... Era pra ter sido 23+1 =p  mas falta de atenção acontece...
O tempo me assustou no comeco... quase não da para pensar
Bem o que fica deste teste para estudar....
Não colocarei as perguntas pq senão atrapalha caso alguem leia e vá fazer a prova tbm(apesar que as questões não sao sempre as mesmas)

-Revisar o método clone() que eu nunca tinha visto antes
-Islands of isolation/WeakReference - (Uma pegadinha no assunto garbage collection.) Quando um objeto não tem nada referenciando-o ele passa a ser um provável alvo do garbage collector...até ai blz. Mas pode acontecer de ele ter uma referência válida e mesmo assim ser alvo do garbage collector???
A resposta é sim...
(Um objeto X referencia um objeto Y e o Objeto Y referencia o objeto X e ninguem mais tem ligação com eles.)
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ref/WeakReference.html

Bem... agora é me preparar para a faixa laranja... e não esquecer as coisas do início...

quinta-feira, 3 de junho de 2010

Pré e pós Incremento. Java

Seguindo os estudos no site Black Belt vou postar alguns dos pontos mais interessantes.
Primeiro algo que eu já tinha visto antes porém andava meio esquecido na mente =p
a diferença de um pré-incremento para um pós-incremento.

Segue exemplo do site


int v = 0;
v++;
int amount = v++;
System.out.println(++v + " " + amount);
System.out.println(v);
A saída será
3   1
3

Agora detalhando
Inicialmente a variável v recebe o valor 0.
na segunda linha a variável v é incrementada em 1.
Na terceira linha é que começa a mágica. como a varíavel foi pós incrementada primeiro ocorre a transação de amount receer o valor atual de v e só depois que v é incrementado.
Na quarta linha como v é pré-incrementado ele primeiro tem seu valor adicionado de 1 para só então o println imprimir.(já com o valor incrementado de v.
e a última linha apenas repete o valor de v.

Se por exemplo modificarmos o programa para que fique assim



int v = 0;
v++;
int amount = v++;
System.out.println(v++ + " " + amount);
System.out.println(v);
A saída já será

2  1
3

O motivo é 
na quarta linha agora o v é pós incrementado. Com isso primeiro ocorre o println e só então que ele adiciona o valor de v em mais 1 e na quinta linha ele imprime este valor incrementado.

Bem é isso... Foi o que achei legal desse começo do material.

terça-feira, 25 de maio de 2010

Voucher para Certificação java

Aeeeee depois de uma looooooooooooooooongggaa espera chegou
Hello Thiago,



We apologize for the delay in processing your order. We are experiencing high order volume which has impacted our response time.



Thank you for your Sun Academic Initiative exam voucher order and for providing the requested documentation. Your SAI exam voucher and registration instructions are provided below.

Exam Title : 212-055 Sun Certified Java Programmer SE 5

Agora é estudaaaarrrr!!!

aDosBox

Opa.
Mais uma novidade no mundo android.
A pouco tempo procurei um emulador de DOS para rodar algumas raridades de antigamente. Não tinha achado nada.
Resolvi relembrar warcraft 2 ai procurei de novo ontem a noite... E eis que surje o aDosBox.
Primeiro emulador(Que eu saiba) de DOS pro android.. na verd é um port do Dosbox já conhecido. Está na versão 0.1 ainda mas já vi um texto em que colocaram um windows 3.1 para rodar em um G1 =D

Link do projeto
http://code.google.com/p/adosbox/

Fica ai a dica para quem tiver interesse em rodar os doom da vida ou no meu caso Warcraft 2 =D

domingo, 18 de abril de 2010

Pausa

...
..
.
>>INICIANDO TRANSMISSÃO!!
É passei uma temporada offline
Muito trabalho, as provas que começaram... videogame novo(xbox 360) =p
e minha monografia adiada =(.... não consegui adicionar a cadeira neste semestre... choque de horario.... o "bom" é que agora só terei ela para fazer semestre que vem...
Andei olhando um pouco de XNA e comprei meu Voucher para fazer minha primeira certificação java.
Mas já já devo estar de volta aos projetos android.
=)
.....
...
..
.
>>FIM DE TRANSMISSÃO!!

quinta-feira, 11 de março de 2010

Sensor de movimento

Bem.. Aproveitando um pedido que me fizeram por email vou postar um exemplo antigo que eu tinha de acelerometro.
Eu modifiquei o GameTemplate do androDev e inseri nele o modo de entrada acelerometro.... não achei a versão que estava melhorada onde eu movia a imagem por acelerometro(lembro que a imagem meio que ficava engasgando....)
De qualquer forma planejo usar acelerômetro através do framework Rokon. Posto um exemplo aqui assim que der..(aproveitando hora do almoço). PS. Alguém sabe como colocar código fonte nestes blogs???? =p


Arquivo GameView.java
package br.com.sandclan.lordelfo;


import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.hardware.SensorListener;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;


@SuppressWarnings("deprecation")
class GameView extends SurfaceView implements SurfaceHolder.Callback {

class GameThread extends Thread implements SensorListener{

public static final int STATE_LOSE = 1;
public static final int STATE_PAUSE = 2;
public static final int STATE_READY = 3;
public static final int STATE_RUNNING = 4;
public static final int STATE_WIN = 5;

private float x;
private float y;

private static final int SPEED = 100;
private boolean dRight;
private boolean dLeft;
private boolean dUp;
private boolean dDown;

private int mCanvasWidth;
private int mCanvasHeight;

private long mLastTime;
private Bitmap mSandclan;


float sensorx;
float sensory;
float sensorz;

public void onSensorChanged(int sensor, float[] values) {
sensorx = values[0];
sensory = values[1];
sensorz = values[2];
}

public void onAccuracyChanged(int sensor, int accuracy) {
}

private Handler mHandler;

private int mMode;
private boolean mRun = false;
private SurfaceHolder mSurfaceHolder;

public GameThread(SurfaceHolder surfaceHolder, Context context,
Handler handler) {

mSurfaceHolder = surfaceHolder;
mHandler = handler;
mContext = context;

x = 10;
y = 10;

mSandclan = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.sandclan);
}

public void doStart() {
synchronized (mSurfaceHolder) {


x = 10;
y = 10;

mLastTime = System.currentTimeMillis() + 100;
setState(STATE_RUNNING);
}
}

public void pause() {
synchronized (mSurfaceHolder) {
if (mMode == STATE_RUNNING)
setState(STATE_PAUSE);
}
}
@Override
public void run() {
while (mRun) {
Canvas c = null;
try {
c = mSurfaceHolder.lockCanvas(null);
synchronized (mSurfaceHolder) {
if (mMode == STATE_RUNNING)
updateGame();
doDraw(c);
}
} finally {
if (c != null) {
mSurfaceHolder.unlockCanvasAndPost(c);
}
}
}
}

public void setRunning(boolean b) {
mRun = b;
}


public void setState(int mode) {
synchronized (mSurfaceHolder) {
setState(mode, null);
}
}

public void setState(int mode, CharSequence message) {
synchronized (mSurfaceHolder) {
mMode = mode;
}
}


public void setSurfaceSize(int width, int height) {

synchronized (mSurfaceHolder) {
mCanvasWidth = width;
mCanvasHeight = height;
}
}

public void unpause() {

synchronized (mSurfaceHolder) {
mLastTime = System.currentTimeMillis() + 100;
}
setState(STATE_RUNNING);
}

boolean doKeyDown(int keyCode, KeyEvent msg) {
boolean handled = false;
synchronized (mSurfaceHolder) {
if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT){
dRight = true;
handled = true;
}
if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT){
dLeft = true;
handled = true;
}
if (keyCode == KeyEvent.KEYCODE_DPAD_UP){
dUp = true;
handled = true;
}
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
dDown = true;
handled = true;
}
return handled;
}
}

boolean doKeyUp(int keyCode, KeyEvent msg) {
boolean handled = false;
synchronized (mSurfaceHolder) {
if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT){
dRight = false;
handled = true;
}
if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT){
dLeft = false;
handled = true;
}
if (keyCode == KeyEvent.KEYCODE_DPAD_UP){
dUp = false;
handled = true;
}
if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN){
dDown = false;
handled = true;
}
return handled;
}
}

private void doDraw(Canvas canvas) {

canvas.drawARGB(255, 128, 128, 128);

canvas.drawBitmap(mSandclan, x, y, new Paint());
canvas.drawText(Float.toString(sensorx), 20, 100, new Paint());
canvas.drawText(Float.toString(sensory), 20, 150, new Paint());
canvas.drawText(Float.toString(sensorz), 20, 200, new Paint());

if (sensorx < 0.00)
canvas.drawText("x<0", 20, 250, new Paint());
if (sensorx > 0.00)
canvas.drawText("x>0", 20, 250, new Paint());
if (sensory < 0.00)
canvas.drawText("y<0", 20, 300, new Paint());
if (sensory > 0.00)
canvas.drawText("y>0", 20, 300, new Paint());
if (sensorz < 0.00)
canvas.drawText("z<0", 20, 350, new Paint());
if (sensorz > 0.00)
canvas.drawText("z>0", 20, 350, new Paint());


}


private void updateGame() {

long now = System.currentTimeMillis();
if (mLastTime > now)
return;
double elapsed = (now - mLastTime) / 1000.0;
mLastTime = now;

if (dUp)
y -= elapsed * SPEED;
if (dDown)
y += elapsed * SPEED;
if (y < 0)
y = 0;
else if (y >= mCanvasHeight - mSandclan.getHeight())
y = mCanvasHeight - mSandclan.getHeight();
if (dLeft)
x -= elapsed * SPEED;
if (dRight)
x += elapsed * SPEED;
if (x < 0)
x = 0;
else if (x >= mCanvasWidth - mSandclan.getWidth())
x = mCanvasWidth - mSandclan.getWidth();
}
}


private Context mContext;


private GameThread thread;

public GameView(Context context, AttributeSet attrs) {
super(context, attrs);


SurfaceHolder holder = getHolder();
holder.addCallback(this);
thread = new GameThread(holder, context, new Handler() {
@Override
public void handleMessage(Message m) {

}
});

setFocusable(true);
}


public GameThread getThread() {
return thread;
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent msg) {
return thread.doKeyDown(keyCode, msg);
}


@Override
public boolean onKeyUp(int keyCode, KeyEvent msg) {
return thread.doKeyUp(keyCode, msg);
}

@Override
public void onWindowFocusChanged(boolean hasWindowFocus) {
if (!hasWindowFocus)
thread.pause();
}


public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
thread.setSurfaceSize(width, height);
}


public void surfaceCreated(SurfaceHolder holder) {

thread.setRunning(true);
thread.start();
}

public void surfaceDestroyed(SurfaceHolder holder) {

boolean retry = true;
thread.setRunning(false);
while (retry) {
try {
thread.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
}


 Arquivo GameTemplate.java
 
package br.com.sandclan.lordelfo;

import br.com.sandclan.lordelfo.GameView.GameThread;
import android.app.Activity;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;


public class GameTemplate extends Activity {
private static final int MENU_PAUSE = Menu.FIRST;
private static final int MENU_RESUME = Menu.FIRST + 1;
private static final int MENU_START = Menu.FIRST + 2;
private static final int MENU_STOP = Menu.FIRST + 3;

private SensorManager mSensorManager;

private GameThread mGameThread;


private GameView mGameView;


@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);

menu.add(0, MENU_START, 0, R.string.menu_start);
menu.add(0, MENU_STOP, 0, R.string.menu_stop);
menu.add(0, MENU_PAUSE, 0, R.string.menu_pause);
menu.add(0, MENU_RESUME, 0, R.string.menu_resume);

return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_START:
mGameThread.doStart();
return true;
case MENU_STOP:
mGameThread.setState(GameThread.STATE_LOSE);
return true;
case MENU_PAUSE:
mGameThread.pause();
return true;
case MENU_RESUME:
mGameThread.unpause();
return true;
}

return false;
}


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);

mGameView = (GameView) findViewById(R.id.game);
mGameThread = mGameView.getThread();

mGameThread.setState(GameThread.STATE_READY);

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mSensorManager.registerListener(mGameThread, SensorManager.SENSOR_ACCELEROMETER);

}


@Override
protected void onPause() {
super.onPause();
mGameView.getThread().pause();
}
}
 

sexta-feira, 5 de fevereiro de 2010

Lista Com imagem de Background

Bem Eu estava tentando melhorar a parte gráfica da tela que mostra os personagens salvos.
E apanhei bastante para mostrar.
Na verdade quem me deu a dica para conseguir isso foi o KarlKarlsom do forum anddev

Quando eu colocava a linha
  android:background="@drawable/background"
no meu arquivo de layout ele gerava uma imagem para cada registro(personagem salvo).

O que eu queria era uma imagem de fundo estática e que apenas a lista se movesse.

A solução neste caso foi no método onCreate() da ListActivity usar o método
  setContentView(R.layout.list_lay)
Este layout list_lay.xml contém a linha
  android:background="@drawable/background"

E no inflateView do listAdapter(onde gero as linhas) eu passo o R.layout.row_lay para a View.
O arquivo row_lay contem apenas um layout básico com a linha do nome gerada.Sem background algum.

Abaixo está o resultado.


Vlw pessoal...

quinta-feira, 21 de janeiro de 2010

Androi3DT - Mostrar Personagens Salvos

Após perder muito tempo com uma besteira...

No método getView() do ListAdapter eu estava chamando o arquivo de layout errado =).... mass.... o importante é ter saúde ..... no final deu tudo certo hehe

Já temos 2 botões do menu funcionando.. o primeiro que chama a tela de distribuição de pontos entre os atributos básicos de um personagem. (Força, habilidade, resistência, armadura e poder de fogo) e grava no banco de dados dentro do celular.


  



e o segundo, que sofri muito a toa, que mostra uma lista dos personagens já salvos.




 


Eu quero mostrar como pano de fundo a imagem padrão (Azul com o calango branco), porém para cada registro ele usava uma imagem do tamanho da tela.Ficou sendo Pano de fundo do item e não da tela... Terei que descobrir como consertar isso.Até lá fica sem imagem mesmo.




Ah. Outra novidade é que o jovem Rafus me enviou os botões com fundo transparente. Agora dá para ver o calango no pano de fundo da tela inicial =)

Vamos às pendencias..

-Incluir um botão ou outra forma na lista de personagens salvos para deletar.
-Quando clicar em um dos usuários abrir a tela dos atributos para que se possa editar o mesmo.
-Mudar o botão de nome Opções para Abrir, ou algo do gênero.

Terminando isso parto para as vantagens e desvantagens... Quero fazer de uma forma que fique fácil atualizar depois... O problema maior são vantagens que dão vantagens e desvantagens imbutidas...

E por fim.. o gerar o pdf com tudo isso....

É quase terminado... ou não =p

quarta-feira, 20 de janeiro de 2010

Android3dt banco de dados - inserção

Ontem fiquei brincando com o que havia aprendido em Banco de dados e implementei no projeto Android3DT.

Finalmente acesso ao BD pela aplicacao.. agora quando se aperta no botão "Confirmar" ele insere no banco de dados dentro do cel. =)
Hoje a noite vou criar uma tela para visualisar os personagens salvos.

Código do botão

button.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
Personagem p = new Personagem();
p.setNome(txt_nome.getText().toString());
p.setForca(Integer.parseInt(s1.getSelectedItem().toString()));
p.setHabilidade(Integer.parseInt(s2.getSelectedItem().toString()));
p.setResistencia(Integer.parseInt(s3.getSelectedItem().toString()));
p.setArmadura(Integer.parseInt(s4.getSelectedItem().toString()));
p.setPoderDeFogo(Integer.parseInt(s5.getSelectedItem().toString()));
rPersonagem.inserir(p);

}
});

segunda-feira, 18 de janeiro de 2010

ANDROID x BANCO DE DADOS (Insert , Update e Delete)

Olá pessoal

Depois de algum tempo ajudando um amigo com um sisteminha em java com hibernate e geração de pdf... De volta ao android.
Então aqui vão algumas dicas para a manipulação dos dados em banco de dados.


//Bibliotecas necessárias.
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;

INSERT

//Cria ou Abre uma database, Como parametro envio o nome e a forma de se acessar a database.Neste caso MODE_PRIVATE, que significa que apenas a aplicação terá acesso.

SQLiteDatabase db = this.openOrCreateDatabase("nome_database",Context.MODE_PRIVATE,null);




//Cria-se um objeto ContentValues e passa para ele todos os campos com os valores que se deseja inserir.

ContentValues valores = new ContentValues();
valores.put("campo01", "valorCampo01");
valores.put("campo02", "valorCampo02");
valores.put("campo03","valorCampo03");

//Aqui basicamente ele insere na tabela informada os valores acima.
db.insert("nome_tabela",null,valores);

//Em outras palavras INSERT INTO nome_tabela (campo01,campo02,campo03) values('valorCampo01','valorCampo02','valorCampo03');


UPDATE

//Cria ou Abre uma database, Como parametro envio o nome e a forma de se acessar a database.Neste caso MODE_PRIVATE, que significa que apenas a aplicação terá acesso.



SQLiteDatabase db = this.openOrCreateDatabase("nome_database",Context.MODE_PRIVATE,null);

//Neste caso se passa um valor para a variável id para se usar como parâmetro na cláusula WHERE

long id = x;
String _id = String.valueOf(id);

//Cria-se um objeto ContentValues e passa para ele todos os campos com os valores que se deseja alterar.
ContentValues valores = new ContentValues();
valores.put("campo01", "novoValorCampo01");
valores.put("campo02", "novoValorCampo02");

//UPDATE nome_tabela SET campo01 = 'novoValorCampo01',campo02 = 'novoValorCampo02 WHERE _id = x;


db.update("carro", valores, "_id=?",new String[]{_id});


DELETE

//Cria ou Abre uma database, Como parametro envio o nome e a forma de se acessar a database.Neste caso MODE_PRIVATE, que significa que apenas a aplicação terá acesso.


SQLiteDatabase db = this.openOrCreateDatabase("nome_database",Context.MODE_PRIVATE,null); 

//Neste caso se passa um valor para a variável id para se usar como parâmetro na cláusula WHERE

long id = x;
String _id = String.valueOf(id);

 //DELETE FROM nome_tabela WHERE _id = x;

  db.delete("carro", "_id=?",new String[]{_id});

terça-feira, 12 de janeiro de 2010

Rokon 1.1.1 Update do dia 02/01/2009

Mais uma atualização do Rokon 1.1.1

Entre as mudanças que já pude perceber temos finalmente detecção de colisão !!!
=D

Alguns exemplos foram implementados inclusive existe um exemplo com background paralax(Aquele fundo de tela que se move com velocidade diferente de acordo com a distancia do personagem...Ex. Sonic ^^)

Outra funcionalidade agora disponível também é o sistema de partículas pegar sprites e ficar emitindo de um ponto específico da tela.

E também não existe mais problema para quem está com a versão 1.6 do android. Não é mais necessário fazer aquelas alterações que citei em um post anterior.

Vou brincar com as novidades aqui e ver o que consigo mostrar.
Vlw pessoal!!

sábado, 9 de janeiro de 2010

Android x Star wars????

Putz...é cada uma que a gente ver por ai, que as vezes até parecem duas....

Tio George Lucas está também envolvido com o Android hehe.. Ele possui direitos sobre a marca DROID e então o celular da motorola de mesmo nome tem que pagar para poder usar esta marca...

Segue link... na parte inferior do site mostra que a lucasfilm é proprietária da marca =D

MAY THE FORCE BE WITH LUCAS! (AHHHHH MULEEEEKEEE!!!)

http://phones.verizonwireless.com/motorola/droid/#/home

quinta-feira, 7 de janeiro de 2010

Celulares com Android

Bem como já podemos notar está chovendo celular com android por ai... Até no Brasil já tem para vender hehe...

Pela contagem que fiz no site GSM ARENA hoje. já existem 27 aparelhos com Android.

Então para facilitar quem está pensando em qual celular pegar, vou postar uma lista de alguns aparelhos com Android que achei em um site. Apenas adicionei alguns que não tinha.



HTC Dream / T-Mobile G1 / Era G1
Tela: HVGA 320×480 / 3,2″ / 65k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+EDR, ExtUSB, A-GPS
Cámara: 3.2 megapixeis com autofocus
Processador: Qualcomm MSM7201A 528 MHz ARM11
Memória: 256 MB interna / 16 GB externa via microSD
Bateria: 1150 mAh íon lítio
Dimensões: 117,7×55,7×17,1mm
Peso: 158 g
Disponibilidade: Outubro 2008
Link: HTC Dream (HTC)


 
Tela: HVGA 320×480 / 3,2″ / 65k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+EDR, ExtUSB, A-GPS
Câmera: 3.2 megapixeis com autofocus
Processador: Qualcomm MSM7201A / MSM7200A 528 MHz ARM11
Memória: 256 MB interna / 16 GB externa via microSD
Bateria: 1340 mAh íon lítio
Dimensões: 113×55,7×13,6mm
Peso: 116 g
Disponibilidade: Abril 2009
W Labs: HTC Magic [W Labs]
Link: HTC Magic (HTC)

 
Samsung i7500 / Galaxy
Tela: HVGA 320×480 / 3,2″ / 65k cores / AMOLED
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.1, A-GPS, USB 2.0
Câmera: 5.0 megapixeis com flash
Processador: Qualcomm MSM7200A 528 MHz ARM11
Memória: 256 MB interna / 16 GB externa via microSD
Bateria: 1500 mAh íon lítio
Dimensões: 115×56×11,9mm
Peso: 114 g
Disponibilidade: Junho 2009
Link: Samsung i7500 Galaxy (Samsung Mobile)

 
HTC Hero / T-Mobile G2 Touch
Tela: HVGA 320×480 / 3,2″ / 65k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+EDR, ExtUSB, A-GPS
Câmera: 5.0 megapixeis com autofocus
Processador: Qualcomm MSM7201A 528 MHz ARM11
Memória: 256 MB interna / 16 GB externa via microSD
Bateria: 1350 mAh íon lítio
Dimensões: 112×56,2×14,3mm
Peso: 135 g
Disponibilidade: Julho 2009
Link: HTC Hero (HTC)

 
HTC Tatoo
Tela: 320×480 / 3,2″ / 16M cores / AMOLED
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0 EDR, A-GPS, USB 2.0
Câmera: 3.2 megapixeis
Processador: Qualcomm MSM7225 528 MHz ARM11
Memória: 32 GB externa via microSD
Bateria: 1100 mAh
Dimensões: 106×55,2×14 mm
Peso: 113 g
Disponibilidade: Outubro 2009
Link: HTC Tatoo (HTC)


 

Sprint HTC Hero (CDMA)
Tela: HVGA 320×480 / 3,2″ / 65k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+EDR, ExtUSB, A-GPS
Câmera: 5.0 megapixeis com autofocus
Processador: Qualcomm MSM7201A 528 MHz ARM11
Memória: 256 MB interna / 16 GB externa via microSD
Bateria: 1500 mAh íon lítio
Dimensões: 112×56,2×14,3mm
Peso: 135 g
Disponibilidade: Outubro 2009
Link:
















Motorola Dext MB220 / Cliq (EEUU)
Tela: 320×480 / 3,1″ / 256k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.1 A2DP, A-GPS, USB 2.0
Câmera: 5 megapixeis com autofocus
Processador: Qualcomm MSM7201A 528 MHz ARM11
Memória: 32 GB externa via microSD
Bateria: N/A
Dimensões: 114×58×15,6 mm
Peso: 163 g
Disponibilidade: Outubro 2009
Link:


 

Huawei U8220 / T-Mobile Pulse
Tela: 320×480 / 3,5″ / 16k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+ EDR, A-GPS, USB 2.0
Câmera: 4.9 megapixeis com flash LED e autofocus
Processador: Qualcomm MSM7200A 528 MHz ARM11
Memória: 32 GB externa via microSD
Bateria: 1500 mAh
Dimensões: 62,5×135×13,6 mm
Peso: 135 g
Disponibilidade: Outubro 2009
Link:

 

Samsung Behold II
Tela: 320×480 / 3,2″ / 16M cores / AMOLED
Conectividade: Wi-Fi (802.11b/g), Bluetooth, A-GPS, USB 2.0
Câmera: 5 megapixeis, flash LED e autofocus
Processador: ?
Memória: 16 GB externa via microSD
Bateria: 1000 mAh
Dimensões: ?
Peso: ?
Disponibilidade: Novembro 2009
Link:


 

Samsung Spica / Galaxy Lite / i5700
Tela: 320×480 / 3,2″ / 16M cores / AMOLED
Conectividade: Wi-Fi (802.11b/g), Bluetooth, A-GPS, USB 2.0
Câmera: 3.2 megapixeis
Processador: Samsung S3C6410 800 MHz ARM11
Memória: 32 GB externa via microSD
Bateria: 1500 mAh
Dimensões: 116x 56×11.9 mm
Peso: 117 g
Disponibilidade: Novembro 2009
Link:


 

Acer Liquid A1
Tela: 800×480 / 3,5″
Conectividade: Wi-Fi (802.11b/g), Bluetooth, A-GPS, USB 2.0
Câmera: 5 megapixeis com autofocus
Processador: Qualcomm Snapdragon QSD8250 1000 MHz Scorpion ARM
Memória: 32 GB externa via microSD
Bateria: 1350 mAh ion litio
Dimensões: 115×64×12,4 mm
Peso: 135 g
Disponibilidade: Novembro / Dezembro 2009
Link:

 

Samsung Moment
Tela: 320×480 / 3,2″ / 16M cores / AMOLED
Conectividade: Wi-Fi (802.11b/g), Bluetooth, A-GPS, USB 2.0
Câmera: 3.2 megapixeis com flash e autofocus
Processador: Samsung S3C6410 800 MHz ARM11
Memória: 32 GB externa via microSD
Bateria: 1440 mAh
Dimensões: 117×59,4×16 mm
Peso: 158 g
Disponibilidade: Novembro / Dezembro 2009
Link:

 

LG GW620 Eve
Tela: HVGA 320×480 / 3″ / 256k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0 A2DP, A-GPS, USB 2.0
Câmera: 4.9 megapixeis com flash LED e autofocus
Processador: N/A
Memória: 16 GB externa via microSD
Bateria: 1500 mAh
Dimensões: 106×55×12 mm
Peso: 127 g
Disponibilidade: Novembro / Dezembro 2009
Link: First Android Device (LG)

 

GeeksPhone ONE (12/09)
Tela: WQVGA ?x480 / 3,2″ / 256k cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.1 A2DP, A-GPS, USB 2.0
Câmera: 3.1 megapixeis com autofocus
Processador: Qualcomm MSM7225 528 MHz ARM11
Memória: 32 GB externa via microSD
Bateria: N/A
Dimensões: 110×55×15 mm
Peso: 123 g
Disponibilidade: Dezembro 2009
Link: GeeksPhone One (GeeksPhone)

 

Sony Ericsson Xperia X3 / X10 (2010)
Tela: 360×640 / 4″
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.1 + EDR, A-GPS, USB 2.0
Câmera: 8.0 megapixeis com flash LED e autofocus
Processador: Qualcomm Snapdragon QSD8250 1000 MHz Scorpion ARM
Memória: 16 GB externa via microSD
Bateria: N/A
Dimensões: N/A
Peso: N/A
Disponibilidade: Janeiro 2010
Link:
 

Motorola Droid / Sholes / Tao (CDMA)
Tela: 854×480 / 3,7″ / 16M cores
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+ EDR, A-GPS, USB 2.0
Câmera: 4.9 megapixeis com flash Xenon e autofocus
Processador: Texas Instruments OMAP 3430 600MHz ARM Cortex A8
Memória: 32 GB externa via microSD
Bateria: 1390 mAh
Dimensões: 60×155,8×13,7 mm
Peso: 169 g
Disponibilidade: Primeiro Trimestre 2010
Link:

 

Nexus One
Tela: 800×480 / 3,7″
Conectividade: Wi-Fi (802.11b/g), Bluetooth 2.0+ EDR, A-GPS, USB 2.0
Câmera: 5 megapixeis com flash LED
Processador: Qualcomm QSD 8250 1 GHz
Memória: 32 GB externa via microSD
Bateria: 1400 mAh
Dimensões: 59,8×119×11,5 mm
Peso: 130 g
Disponibilidade:
Link: http://www.google.com/phone

Google Goggles - Pesquisa usando a câmera do Celular

A google lançou uma nova funcionalidade para o Android.
Google Googles - Através dela você consegue fazer pesquisa na internet usando a câmera do seu celular. Disponível para qualquer celular com android 1.6 ou maior.

Servirá para identificar livros, lugares , logomarcas, obras de arte etc...




Muito bom para evitar perder tempo digitando.

fonte: http://www.google.com/mobile/goggles/#landmark