As the power and capacity of smartphones, mobile devices, and other embedded systems continue to increase, these devices are able to deal with larger and more complex data. Many mobile devices are centered around organizing, searching, and displaying large quantities of structured data. This might be something as simple as an address book, or something much more complex, like mapping and route applications.
In many cases, application requirements for data storage and management fit very well with the relational model provided by SQLite. SQLite is a fairly small and very resource-aware product, making it run well in restricted environments. The database-in-a-file model also makes it easy to copy or back up datastores easily and quickly. Given all these factors, it should come as no surprise that almost every major smartphone SDK supports SQLite out of the box, or allows it to be easily compiled for their platform.
Most mobile devices have limited memory resources. Applications must
be conscious of their memory usage, and often need to limit the
resources that may be consumed. In most cases, the majority of SQLite
memory usage comes from the page cache. By picking a sensible page
size and cache size, the majority of memory use can be controlled.
Remember that each open or attached database normally has its own,
independent cache. The page size can be adjusted at database creation
command, while the cache size can be adjusted ...