Nesse post vou mostrar como trabalhar com SQLite no Android nativo.

Criando a Classe de Controle do Banco
Primeiro, precisamos criar uma classe que extende de SQLiteOpenHelper, essa classe serve para nos auxiliar no controle do banco de dados e para criar e atualizar nosso banco.
Lembrando que todo banco SQLite no Android fica armazenado na pasta interna do sistema, sendo inacessível para outras aplicações a menos que seja disponibilizado um Content Provider que é assunto para outro post.

Segue o código da nossa classe DBHelper comentada:
[java]

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHelper extends SQLiteOpenHelper{

// Declara as constantes de controle do banco
static final String DB_NAME = “bancoDeTeste”;
static final int DB_VERSION = 1;

// Implementa os métodos obrigatórios e o construtor
public DBHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {

// No método de criação, nos criamos as tabelas do nosso banco de dados usando o objeto db do tipo SQLiteDatabase
// que é passado como argumento do construtor

// Usando o execSQL para executar queries SQL
db.execSQL(“CREATE TABLE IF NOT EXISTS cidades (nome text, estado text)”);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
/*
Sempre que o sistema identificar uma alteração na versão do banco de dados
ele deve chamar o método onUpgrade, aqui nos implementamos o que for necessário
para atualizar nosso banco de dados quando for necessário
*/
db.execSQL(“DROP TABLE IF EXISTS cidades”);
onCreate(db);

}
}
[/java]

Agora podemos chamar essa classe para executar queries e controlar nosso banco de dados dentro de qualquer outra Activity, segue um exemplo de inserção e exibição de dados:
[java]
// Vamos chamar nossa classe DBHelper e usa-la para instanciar um objeto
// SQLiteDatabase que será usado para executar nossas queries

// Passamos o contexto como argumento do construtor
DBHelper dbHelper = new DBHelper(this);

/*
Podemos retornar um Writable ou ReadableDatabase.
Com o Readble podemos executar apenas funções de busca de dados
*/
SQLiteDatabase db = dbHelper.getWritableDatabase();

// Executa a query de inserção de dados
db.execSQL(“INSERT INTO cidades (nome, estado) VALUES(‘Natal’, ‘RN’)”);
db.execSQL(“INSERT INTO cidades (nome, estado) VALUES(‘São Paulo’, ‘SP’)”);

//Buscando dados: Usamos o método rawQuery para executa uma query de busca retornando um objeto do tipo Cursor
Cursor resCidades = db.rawQuery(“SELECT * FROM cidades”, null);

while(resCidades.moveToNext()){

// Podemos pegar o resultado passando a posição da coluna na tabela, ou usando o getColumnIndex passando o nome da coluna
String cidade = resCidades.getString(0);
String estado = resCidades.getString(resCidades.getColumnIndex(“estado”));

Log.i(“Cidade: “, cidade+”/”+estado);

}
[/java]

Resultado:

Captura de Tela 2015-07-06 às 15.40.37