塔斯日誌

Welcome to TARS Studio
Android 儲存資料 (七) - 總結說明 - 封面圖

Android 儲存資料 (七) - 總結說明

前幾篇文章介紹了在 Android 開發中,使用的各種資料儲存方式,包含:Resource Files、Internal Storage、External Storage、SharedPreferences、SQLite 及 Room。這篇是本系列的最後一篇文章,總結每一種儲存方式的主要特色,幫助大家在開發 APP 時,挑選適合的方式來實作。
Android 儲存資料 (六) - 使用 Room - 封面圖

Android 儲存資料 (六) - 使用 Room

Room 持續性資料庫為 SQLite 提供抽象層,可讓資料庫更順暢的存取,同時充分發揮 SQLite 的效用,由於 SQLite API 存在一些缺點,因此 Google 強烈建議使用 Room 來存取 SQLite 資料庫中的資料。SQLite API 無法在編譯時檢查 SQL 錯誤,必需等到執行時才顯示錯誤訊息,且需要使用大量樣板程式碼,才能將資料庫資料轉為資料物件,而 Room 解決了這些問題。
Android 儲存資料 (五) - 使用 SQLite - 封面圖

Android 儲存資料 (五) - 使用 SQLite

SQLite 是一種輕量化的關聯式資料庫,適合用來儲存複雜且重複的結構化資料,如果您熟悉 SQL 資料庫,那麼使用 SQLite 必定能駕輕就熟,使用上大同小異。目前 Android 已經內建 SQLite ,無需安裝任何套件,也無需任何權限就能使用,且每個 APP 的 SQLite 各自獨立無法互相存取,當 APP 解除安裝後,資料也會一併刪除。雖然大部分 APP 的資料都是透過 API 取得,感覺好像不需要在手機裡面放一個資料庫。但這還是要看您的 APP 功能需求,如果需要在沒有網路的狀況下也能使用的話,那就有很大機會使用到 SQLite。又或者有大量不太會異動的資料,這樣也能用 SQLite 當作快取使用,可減少頻繁的與伺服器連線。
Android 儲存資料 (四) - 使用 SharedPreferences - 封面圖

Android 儲存資料 (四) - 使用 SharedPreferences

SharedPreferences 是一種輕量化的資料儲存方式,每個 APP 的 SharedPreferences 資料都是各自獨立無法互相存取,當 APP 解除安裝後,資料也會一併刪除。適合用來儲存簡單輕量的 Key-Value 資料,例如使用者帳號、暱稱、登入時間...等等,複雜格式則建議使用 JSON 檔案或 SQLite 資料庫儲存。SharedPreferences 支援 Boolean、Float、Int、Long 及 String 等型別,且無需任何權限就可以存取。
Android 儲存資料 (三) - 使用 External Storage - 封面圖

Android 儲存資料 (三) - 使用 External Storage

External Storage 中的檔案能與其他 APP 共享資源,也可以使用手機內建的檔案管理 APP 來瀏覽這些檔案。傳統的 External Storage 通常代表 SD 卡,但實際上 External Storage 區分 Primary External Storage 及 Secondary External Storage 兩種類型,每個類型還區分 APP 專屬目錄及共享目錄。這幾種類型主要差異只有目錄取得的方式,後續的各項操作都大同小異。由於 External Storage 儲存設備可能被使用者移除,因此比較適合用來儲存 APP 執行時非必要的檔案,就是被刪除也不影響 APP 執行的檔案。在使用檔案前,也建議應該先檢查設備是否可讀可寫。
Android 儲存資料 (二) - 使用 Internal Storage - 封面圖

Android 儲存資料 (二) - 使用 Internal Storage

在 Android 安裝 APP 後,系統會自動在手機內部規劃一個專屬的目錄 (app-specific) 來儲存 APP 資料,這個目錄就是 Internal Storage,儲存在這個目錄之外的就稱為 External Storage。Internal Storage 只有安裝的 APP 可以存取,無法與其他 APP 共享資料,也無法使用手機內建的檔案管理 APP 瀏覽檔案,如果 APP 是您開發的話,可以使用 Android Studio 內建的 Device File Explorer 工具來瀏覽檔案。當 APP 解除安裝後,資料也會一併刪除,而在 Android 10 (API 29) 及以上版本中,這些位置會進行加密處理,進一步提升資料安全性。適合用來儲存 APP 執行時會用到的必要檔案,或較機密的資料。
Android 儲存資料 (一) - 使用 Resource Files - 封面圖

Android 儲存資料 (一) - 使用 Resource Files

在 Android 開發上,或多或少都會使用到圖檔、動畫檔、佈局檔......等靜態資源,這些資源稱為 Resource Files。涉及儲存這些靜態資源的目錄有 res 及 assets 兩個目錄,其中又以 res 目錄最常使用,res 目錄具有嚴格的子目錄結構定義,每個子目錄都有其用途,這表示您不能隨便在 res 目錄底下建立自己想要的目錄結構。在少數狀況下,如果您真的需要存取原始資源或自訂目錄結構,那麼您就必需將檔案改存放到 assets 目錄中,但必須再次強調,這是非常少見的狀況。
【讀書筆記】為何只有5%的人,網路開店賺到錢 - 封面圖

【讀書筆記】為何只有5%的人,網路開店賺到錢

本書主要講解電商經營的基本概念,還有常見經營策略,涉及知識範圍廣泛,但並未講解得非常深入,適合完全沒有經營過電商的人閱讀。如果您是電商經營者,並且經營一段時間了,想要追求更高利潤的話,那這本書可能不那麼適合您,但書中提及的很多觀點或許能激發您思考出更好的銷售策略。對我來說,本書更像是一本電商經營導覽,讓我綜觀電商經營的整體生態,當我實際經營遇到問題時,可以清楚知道要往哪些方向尋找解決方案,避免走了過多的冤枉路。
使用免費不限流量的 Cloudflare CDN 為您的網站加速 - 封面圖

使用免費不限流量的 Cloudflare CDN 為您的網站加速

Cloudflare 是少數提供 CDN 免費無限流量的平台,光免費版就提供不少架站所需的功能,例如:CDN 加速、DNS 代管、靜態資源快取、SSL 憑證、網頁壓縮、DDOS 攻擊防護......等等,這麼多且實用的免費服務,事實上我目前也找不到第二個了。免費版提供的功能,又以 CDN 加速及 DDOS 攻擊防護最常被關注,只要提到 Cloudflare 大家一定會聯想到這是在做網頁加速或攻擊防護。當您的網站流量還不大的時候,您可能不需要 DDOS 攻擊防護,但您絕對需要網頁加速功能,誰不希望自己的網站可以跑快一點呢?
網頁圖片延遲載入方法 (Lazy loading) - 封面圖

網頁圖片延遲載入方法 (Lazy loading)

網頁載入時耗費最多流量的資源,大概就是圖片了。為了節省流量的浪費,除了將圖片在可接受畫質的狀況下,盡可能的將檔案大小縮小之外,另一個實用技巧就是圖片延遲載入 (Lazy loading)。我認為延遲載入最明顯的好處有節省流量、降低使用者因等待而跳出及提升 SEO 成效。
風格背景圖
It has often proved true that the dream of yesterday is the hope of today and the reality of tomorrow.
- Robert H. Goddard