SQLiteデータベースの利用

AndroidはSQLiteデータベースをサポートしており、複雑なデータ構造を管理するための有用なオブジェクトを[※1] 提供しています。例えば、Androidでは姓、名、住所、電話番号、画像、その他諸々の個人情報を含む『連絡先』情報を定義しています。データベースの作成にはContext.createDatabase()を、利用にはContext.openDatabase()を使い、あとは通常通りにデータの読み書きを行うことが出来ます[※2] (画像データは一般にローカルファイルの位置を示すパスが格納されることに注意してください)。

Androidはテーブル内容の閲覧や、SQLコマンドの実行、その他様々な有用な機能を提供するsqlite3データベースツールを含んでいます。Examine databases (sqlite3)にこのプログラムの使い方が記載されているので参照してください。

SQLiteなどのデータベースはデバイス内の以下の場所に保存されます。
/data/data/<package_name>/databases

作成するテーブル数、どのようにしてテーブルを連結するか、といった点はこのドキュメントのカバー範囲外となっています。なおAndroidにおいて標準のSQLiteコンセプトに対して制約をかけることはありません。ただレコードの検索を高速化するためにユニークIDに利用されるフィールドをautoincrementとすることを強く推奨します。これはプライベートなデータに対して必須なものではありませんが、Content Providerを実装する際にはユニークなIDフィールドが必須となります。NotePadProvider.javaのサンプルにデータベースの作成とデータ投入に関するサンプルがあるのでご覧下さい。アプリケーション内で作成したデータベースは、同一アプリケーション内の他クラスから名前を指定することでアクセスすることが出来ますが、他のアプリケーションからはアクセス出来ません。