Diretório do artigo
1.1 Os requisitos básicos
- Android Estúdio 1.5.1+
- JDK 7.0+
- A versão mais recente do Android SDK
- A última Realm versão 7.0: API Android 16+ (Android 4.1+).
Descrição: Realm não Java diferente do Android não suporta. Eclipse não apoiar o desenvolvimento, migrar para o Android Studio.
1.2 Instalação
configuração de encaixe Gradle.
Passo 1: No nível de projeto build.gradle
caminho-dependente adicionar ao arquivo.
Usando a versão de teste 7.0.0-beta:
buildscript {
repositories {
jcenter()
google()
maven {
url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
}
}
dependencies {
classpath "io.realm:realm-gradle-plugin:7.0.0-beta-SNAPSHOT"
}
}
allprojects {
repositories {
jcenter()
google()
maven {
url 'http://oss.jfrog.org/artifactory/oss-snapshot-local'
}
}
}
Usando a última versão estável:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "io.realm:realm-gradle-plugin:6.0.2"
}
}
Continuar a garantir que o projeto é vista "Projetos". Clique no canto superior esquerdo do Estúdio Android menu drop-down selecione "Projetos":
Na visão "Projetos", selecione o arquivo build.gradle nível de item:
Etapa 2: Na de nível de aplicação build.gradle
referências realm-android
ficha.
apply plugin: 'realm-android'
Na visão "Projetos", encontrar o aplicativo-nível build.gradle
de arquivo:
Após a conclusão destas duas configurações, dependências pode Gradle única sincronização. Se a modernização Realm de versões anteriores a v0.88, você também precisa limpar projeto Gradle (./gradlew limpo).
A seguir estão dois modificados build.gradle
exemplos de arquivo:
Se você quiser usar Realm sincronizar todos os banco de dados?
Todos os documentos relacionados com a sincronização foi movido para o nosso documento plataforma .
Outro sistema de compilação
Ele não suporta o sistema de compilação Maven e Ant. Interessados podem olhar para GitHub:
biblioteca de configuração Proguard fornecidos como parte do Reino. Isso significa que você não precisa para adicionar quaisquer regras específicas no reino da configuração ProGuard.
1.2.1 Código de exemplo
Realm permite proteger, maneira de escrever rapidamente a camada de modelo da App duradoura e eficaz. Da seguinte forma:
// 创建model类并继承RealmObject
public class Dog extends RealmObject {
private String name;
private int age;
// ... getters()和setters()方法 ...
}
public class Person extends RealmObject {
@PrimaryKey
private long id;
private String name;
private RealmList<Dog> dogs; // 声明一对多关系
// ... getters()和setters()方法 ...
}
// 像普通的Java对象一样使用它们
Dog dog = new Dog();
dog.setName("Rex");
dog.setAge(1);
// 初始化Realm(每个App仅做一次)
Realm.init(context);
// 获取此线程的Realm实例对象
Realm realm = Realm.getDefaultInstance();
// 查询所有2岁以下的狗
final RealmResults<Dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
puppies.size(); // => 0,因为尚未将任何狗添加到Realm
// 在事务中保留您的数据
realm.beginTransaction();
final Dog managedDog = realm.copyToRealm(dog); // 取得非托管对象
Person person = realm.createObject(Person.class); // 直接创建托管对象
person.getDogs().add(managedDog);
realm.commitTransaction();
// 数据更改时将通知监听器
puppies.addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<Dog>>() {
@Override
public void onChange(RealmResults<Dog> results, OrderedCollectionChangeSet changeSet) {
// 查询结果通过细粒度的通知实时更新。
changeSet.getInsertions(); // => [0] is added.
}
});
// 异步更新后台线程上的对象
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
Dog dog = bgRealm.where(Dog.class).equalTo("age", 1).findFirst();
dog.setAge(3);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
// 原始查询和Realm对象将自动更新。
puppies.size(); // => 0,因为没有幼犬年龄小于2岁
managedDog.getAge(); // => 3,狗的年龄被更新
}
});
1.3 Ver base de dados Realm
Se precisar de ajuda usando o Realm, consulte StackOverflow resposta para o detalhe.
1.3.1 Realm Estúdio
Realm Estúdio é a nossa principal ferramenta de desenvolvimento que permite que você gerencie facilmente bases de dados Realm Realm e plataformas. Use Realm Studio, você pode abrir e editar Reinos locais e sincronizados, e gerenciar qualquer Realm Object Server
instância. Ele suporta Mac, Windows e Linux.
1.3.2 Stetho Realm
Você pode também Stetho-Realm plugin de configuração para Stetho, este é o navegador Chrome do Android ferramentas de depuração Facebook criados.
Stetho-Realm Realm não é uma manutenção formal.
inicialização 1,4 reino
Você deve ser inicializado antes de poder utilizar Realm na aplicação, isso precisa ser feito uma vez.
Realm.init(context);
Você deve fornecer um objeto Context Android. Inicialização Realm melhor onCreate na MyApplication em:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Realm.init(this);
}
}
Se você criar seu próprio aplicativo, você tem que ser registrado para o arquivo AndroidManifest.xml:
<application
android:name=".MyApplication"
...
/>