一个是本地保留,一个是放在后台(供给API接口),还有一个是放在敞开云效劳上(如SyncAdapter 会是一个不错的挑选)。
关于榜首种办法,即本地数据存储,如嵌入式SQLite,你能够挑选直接运用SQL句子、Content Provider 或 ORM(方针联络数据映射)。
关于 Android 运用的开发,首要是运用Java言语,所以适用于Java言语的一些ORM,也能移植于 Android 途径上。
下面是5个可用ORM的全体介绍:
OrmLite 不是 Android 途径专用的ORM构造,它是Java ORM。支撑JDBC联接,Spring以及Android途径。语法中广泛运用了注解(Annotation)。
SugarORM 是 Android 途径专用ORM。供给简略易学的APIs。能够很简略的处理1对1和1对多的联络型数据,并经过3个函数save(), delete() 和 find() (或许 findById()) 来简化CRUD底子操作。
要启用SugarORM,需求在你的运用程序 AndroidManifest.xml 装备中增加如下meta-data标签:
<meta-data android:name="DATABASE" android:value="my_database.db" /><meta-data android:name="VERSION" android:value="1" /><meta-data android:name="QUERY_LOG" android:value="true" /><meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain" />
然后就能够从SugarORM拓宽需求保留的数据类:
public class User extends SugarRecord<User> { String username; String password; int age; @Ignore String bio; //this will be ignored by SugarORM public User() { } public User(String username, String password,int age){ this.username = username; this.password = password; this.age = age; }}
要增加一个User,代码如下:
User johndoe = new User(getContext(),"john.doe","secret",19);johndoe.save(); //stores the new user into the database
当功用很重要时(数据拜访频频),GreenDao是一个很快的处理方案,它能够支撑数千条记载的CRUD每秒,和OrmLite比照,GreenDAO要快简直4.5倍。(精确数据请自行benchmark)。
GreenDAO小于100KB,所以关于运用程序APK的巨细影响很小。
这儿有一个教程,演示怎样运用Android Studio,在Android运用程序中运用GreenDAO构造。
官方网站:http://greendao-orm.com/
Active Record(活动目录)是Yii、Rails等构造中对ORM完结的典型命名办法。Active Android 帮忙你以面向方针的办法来操作SQLite。
在你的项目中包括Active Android,你需求在项意图 /libs 目录下增加一个jar文件。能够从Github中获取源代码并运用Maven进行批改。然后你应当增加这些meta-data到你运用程序的 AndroidManifest.xml 装备中:
<meta-data android:name="AA_DB_NAME" android:value="my_database.db" /><meta-data android:name="AA_DB_VERSION" android:value="1" />
然后在你的Activity中调用ActiveAndroid.initialize() 办法:
public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActiveAndroid.initialize(this); //rest of the app }}
如今,你能够运用Java注解来创立模型类:
@Table(name = "User")public class User extends Model { @Column(name = "username") public String username; @Column(name = "password") public String password; public User() { super(); } public User(String username,String password) { super(); this.username = username; this.password = password; }}
Realm 是一个将能够运用的Android ORM,依据C++编写,直接作业在你的设备硬件上(不需求被解说),因而作业很快。它一同是开源跨途径的,iOS的代码能够在GitHub找到,你还能够找到Objective-C以及Swift编写的Realm运用实例。