當前位置:首頁 » 安卓系統 » android數據封裝

android數據封裝

發布時間: 2023-06-15 12:22:15

① Android 關於 OkHttp 請求對參數進行加解密的封裝

加密的情況下,數據一般是這樣的(當然,data 也可能是一個列表):

加密的情況下:

這里不強制要求返回類型是 Result,只需要服務端返回的 json 數據的第一層級中有 "data" 欄位即可,取出該欄位進行解密,並重新賦值該欄位,然後再進行解析

interceptor 的方式效率要高點,但是 converter 的枯橡方式要更加靈活點。

這里採用了把 encryptKey 也放在 body 里一起傳輸的方案,所以實現起來有點麻煩;其實也可以選擇把 encryptKey 放沒虧旁在 header 里,然後對 body 整體加解密的方案,這樣實現起來就會空世簡單一些

② Android里的封裝,繼承,多態,都是表現在哪裡,都是有什麼方法,有什麼

封裝,例如android中一個View就是封裝了一系列的方法,這些方法系統已經給你封裝好了,你只需要去調用即可。
繼承,例如一個Activity(界面),創建一個界面就需要去繼承它,因為android中每個界面都是一個activity組成的(Fragment也是運行在activity中的)。
多態,這個比較抽象也比較難解釋,就像一個View,給它注冊一個點擊事件來說吧,系統用的只是一個介面,但是用戶可以用一個實現介面的類來處理這個點擊事件,這就是多態性,因為對於android來講,它根本不知道用戶會起個什麼名實的類,它只要你實現它的介面即可。

③ Android 基類BaseActivity的封裝

摘要
本篇總結了前人寫的BaseActivity,自己在開發過程中也添添補補,刪刪改改,現在總結下。

本篇很多知識借鑒和學習了知乎上iYng大大的回答,先感謝一波。順便上原文鏈接:
https://www.hu.com/question/47045239/answer/105086885

正文
一般來說,不同的項目的BaseActivity不盡相同,根據不同的業務邏輯和功能需求,會有很多區別。這里總結了一些,如下:

視圖相關
一般的Activity里都會用到很多的findViewById這個方法,而且每次都要強制類型轉換,這樣會顯得很繁瑣,如果在BaseActivity里封裝好,就能省事:

這樣只要是繼承了BaseActivity就能輕松使用LinearLayout llContent = findView(R.id.ll_content);,免去了諸多類型轉換的麻煩。

然後說起視圖,一般的Activity里都會需要初始化視圖和數據,所以可以暴露兩個方法initView()和initData():

然後在setContentView里去調用,一般都是先initView,然後再initData:

這樣子類里都必須重寫initView()和initData()了,邏輯也能清晰點,不然什麼東西都放在onCreate里,就很亂了;

用戶模塊(業務相關【可選】)
不過一般的app,只要是有登錄的,就會有用戶模塊,也會根據用戶標識id去進行一些網路操作,所以用戶模塊可以在BaseActivity中暴露一些方法,比如用戶id的獲取:

這里就是返回了SharedPreference里存儲的用戶id,在用戶id大量被使用的場景下,這樣的封裝還是很有必要的,使用起來也更便捷。當然如果只是純展示的app就不一定需要了,或許顯得多餘。

界面間跳轉傳參
很多時候,Activity之間都會傳參,所以可以封裝一個參數處理的函數initParam(),在BaseActivity的onCreate里去判斷是否有參數傳過來;

然後把initParam()方法暴露給子類:

這個方法並不是必須重寫的,因為傳參也沒有想像中那麼多,並不需要強制重寫這個方法。

一般會在Application類里去定義一個isDebug來判斷是否開啟調試(開發者模式):

在BaseActivity里,我們可以把isDebug作為總開關,然後控制是否顯示調試信息:

這樣一鍵關閉調試,不用去一個個刪項目里的Log信息,是不是很贊?

