當前位置:首頁 » 安卓系統 » 安卓暴露設置有什麼用

安卓暴露設置有什麼用

發布時間: 2022-12-07 01:20:41

1. Android Gson 使用詳解

Json 是一種文本形式的數據交換格式,比 xml 更為輕量。Json 的解析和生成的方式很多,在 Android 平台上最常用的類庫有 Gson 和 FastJson 兩種,這里要介紹的是 Gson

Gson 的 GitHub 主頁點擊這里: Gson

在進行序列化與反序列操作前,需要先實例化一個 com .google.gson.Gson 對象,獲取 Gson 對象的方法有兩種

利用 Gson 可以很方便地生成 Json 字元串,通過使用 addProperty 的四個重載方法

addProperty 方法底層調用的是 add(String property, JsonElement value) 方法,即將基本數據類型轉化為了 JsonElement 對象,JsonElement 是一個抽象類,而 JsonObject 繼承了 JsonElement ,因此我們可以通過 JsonObject 自己來構建一個 JsonElement

Json數組 與 字元串數組

Json數組 與 List

Gson 也提供了 toJson() 和 fromJson() 兩個方法用於轉化 Model 與 Json,前者實現了序列化,後者實現了反序列化
首先,聲明一個 User 類

序列化的方法很簡單,調用 gson 對象的 toJson 方法,傳入要序列化的對象

反序化的方式也類似

繼續使用上一節聲明的 User 類,根據 User 類聲明的各個屬性名,移動端的開發者希望介面返回的數據格式即是如下這樣的

如果沒有和伺服器端溝通好或者是 API 改版了,介面返回的數據格式可能是這樣的

如果繼續使用上一節介紹的方法,那無疑會解析出錯
例如

name 屬性值解析不到,所以為 null

此時為了兼顧多種格式的數據,就需要使用 SerializedName 註解
根據 SerializedName 的聲明來看,SerializedName 包含兩個屬性值,一個是字元串,一個是字元串數組,而字元串數組含有默認值

SerializedName 的作用是為了在序列化或反序列化時,指導 Gson 如果將原有的屬性名和其它特殊情況下的屬性名聯系起來

例如,修改 User 類,為 name 聲明 SerializedName 註解,註解值為 userName

在序列時,Json 格式就會相應改變

在反序列化時也一樣,能夠解析到正確的屬性值

還有個問題沒解決,為了應對多種屬性名不一致的情況,難道我們要聲明多個 User 類嗎?這顯然是不現實的,所以還需要為 User 類設置多個備選屬性名,這就需要用到 SerializedName 註解的另一個屬性值 alternate 了。

以下幾種情況都能夠被正確的反序列化

有時候並不是所有的欄位都需要進行系列化和反序列化,因此需要對某些欄位進行排除,有四種方法可以來實現這種需求。

Expose 註解包含兩個屬性值,且均聲明了默認值。Expose 的含義即為「暴露」,即用於對外暴露欄位,serialize 用於指定是否進行序列化,deserialize 用於指定是否進行反序列化。如果欄位不聲明 Expose 註解,則意味著不進行序列化和反序列化操作,相當於兩個屬性值均為 false 。此外,Expose 註解需要和 GsonBuilder 構建的 Gson 對象一起使用才能生效。

Expose 註解的註解值聲明情況有四種

現在來看個例子,修改 User 類

按照如上的註解值,只有聲明了 Expose 註解且 serialize 值為 true 的欄位才能被序列化,只有聲明了 Expose 註解且 deserialize 值為 true 的欄位才能被反序列化

Gson 提供了 @Since 和 @Until 兩個註解基於版本對欄位進行過濾,@Since 和 @Until 都包含一個 Double 屬性值,用於設置版本號。Since 的意思是「自……開始」,Until 的意思是「到……為止」,一樣要和 GsonBuilder 配合使用。

當版本( GsonBuilder 設置的版本) 大於或等於 Since 屬性值或小於 Until 屬性值時欄位會進行序列化和反序列化操作,而沒有聲明註解的欄位都會加入序列化和反序列操作

現在來看個例子,修改 User 類

訪問修飾符由 java.lang.reflect.Modifier 提供 int 類型的定義,而 GsonBuilder 對象的 excludeFieldsWithModifiers 方法接收一個 int 類型可變參數,指定不進行序列化和反序列化操作的訪問修飾符欄位
看個例子

GsonBuilder 類包含 setExclusionStrategies(ExclusionStrategy... strategies) 方法用於傳入不定長參數的策略方法,用於直接排除指定欄位名或者指定欄位類型
看個例子

欄位名為 "intField" 和欄位類型為 double 的欄位都會被排除掉

setExclusionStrategies 方法在序列化和反序列化時都會生效,如果只是想指定其中一種情況下的排除策略或分別指定排除策略,可以改為使用以下兩個方法

對於 Gson 而言,在序列化時如果某個屬性值為 null 的話,那麼在序列化時該欄位不會參與進來,如果想要顯示輸出該欄位的話,可以通過 GsonBuilder 進行配置

默認的序列化後的 Josn 字元串並不太直觀,可以選擇格式化輸出

Gson 也可以對時間值進行格式化

TypeAdapter 是一個泛型抽象類,用於接管某種類型的序列化和反序列化過程,包含兩個抽象方法,分別用於自定義序列化和反序列化過程

下面看個簡單的例子

定義 TypeAdapter 的子類 UserTypeAdapter 來接管 User 類的序列化和反序列化過程
這里設定當 User 類序列化時 Json 中的Key值都是大寫字母開頭,反序列化時支持「name」和「Name」兩種不同的 Json 風格

