第39章
SharedPreference
在Android中我们通常使用 一个轻量级的存储类——SharedPreferences来保存用户偏好的参数。
android.content.SharedPreferences接口提供了用于排序和读取应用程序设置的方法。
通过调用PreferenceManager的getDefaultSharedPreferences静态方法,传入一个Content,以获取SharedPreferences的默认实例。
SharedPreferences使用xml文件, 类似于Map集合,使用键-值的形式来存储数据,调用SharedPreferences的getXxx(name)即可根据键获得对应的值。
第40章
存储区域
内部存储:对于应用程序来说是私有的,用户和其他应用程序都不能访问它。
外部存储:存储的文件将会和其他的应用程序分享,其他用户也能够访问外部存储。例如,内建的Camera应用程序将数字图像文件存储在外部存储中,以便用户能够很容易地将其复制到计算机中。
内部存储
内部存储的位置是/data/data/<包名>。
Context类提供了各种方法,可用来从应用程序访问内部存储。应该使用这些方法来访问在内部存储中存储的文件,而且不应该将内部存储的位置直接编写到代码中。
外部存储
读/写外部存储需要在AndroidManifest.xml中添加如下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
第41章
SQLite
Android系统已经集成了SQLite数据库,所以无需安装数据库软件。
SQlite通过文件来保存数据库,一个文件就是一个数据库,数据库中又包含多个表格,表格里又有多条记录,每个记录由多个字段构成,每个字段有对应的值,每个值我们可以指定类型,也可以不指定类型(主键除外)。
Android内置的SQLite是SQLite 3版本的。
使用数据库时会用到的三个类:
SQLiteOpenHelper:抽象类,通过继承该类,重写数据库创建以及更新的方法,还可以通过该类的对象获得数据库实例,或者关闭数据库。
SQLiteDatabase:数据库访问类,可以通过该类的对象来对数据库做一些增删改查的操作。
Cursor:游标,有点类似于JDBC里的resultset结果集,可以简单理解为指向数据库中某一个记录的指针。
查看db文件
在Device File Explorer里是打不开db文件的,可以用SQLite图形化工具(如SQLite Expert Professional)来查看,或者配置adb环境变量后,通过adb shell来查看。
第42章
相机
要使用相机,需要在AndroidManifest.xml中添加如下内容:
<uses-feature android:name="android.hardware.camera"/>
<uses-permission android:name="androud.permission.CAMERA"/>
如果Camera不符合需要,也可以直接使用Camera API,它允许配置相机的很多参数。
Camera API以android.hardware.Camera类为中心。