伊莉討論區

標題: 手機資料庫疑問 [打印本頁]

作者: jackyo04    時間: 2018-8-21 09:02 AM     標題: 手機資料庫疑問

因為寫C++得到一些啟發,發現Android個人用的資料庫不一定要用SQLite方式呈現,也可以用文件格式來儲存/新增/刪除紀錄,一樣很方便,而且不用多建立SQLite專屬的java檔案,然後透過該檔案上傳到後端,唯一麻煩的地方是,如果要指定刪除的位置,需要加入些想法才能實現,但也不難,目前用過文件格式寫了幾個小遊戲,效果也跟SQLite沒什麼差別。
想問一下,其他大大是否也有用文件格式來當資料庫?
載入方面個人感覺差不了多少,不知容放方面有什麼差異嗎?
作者: codewice    時間: 2018-8-21 11:26 PM

直接用 DB 的話,除了操作 sqlite,Android 官方還有個叫 Room 的 library,在 sqlite 上頭加上一個抽象層,讓開發者更方便使用 ORM。

不想用 sqlite,還有一個類似的東西叫 Realm,自己做了一套底層的實作。

自己實作一套存檔的機制也不是不行,只是回到多數工程上的根本問題:「沒有特殊需求的話,何苦自己造輪子?」

自己寫 native code 處理這些事情,還要考慮到一些細節,第一時間想到的是

* Java 跟 native 的橋接
* IO 不要 block main thread
* 讀寫到一半 process 被系統砍掉
* 讀寫位置的權限問題

這些處理完了,初步就能得到一個,跟現在廣泛使用的工具相比有少許功能的 library,而現有的工具還能處理

* ORM
* 測試
* DB migration
* 各種不知道怎麼用,然後有 stackoverflow 可以查詢的資源
* 已經考慮完 Android app 的各種問題
* 遇到 bug 會有人幫你修

自己做一套 native 的工具,像你所提及的,給遊戲用而且可以重新編譯就跑在別的平台上,除此之外我還沒想到有什麼特別的優點 (至少對 App 的情境,我沒想到有什麼特別的好處)

存放差異的話,自己做一套彈性是會大一點。但話說回來,資料量小的話,硬是塞進現有的 db 裡面,也感覺不到太大的效能差異。

就我自己的經驗,還沒遇過需要手工刻一份資料庫工具這麼硬的需求。
作者: jackyo04    時間: 2018-8-22 08:25 AM

codewice 發表於 2018-8-21 11:26 PM
直接用 DB 的話,除了操作 sqlite,Android 官方還有個叫 Room 的 library,在 sqlite 上頭加上一個抽象層 ...

突然想到的想法而已XD
只是這方法對不熟悉SQLite的新手來說,還蠻方便的
理解SQL需要一段時間,應急用的話可以,在以前我未了解SQL前,沒想到這個作法,如果有想到,我會拿來用一陣子,但只是過渡期,還是要去了解SQL,畢竟只是一時的想法,中間的Bug還沒去想到,既然有人幫忙做library了,就不要自己去找麻煩了XD
作者: codewice    時間: 2018-8-22 08:57 AM

嗯嗯,一開始先自己讀寫檔案應急一下沒什麼不好,我也做過這事,硬是要讀寫一個 json 檔 XDDDD
作者: advantise    時間: 2018-8-22 09:37 AM

資料量不大的話, 這是一種選擇, 不過這有很大的機會去造成不必要的bug, 在用的時候要小心
作者: kwj    時間: 2018-9-11 10:06 AM

大多數這種念頭都只適用在個人專案,如果是工作上的專案,這麼做通常一兩年後就要吃苦果了...。




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!