Android开发面经5

1、SQL语句:

常见的SQL

2、

  • Room介绍
    Room是一个OM(Object Mapping对象映射)数据库,可以方便地在Android应用程序上访问数据库。
    Room抽象了SQLite,通过提供方便的api来查询数据库,并在编译时验证。并且可以使用SQLite的全部功能,同时拥有Java SQL查询生成器提供的类型安全。

  • Room的构成
    Database:数据库扩展了RoomDatabase的抽象类。可以通过Room获得它的一个实例。databaseBuilder或Room.inMemoryDatabaseBuilder。
    Entity:代表一个表结构。
    Dao:数据访问对象是Room的主要组件,负责定义访问数据库的方法。
    详解:ROOM

3、数据库的优化

  • 1、数据库性能上
    1.1 批量事务插入,提升数据插入的性能由于sqlite默认每次插入都是事务,需要对文件进行读写,那么减少事务次数就能简书磁盘读写次数从而获得性能提升。
    1.2 单条sql优于多条sql实测发现,对于几十条sql插入当你替换成单条sql时性能有所提升
    1.3 读和写操作是互斥的,写操作过程中可以休眠让读操作进行由于第一步所说的多数据事务插入,从而会导致插入时间增长那么也会影响数据展示的速度,所以可以在插入过程中休眠操作,以便给读操作流出时间展示数据。
    1.4 使用索引适当的索引的好处是让读取变快,当然带来的影响就是数据插入修改的时间增加,因为还得维护索引的变化。
    1.5 使用联合索引过多的索引同时也会减慢读取的速度
    1.6 勿使用过多索引
    1.7 增加查询条件当你只要一条数据时增加limit 1,大大的加快了速度
    1.8 提前将字段的index映射好减少getColumnIndex的时间,可以缩短一半的时间

  • 2、数据库设计上
    2.1 通过冗余换取查询速度
    2.2 减少数据来提升查询速度比如下拉操作时,先清除旧数据,再插入新数据保证数据库中的数据总量小,提升查询速度。
    2.3 避免大数据多表的联合查询

4、SharedPreferences

是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态。
(1)它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存。
(2)数据存储类型为key-value对。
(3)使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件 存放在/data/data/ < package name > /shared_prefs目录下。
(4)是一种轻量级存储类,常用于保存一些常用的配置比如窗口状态。之所以说SharedPreference是一种轻量级的存储方式,是因为它在创建的时候会把整个文件全部加载进内存。
案例:登录成功后,再次启动,显示上次登录的用户名和密码

5、sqlite升级

onUpgrade(SQLiteDatabase,int,int)
当数据库需要升级的时候,Android系统会主动的调用这个方法。一般我们在这个方法里边删除数据表,并建立新的数据表,当然是否还需要做其他的操作,完全取决于应用的需求。

6、区别

getWritableDatabase取得的实例是以读写的方式打开数据库,如果打开的数据库磁盘满了,此时只能读不能写,此时调用了getWritableDatabase的实例,那么将会发生错误(异常)
getReadableDatabase取得的实例是先调用getWritableDatabase以读写的方式打开数据库,如果数据库的磁盘满了,此时返回打开失败,继而用getReadableDatabase的实例以只读的方式去打开数据库.

你可能感兴趣的:(Android,android,数据库,sqlite)