原创 常用加密算法分析和實現

一、前言 工作中有時候需要對數據進行加密,就筆者從事的Android開發來說, 上層開發語言爲Java/Kotlin,JDK本身提供了一套加解密接口,可以很方便地調用加密/解密方法。 但有時候需要在native層實現加密邏輯的封裝,這時候只

原创 聊一聊線程池和Kotlin協程

目前很多開發組都用上協程來處理異步任務了,但是有的地方協程提供的原生API還是不足以應付,比方說一些SDK提供了傳入Executor的接口(以便複用調用者的線程池來執行異步任務),這時候可以用這JDK提供的線程池,或者封裝一下協程也可以滿足

原创 FastKV:一個真的很快的KV存儲組件

一、前言 KV存儲無論對於客戶端還是服務端都是很常用且重要的。 對於Android客戶端而言,最常見的莫過於SDK提供的SharePreferences(以下簡稱SP),但其低效率和ANR問題飽受詬病。 後來官方又推出了基於Kotlin的D

原创 推薦一款好用的序列化框架

一、序 文章開始,先聊一聊自己的一些經歷。 客戶端和服務端打交道,首先要確定協議,包括選取數據協議和約定字段。 說到消息協議,大家可能會想到xml、json,或許還了解protobuf, protostuff, thrift, msgpac

原创 Packable-高效易用的序列化框架

一、前言 當我們需要對一些信息進行存儲或者傳輸時,通常需要用一種數據協議,將信息轉換爲可存儲或傳輸的形式(二進制字節流、經過編碼的文本等)。 特別地,當數據源是對象時,轉化對象的過程被稱爲“序列化”,反之,從編碼數據轉化爲對象的過程被稱爲“

原创 Android監聽鍵盤彈出隱藏的簡化實現

Android系統沒有提供鍵盤的彈出/隱藏的API,開發者需自己實現。 網上有各種版本,下面是比較簡單的一種實現(引自 https://www.jianshu.com/p/4575e65f4e19 ): public class EPSof

原创 如何實現一個圖片加載框架 一、前言 二、 框架命名 三、流程&架構 四、功能實現 五、回顧 六、API 七、總結

一、前言 圖片加載的輪子有很多了,Universal-Image-Loader, Picasso, Glide, Fresco等。 網上各種分析和對比文章很多,我們這裏就不多作介紹了。 古人云:“紙上得來終覺淺,絕知此事要躬行”。 只看分析

原创 加強版異步任務方案

一、前言 爲了提高流暢性,耗時任務放後臺線程運行,已是APP開發的常識了。 關於異步有很多方案,當前最流行的,莫過於RxJava了; 更早一些時候,還有AsyncTask(骨灰級的API)。 總的來說,AsyncTask構思精巧,代碼簡潔,

原创 打造一個瀑布流圖片瀏覽App 一、前言 二、技術引用 三、效果 四、下載

一、前言 最近相繼發佈了幾個開源項目,造完輪子,很自然的想到要弄個App來跑一下。 於是搗弄了一個瀏覽圖片的APP。 二、技術引用 LightKV 高性能key-value存儲組件,相比SharedPreferences有全方位的改進。 支

原创 字節跳動內推啦

又是一年內推季~ 因爲疫情影響,今年的金三銀四來的比以往時候更晚一些,內推它只會遲到,但從不缺席。 這一次頭條又有大量招聘崗位放出,各個業務線發展勢頭良好,歡迎各路英雄加入! 劃重點: 介紹一下樓主所在的團隊: 我們是字節深圳互娛的研發團隊

原创 SQLite數據庫修復方案(For Android App) 一、前言 二、數據修復 三、預防措施 四、後記 五、下載

一、前言 SQLite性能好,對SQL支持全面,是久經考驗的輕量的關係型數據庫。 移動開發者對SQLite應該都不陌生了,只是不同的 APP 對數據庫的依賴程度不同(有的甚至不需要數據庫-_-)。 SQLite雖然是可靠性較高的數據庫,但是

原创 如何加密Long類型數值

一、前言 對於一些圖片,文章,或者用戶主頁等,需要構造URL提供給外部。 對外發布URL時,通常是 “域名/路徑/資源ID”, 其中,路徑是可選項,比如生成短鏈接時可能就是直接“域名/資源ID”。 舉例: 掘金的URL格式 : https:

原创 實用型ColorPicker的設計與實現

一、前言 ColorPicker,顏色選取器,簡稱拾色器。 說到拾色器,大家可能就會想到Photoshop, 使用得最多的應該是設計, 對於開發而言,平常要用到拾色器的機會不多。 如果有一天,項目中需要一個拾色器(多用於自定義顏色),該如何