EP 23: SQLite DB in Android and iOS for TopStore App

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~

本篇是 Re: 从零开始用 Xamarin 技术来复刻过去开发的一个 App: TopStore 系列文的 EP23。

上一篇谈到使用 SQLite 套件在 TopStore App 来做资料储存,接下来继续测试运作在双平台(iOS、Android) SQLite DB 建立状况。

不过在本篇会额外利用到一个 "DB Browser for SQLite" 的工具来协助确认,请各位到下列网址下载适合的平台安装档来使用喔。
https://sqlitebrowser.org/

DB Browser for SQLite

那就开始罗~~~


首先,先来看看 Android 平台。

把 TopStoreApp 部署到一台 Android 6.0 版本的模拟器执行。
Android 6.0 模拟器

透过 "Android Device Monitor" 来监看该模拟器的执行,并且透过其中的 File Explorer 来确认 SQLite DB 档是否出现。
SQLite DB 档是否出现 1

SQLite DB 档是否出现 2

若有出现的话,可以透过 "Android Device Monitor" 的 "Pull a file from the device"(在 Android Device Monitor 右上角有两个很小的按钮的其中一个),把该 SQLite DB 档拉出来到电脑上。
SQLite DB 档拉出来到电脑

在 Windows 系统上把 SQLite DB 档案拉出来後的样子。
SQLite DB 档

透过前言所说的 "DB Browser for SQLite" 来开启该 SQLite DB 档看看。
DB Browser for SQLite

打开後可以看到上一篇 EP22 撰写的程序所建立 Person 类别规划的 Table 资料格式(Data Schema)。
Person 类别规划的 Table 资料格式

这边稍微解释一下,在 Android 7.0 後的 OS 版本因 Android 作业系统的资料安全规范改变,若要看到其装置内部档案请改用其他技巧处理,如: Root...等,在此不便多谈。

但目前为止 Android 档案系统规划从 6.0 之後都没有大改,所以只要用 Android 6.0 的模拟器确认过一次,理论上後续到目前 Android 11.0 的档案系统的处理方式都一样。

再来,继续来看看 iOS 平台。

把 TopStoreApp 部署到一台 iOS 的模拟器执行。
iOS 模拟器

接下来在 macOS 当中透过 Finder 浏览到该模拟器部属 TopStore App 的资料夹。
SQLite DB 档是否出现 1
SQLite DB 档是否出现 2

这边稍微解释一下,其 macOS 用 Finder 浏览的路径为 "/Users/<macOS User Account>/Library/Developer/CoreSimulator/Devices/<Simuloatr uuid>/data/Containers/Data/Applications/<App uuid>/Library/"。

其中有两个 uuid 为 macOS 系统安装 Xcode 时自动产生,可能因更新或重新安装 Xcode 而改变,所以可以在 DbService 的建构式串接好 DB 的档案路径时,将其 SQLite DB 档案的档案路径位置,透过 Debug.WriteLine...等方法,在 Visual Studio 的 "输出" 窗格中以显示该档案路径位置。

因为是 iOS 的模拟器,所以直接可以透过 macOS 的 Finder 将该档案复制(macOS 系统当中称作 "拷贝")出来。
复制该 SQLite DB 档案

在 macOS 系统上把 SQLite DB 档案拉出来後的样子。
SQLite DB 档

透过前言所说的 "DB Browser for SQLite" 来开启该 SQLite DB 档看看。
DB Browser for SQLite

打开後可以看到上一篇 EP22 撰写的程序所建立 Person 类别规划的 Table 资料格式(Data Schema)。
Person 类别规划的 Table 资料格式

当然,这是 iOS 模拟器才能这样作,如果是用实体 iOS 装置就无法透过这样的方式测试了,若要透过外部程序看到其实体 iOS 装置的档案系统内部状态,请改用其他技巧处理,如: JB...等,在此不便多谈。

由於其 iOS 档案系统的部分,在模拟器或实体机器的作法是一致的,所以只要用模拟器确认过一次,理论上後续 App 部署到实体机器使用时也不会有太大的问题。

以上就是本 EP23 的介绍罗~~~

下篇 EP24 见唷!

搭啦嘎~~~


<<:  Day 19 - C strings 字串,我好想吃串烧

>>:  Day20 - ImageView(二)

MVC 架构

MVC 分别是 Model, View, Controller, 是一种软件架构, View 负责使...

DE2_115(DAY2)用niosii和switch还有NiosII console去控制板子上的led

DE2_115(DAY2)用niosii和switch还有NiosII console去控制板子上的...

Day.21 从零开始 - 实务需求学SQL_2

延续昨天的内容介绍活动的新增改删以及表之间的查询。 新增活动资料 语法: INSERT INTO ...

【第四天 - Queue 介绍】

Q1. Queue是什麽? 与 Stack 一样,是一种资料结构的概念,假设有一个容器是装马克杯的盒...

Day 1 Java基本功 (数)

第一篇我要来介绍程序设计一些基本的知识,首先跟大家报备,我使用的平台是JAVA开发者常使用的ecpl...