[英]Realm.io - use outside of Android (in Java)
我正在考慮為我的 Android 應用從 Firebase DB 切換到 Realm.io。
從我讀到的 - https://realm.io/docs/java/latest/#getting-started :
我們目前不支持 Android 之外的 Java。
對於這樣一個(據稱)成熟的圖書館來說,這似乎是一個奇怪的限制。
我認為這可能會使自動測試復雜化,需要在設備/模擬器上運行測試,從而大大減慢速度。
真的不能在Android之外使用嗎?
這種限制的原因是什么?
真的像我想的那么糟糕嗎?
如果我想讓一些輔助服務器應用程序(用 Java 編寫)在雲中的某處運行,例如 AppEngine,以連接到領域數據庫,該怎么辦。 是否排除了該選項?
有哪些解決方法,例如用於測試和服務器端 Java?
對於后一個目的 - 是否支持 NodeJS 服務器端應用程序?
對於這樣一個(據稱)成熟的圖書館來說,這似乎是一個奇怪的限制。
如果您考慮到 Realm 提供自己的原生內核和為 Android NDK 編寫的 JNI 包裝器這一事實,那么這種限制並不奇怪; 並且它還沒有與它分離以使其與平台無關,因此例如在某些地方依賴於 Android 特定的東西 - 例如,通知,使用“Looper”作為其特定的事件循環實現。
從技術上講, realm-java
綁定計划在 Android 之外支持 Java,但目前還沒有。 此時,您應該將其更多地視為realm-android
不是realm-java
。
當時的 Realm-Core 還不支持 UWP 和 Windows,盡管現在realm-dotnet
項目也適用於 Windows。 即便如此,將 Realm-Java 的實現與 Android 分離也很困難。
我認為這可能會使自動測試復雜化,需要在設備/模擬器上運行測試,從而大大減慢速度。
對於測試領域特定的行為,是的。
要使用單元測試測試應用程序中的其他內容,不。 你只需要正確的設計,我想還有一些模擬。
真的不能在Android之外使用嗎?
它作為本地數據庫在 iOS 和 Android 上運行。
自這篇文章發表於 2016 年 11 月 16 日以來,它還可以在 Linux 上用作本地服務器端數據庫,通過 NodeJS 使用與 React-Native Realm API 類似(相同?)的 API。
您還可以在您喜歡的任何 Linux 或 MacOS 機器上免費運行 Realm Object Server (ROS)。
然后就可以使用sync API
連接到所述ROS,並自動將用戶關聯的Realm 同步到ROS。 這就是您可以免費使用 ROS 做的事情。
使用
企業
專業版及其價格,您還可以(在服務器端)讀/寫同步領域,並通過 NodeJS 領域 API 監聽更改同步領域的事件。
真的像我想的那么糟糕嗎?
這取決於你自己的解釋。
如果我想讓一些輔助服務器應用程序(用 Java 編寫)在雲中的某處運行,例如 AppEngine,以連接到領域數據庫,該怎么辦。 是否排除了該選項?
您的 Java 應用程序當前將無法與服務器端的 Realm 通信。
僅限 NodeJS。
即便如此,自動更新設備之間的所有數據到 ROS 以反映 ROS 中的任何內容的“同步”領域也是一項付費功能。
基本上,Realm-Java 目前只支持 Android。 正如文檔中所說。
至於通過 NodeJS API 與 Linux 上服務器端的本地 Realm 通信,當然,繼續。
對於后一個目的 - 是否支持 NodeJS 服務器端應用程序?
NodeJS 能夠在 Linux 機器上寫入 Realms。 也可能是 Mac OS。
免費版僅限本地 Realm。 付費版本是通過 ROS 同步 Realm 的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.