[問題] 請教大量字串資料傳輸做法流程

看板AndroidDev作者 (伕萊羅伊)時間10年前 (2015/11/30 11:25), 編輯推噓3(3023)
留言26則, 4人參與, 最新討論串1/1
各位好,最近剛學習開發ANDROID APP 而我目前開發的案子有遇到以下的問題 想請問各位高手在業界的推薦做法是為何? 在WEB平台會有大量的商品資料,有文字+圖片 客戶端的手機要能與WEB平台上的商品資料一樣 由於需要能有同步後,在沒網路的情況下也能正常讀取 所以不能在手機上邊看商品邊下載資料 所以我目前想到的做法是... 手機端的商品資料是儲放在手機資料庫內 同步時,WEB平台會把所有商品資料轉成JSON格式字串 並和圖片壓縮成ZIP後,利用異動時間當檔名供手機下載 手機執行同步時檢查ZIP檔案是否有新檔案 若是則下載ZIP檔解壓後將JSON內容新增或修改於資料庫內 再將所需的圖片檔回存至手機內 由於WEB和APP平台都是我一人在開發,所以公司內無人可問 不知以上是否有更好或更正確的做法可教導我? 謝謝指教! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.4.148 ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1448853922.A.98E.html

11/30 15:33, , 1F
用json可以 但是何不直接用restful api跟server查?
11/30 15:33, 1F

11/30 15:34, , 2F
再不然就是看時間性選用push or timestamp
11/30 15:34, 2F

11/30 22:59, , 3F
這樣的做法有幾個問題
11/30 22:59, 3F

11/30 22:59, , 4F
第一是資料即時性的問題 如果你伺服器價格改了
11/30 22:59, 4F

11/30 22:59, , 5F
客戶卻是使用離線功能瀏覽 那價格兜不攏的情形怎麼辦?
11/30 22:59, 5F

11/30 22:59, , 6F
第二是如果客戶刪除 app 重新安裝
11/30 22:59, 6F

11/30 22:59, , 7F
你要一次同步所有資料 要花很多流量與時間
11/30 22:59, 7F

11/30 22:59, , 8F
再來就是客戶端儲存空間的限制
11/30 22:59, 8F

11/30 22:59, , 9F
佔很多容量就不用說了 但如果客戶端容量滿了
11/30 22:59, 9F

11/30 22:59, , 10F
該做什麼處理? 我覺得還是做成單純從伺服器撈資料會
11/30 22:59, 10F

11/30 22:59, , 11F
比較好
11/30 22:59, 11F

12/01 00:06, , 12F
感謝兩位的回覆,因為就是卡在要能"離線瀏覽"
12/01 00:06, 12F

12/01 00:06, , 13F
所以才一直在想要怎麼設計這些同步的問題
12/01 00:06, 13F

12/01 00:08, , 14F
因為我們的產品有點賣電子書,買了後不用上網也能透過APP
12/01 00:08, 14F

12/01 00:09, , 15F
去開啓內容,而APP本身就是像商城和清單,所以要能離線
12/01 00:09, 15F

12/01 00:11, , 16F
價錢問題,因為是會在SERVER檢查,若能連線就會先做資料更新
12/01 00:11, 16F

12/02 07:18, , 17F
我還是不太懂這個產品 不過如果你要同步
12/02 07:18, 17F

12/02 07:18, , 18F
建議你在server端做一個可以用時間取得更新內容的功能
12/02 07:18, 18F

12/02 07:18, , 19F
也就是你新增或更新資料時 要紀錄在一張表裡
12/02 07:18, 19F

12/02 07:18, , 20F
之後同步時再進那張表取得要更新的項目id
12/02 07:18, 20F

12/02 07:18, , 21F
再以id取資料更新 因為我不確定你說的檔案有多大
12/02 07:18, 21F

12/02 07:18, , 22F
這種方式是佔流量最小的方式 之前做的案子
12/02 07:18, 22F

12/02 07:18, , 23F
串接的api也是有提供這個方法來查詢
12/02 07:18, 23F

12/02 07:18, , 24F
不然等之後資料量變大 下載所有資料不論對 server
12/02 07:18, 24F

12/02 07:18, , 25F
還是 client 都是一個負擔
12/02 07:18, 25F

12/02 22:57, , 26F
也就是 先比對id及時間 找出需要更新的id再行同步
12/02 22:57, 26F
文章代碼(AID): #1MMy6YcE (AndroidDev)