android学习札记(五)

android学习笔记(五)

数据存储的分类
    Shared Preferences,一个轻量级的存储的地方。我觉得这种方式存储那些以个位单位的数据比较方便。
    File,最原始的数据存储方式,但是也是最方便的一种。
    SQLite Databases: 我的理解是一个Application私有的数据库。
    Content Providers: 我的理解是一个app开放给其他app查询的数据库,类似于Contact,就是其中的一种。

 Shared Preferences
      在书中建议,这种方式存储一些不UI的状态等相关的信息。因为实现,基本上就是一个map。用过的人都知道,在map一级,往往存储不了太复杂的东西。
      其实用于这种方式存储数据的有两种,一种是被称之为SharePerferences的技术,其提供了一个map。另一种是onSaveInstanceState handler,基本上于前面一种属于实现类似。
      SharePerferences属于那种很通过activity自带的getSharedPreferences方法来获取SharedPreferences对象,然后再从里面获得Edit的内部对象来存储数据,其实这个edit就是一个存储器。不过要在结束后使用commit方法。而获取时直接从SharePreferences里面获取。
     而onSaveInstanceState handler,则是在onSaveInstanceState存在其bundle对象中(1.1是如此,1.5可能换名字了吧),此方法在activity结束其生命周期时被调用。然后onCreate中读取。
     前者是任何时间都可存取。而后者可以看成是一个activity结束时,等待下一个周期开始的时候,存放的数据。不能肯定。前一种好像其sharePreference不能在机器重启后有效。这点不敢肯定。

 

SQLite Databases
       其实这里的SQLite写的相当的简单。所以我也没有什么办法写的太详细。不然也就是实打实的翻译了。
       总体来说。关于SQlite的还是相当的复合现代的特征的。因为其提供了一套准OR映射框架给我们用。借助Help的操作,可以完全不用SQL语句来操作数据。这里用的准,是因为其本质上来说,还是原原本本的SQL语句。只是由于API的作用,变得优雅了很多。
       总体上来说,Android提供了两个数据的库的对象。Cursors和Content Values,简单的来说Cursors是类似于数据集的东西。而Context Values代表的则是一行。还有一个比较特别的就是SQLiteOpenHelper,这是类似于一个适配器一样的类。处理了一些数据库动态的方式。
       之所以说SQLite有着一套准的OR映射,是因为,你可以通过ContentValues和Cursors来操作所有的数据库(但是你必须写一些准SQl语句来查询或者定位)。相关的Api可以从书上或者网站上找到。具体的操作感觉上Cursors和java中的数据集基本类似。而ContextValuse则是更加的OO。
       
Content Providers
    其实就是SQLite共有版本,记得要在主配置文件上面申明一下。
    Native的有
    Browser Use the browser Content Provider to read or modify bookmarks, browser history, or web searches.
    CallLog View or update the call history including both incoming and outgoing calls together with missed calls and call details, like caller ID and call durations.
    Contacts Use the Contacts provider to retrieve, modify, or store your contacts’ details.
    MediaStore The Media Store provides centralized, managed access to the multimedia on your device, including audio, video, and images. You can store your own multimedia within the Media Store and make it globally available.
      Settings You can access the device’s preferences using the Settings provider. Using it, you can
view and modify Bluetooth settings, ring tones, and other device preferences.

File

    基本上也是沿袭了java中流的概念,而且简化了不少。