每次Toast,都用Toast.makeText(...).show();是不是很煩?那麼可以在BaseActivity里封裝下,比如:

這里ToastUtils就是一個Toast封裝類,裡面的內容估計大家都懂。然後這樣一來,所有子類在使用時,只需要瀟灑寫一句toast("xxxx")就行了,當然也可以一並封裝Toast.LENGTH_LONG和Toast.LENGTH_SHORT,按需封裝吧。

其他
軟鍵盤
有的app里,用戶輸入的情景會比較多,這個時候,軟鍵盤的隱藏就用的多了,用戶輸入完之後,或者用戶點擊屏幕空白處,都應該去隱藏軟鍵盤,這樣的話,可以考慮在BaseActivity里寫隱藏的方法:

上面3個方法也是很實用的。dispatchTouchEvent方法不需要手動調用,只要是有點擊事件,並且點擊在軟鍵盤和EditText區域外,就會隱藏軟鍵盤。

防止快速點擊
有時候,用戶(特別是測試猿)會瘋狂的點擊app,這一舉動的原因和意義不明,但是我們可以設置防止快速點擊給app造成的傷害和負擔:

這樣在1秒之內只會響應一次,麻麻再也不用擔心我手抽筋亂點了。
那麼怎麼用呢?舉個栗子,可以在onClick介面里去判斷下嘛:

頁面跳轉:startActivity、startActivityForResult
這個也是可選的,可以封裝下,達到每次跳轉不需要傳this或者XXXXX.this這種參數:

這些方法還是很便捷的,使用時可以簡單的使用startActivity(MainActivity.class);,也可以傳Bundle參數。

是否允許全屏
設置一個成員變數mAllowFullScreen

通過在BaseActivity的onCreate方法里判斷mAllowFullScreen來設置是否允許全屏:

然後給子類暴露一個方法來設置mAllowFullScreen:

設置沉浸式狀態欄
跟設置全屏一樣一樣的:

然後BaseActivity的onCreate里:

然後定義steepStatusBar()方法,用來設置沉浸式狀態欄:

這里就要判斷系統版本了。只有在KITKAT以上才有作用。
最後給子類暴露方法,設置 isSetStatusBar的值:

設置是否允許屏幕旋轉
跟前面兩種思路一樣,通過判斷變數,在onCreate里設置咯:

BaseActivity里的onCreate方法:

最後暴露方法設置isAllowScreenRoate的值:

總結
上面的這些方法大都是比較常用的,有些雖然不是很常用,但是寫了也會方便一點,把這篇文章當做一個匯總,然後按需使用唄。

④ android 資料庫表查詢出來的多條記錄返回客戶端怎麼封裝成json string

sqlite中每一行看成一個JSONObject,結果集看成jsonarray。

⑤ android studio pickerview 數據怎麼封裝

封裝就是數據打包,拆包就是解包。1般發送方把需要發送的數據打包發出去後,接收方收到包後解包解出數據。

熱點內容
什麼漫畫軟體可以緩存 發布:2025-02-07 17:56:21 瀏覽:267
安卓如何取消手機搜索 發布:2025-02-07 17:46:04 瀏覽:217
ontoucheventandroid 發布:2025-02-07 17:45:50 瀏覽:869
愛思助手如何看配置 發布:2025-02-07 17:32:27 瀏覽:175
自己的電腦怎麼搭建手游伺服器端 發布:2025-02-07 17:21:44 瀏覽:47
怎樣修改蘋果密碼怎麼辦 發布:2025-02-07 17:15:44 瀏覽:716
電腦一般怎麼連接伺服器 發布:2025-02-07 17:12:55 瀏覽:491
ftp用ie打開文件 發布:2025-02-07 17:07:42 瀏覽:271
android列表顯示 發布:2025-02-07 17:01:19 瀏覽:66
芒果tv緩存的視頻在哪個文件里 發布:2025-02-07 16:45:05 瀏覽:817