Top Banner
() Effective SQLite For Android
38

(続) Effective SQLite for Android

Dec 02, 2014

Download

Technology

Shinobu Okano

(続) Effective SQLite for Android - potatotips (iOS/Android開発Tips共有会) 第10回
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: (続) Effective SQLite for Android

(続)

Effective SQLite For

Android

Page 2: (続) Effective SQLite for Android

について

話そうと

思ったんですが

Page 3: (続) Effective SQLite for Android

Android Engineer?

Page 4: (続) Effective SQLite for Android

About MeShinobu Okano ( 岡野 忍 )

SERAKU Co.,Ltd.@operandoOSAndroid / Ruby on Rails Dart / Firefox OS / Play FrameworkTwenty one years old

http://osyyare.blogspot.jp/

Page 5: (続) Effective SQLite for Android
Page 6: (続) Effective SQLite for Android

SQLite Home Page

http://

www.sqlite.org/

Page 7: (続) Effective SQLite for Android

軽量なRDB

Page 8: (続) Effective SQLite for Android

軽量なRDB

Public Domain

Page 9: (続) Effective SQLite for Android

軽量なRDB

Public Domain

早い!

Page 10: (続) Effective SQLite for Android

さまざまな

Platformで活躍

Page 11: (続) Effective SQLite for Android

Android

iOS

Ruby on Rails などなど

Page 12: (続) Effective SQLite for Android

SQLite3

+ Android

Page 13: (続) Effective SQLite for Android

DBHelperSQLiteOpenHelp

er

SQLiteDatabase

DatabaseHelper

SQLiteStatement

Cursor

Page 14: (続) Effective SQLite for Android

Create Databases

SQLiteDatabase openOrCreateDatabase

Page 15: (続) Effective SQLite for Android

SQLiteDatabase openOrCreateDatabase

Page 16: (続) Effective SQLite for Android

SQLiteDatabase openOrCreateDatabase

DBのPermissionが644になるOS Versionが存在す

DBのVersion UPが柔軟にできない

Page 17: (続) Effective SQLite for Android

SQLiteDatabase openOrCreateDatabase

DBのPermissionが644になるOS Versionが存在す

DBのVersion UPが柔軟にできない

Bad Implementation

Page 18: (続) Effective SQLite for Android

Create Databases

Context openOrCreateDatabase

Page 19: (続) Effective SQLite for Android

Context openOrCreateDatabase

Page 20: (続) Effective SQLite for Android

MODEを間違えるとやばい!

DBのVersion UPが柔軟にできない値 説明Context.MODE_PRIVATE 呼び出し元のアプリケーションのみ読み書

き可Context.MODE_WORLD_READABLE 他のアプリケーションも読み込み可Context.MODE_WORLD_WRITEABLE 他のアプリケーションも書き込み可

Context openOrCreateDatabase

Page 21: (続) Effective SQLite for Android

SQLiteDatabase openOrCreateDatabase

MODEを間違えるとやばい!

DBのVersion UPが柔軟にできない値 説明Context.MODE_PRIVATE 呼び出し元のアプリケーションのみ読み書

き可Context.MODE_WORLD_READABLE 他のアプリケーションも読み込み可Context.MODE_WORLD_WRITEABLE 他のアプリケーションも書き込み可

Bad Implementation

Page 22: (続) Effective SQLite for Android

Create Databases

SQLiteOpenHelper

Page 23: (続) Effective SQLite for Android

SQLiteOpenHelper

Page 24: (続) Effective SQLite for Android

SQLiteOpenHelper

DBのVersion UPに柔軟に対応できる

Downgradeも可能

Permissionも適切に設定される

Page 25: (続) Effective SQLite for Android

SQLiteOpenHelper

DBのVersion UPに柔軟に対応できる

Downgradeも可能

Permissionも適切に設定されるGood!

Page 26: (続) Effective SQLite for Android

Create DatabasesSQLiteDatabase

openOrCreateDatabase Context

openOrCreateDatabase SQLiteOpenHelper

Page 27: (続) Effective SQLite for Android

SQLiteを早く使う三原則

Page 28: (続) Effective SQLite for Android

TransactionSQLiteを早く使う三原則

Page 29: (続) Effective SQLite for Android

Transaction

Prepare Statement

SQLiteを早く使う三原則

Page 30: (続) Effective SQLite for Android

Transaction

Prepare Statement

In Memory

SQLiteを早く使う三原則

Page 31: (続) Effective SQLite for Android

Versionごと機能を利用SQLite 3.8.4.3: Lollipop + L Developer Preview

SQLite 3.7.11: KitKat + Jelly Bean

SQLite 3.7.4: Ice Cream Sandwich

Page 32: (続) Effective SQLite for Android

FTSを使って全文検索full-text searches

Page 33: (続) Effective SQLite for Android

FTSを使って全文検索full-text searches

CREATE VIRTUAL TABLE sessions_search USING fts3( body TEXT NOT NULL, tokenize=porter )

INSERT INTO sessions_search ( body ) VALUES( "potato tips" )

Page 34: (続) Effective SQLite for Android

FTSを使って全文検索Select search module: FST3 or FST4(API 11から)

Page 35: (続) Effective SQLite for Android

FTSを使って全文検索Select search module: FST3 or FST4(API 11から)

Tokenizers: simple or porter

Page 36: (続) Effective SQLite for Android

FTSを使って全文検索Select search module: FST3 or FST4(API 11から)

Tokenizers: simple or porter

LIKEで検索するより全然早い!

Page 37: (続) Effective SQLite for Android

FTSを使って全文検索Select search module: FST3 or FST4(API 11から)

Tokenizers: simple or porter

LIKEで検索するより全然早い!

iOSでも使えるらしい!

Page 38: (続) Effective SQLite for Android

Thank you