可以看到 User 類按照預定義的策略來完成序列化和反序列化了

TypeAdapter 將序列化和反序列操作都接管了過來,其實 Gson 還提供了只接管序列化過程的介面,即 JsonSerializer
看個例子

相對應的,JsonDeserializer 介面提供了反序列化的介面

這里有個比較麻煩的地方,那就是在使用 TypeAdapter 、JsonSerializer JsonDeserializer 時,總需要調用 registerTypeAdapter 方法進行注冊,那有沒有更簡單的注冊方法呢?
有的,Gosn 還提供了另一個註解 @JsonAdapter 用於進行簡單的聲明

類似於這樣,聲明了 User 類的序列化或反序列化操作由 UserTypeAdapter 完成,註解的優先順序高於 registerTypeAdapter 方法

TypeAdapterFactory 是用於創建 TypeAdapter 的工廠類,通過參數 TypeToken 來查找確定對應的 TypeAdapter,如果沒有就返回 null 並由 Gson 默認的處理方法來進行序列化和反序列化操作,否則就由用戶預定義的 TypeAdapter 來進行處理

這一篇文章好像寫得太長了一點?Gson 的知識點介紹到這里也差不多了,以後如果還發現新內容的話我會繼續補充,現在就先這樣啦

2. 安卓12加入隱私功能,網友:魅族一年前不都有了嗎

隱私安全是一個老生常談的話題,尤其是在這個高度數據化的互聯網時代,大部分信息我們都可以藉助手機或者電腦之類的上網終端進行交換獲取,在你獲取信息的過程中你的一些個人隱私信息也可能被暴露出去。這些隱私可能是電話號碼,身份信息乃至地理位置,個人的這些信息被泄露很有可能出現諸如詐騙,身份被冒用等等問題。很顯然這類問題的出現對我們個人用戶還是影響非常大的,隱私保護也應該得到更多的重視。

除了在日常生活中有可能無意間泄露隱私外,我們使用最頻繁的上網工具手機也是隱私泄露一大重災區,尤其是安卓系統手機上。好在今年2021 Google I/O大會上,谷歌提到了Android 12的更新適配,除了提升系統流暢還將推出大家期待已久的安全隱私功能,通過一系列的功能措施來提升安卓系統的隱私防護。這無疑是一個很不錯的變化,但是目前大部分機型也只是對Android 12進行嘗鮮更新,正式版全面上線估計還需要一些時間。

其實對於谷歌會在Android 12上加入隱私功能並不是太驚訝的事,因為市面上已經有隻適配Android 11乃至更低系統版本的機型通過手機廠商定製UI也能實現這種隱私功能,魅族Flyme9就是其中的佼佼者!

全新的Flyme9系統更加重視用戶個人隱私,著手推出4大安全隱私法寶,它們分別是:守護權杖、全視鷹眼、隱形妙靴以及私密斗篷。在應用許可權管理,應用行為記錄,以及地理位置獲取等方面進行了詳細功能設置,以保證用戶對自己的隱私信息不再被動,同時更加合理的規范應用的許可權獲取。

此外,Flyme9默認開啟「防止應用跟蹤」功能。該功能可以有效地防止「跟蹤式」的精準廣告定位投送,解決被應用廣告騷擾的煩惱。現在的魅族18系列機型正真做到拒絕偷拍,拒絕偷以及拒絕跟蹤,成為不泄露隱私的安全手機,用戶的個人隱私有了一個更強的保障!

可以這樣說,Android 12現在才更新的隱私安全固件,魅族定製UI系統Flyme已經適配領先有一整年時間。目前魅族18系列,17系列的手機用戶可以通過Flyme9系統更好的保護個人隱私,在接下Flyme9還將計劃適配更多老舊魅族機型,更多手機用戶能夠享受到新系統帶來的隱私安全保護!

3. 安卓手機中的私密模式有什麼用處

是給自己的秘密更深層的保護,即使別人知道自己的解鎖密碼,也不會解開隱私模式的密碼,因為這是單獨,獨立設置的一項保護,即便是丟了手機,別人撿到了,也不會輕易的查看你個人的隱私秘密。

4. 打開暴露通知會對手機怎麼樣有影響嗎!

打開暴露通知會對手機沒有影響。
暴露通知能夠在不侵犯隱私的前提下,使用輪替的隨機藍牙標志符來確定用戶是否可能曾暴露於聲明已感染 COVID-19 的患者。
暴露通知狀態就會顯示為已啟用,活躍地區為 CAICT,這樣就表示用戶可以正式使用該功能。如果通過系統直接設置無效,還可以通過通信行程卡 App 來設置實現。

熱點內容
矚目加密碼 發布:2023-01-31 11:53:09 瀏覽:848
怎麼降低資產配置 發布:2023-01-31 11:51:23 瀏覽:85
遺傳演算法慢 發布:2023-01-31 11:48:41 瀏覽:462
安卓手機為什麼下巴厚 發布:2023-01-31 11:43:52 瀏覽:841
timestrftimepython 發布:2023-01-31 11:43:51 瀏覽:36
魚吧淺談dnf產生的緩存垃圾 發布:2023-01-31 11:42:39 瀏覽:834
緩存劇集剪輯 發布:2023-01-31 11:34:52 瀏覽:631
ranger編譯器 發布:2023-01-31 11:32:35 瀏覽:570
網段訪問外網 發布:2023-01-31 11:31:42 瀏覽:730
jitandroid 發布:2023-01-31 11:31:32 瀏覽:979