加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • Part 01●??新特性??●
    • Part 02●??版本適配改善?●
    • Part 03●??總結(jié)?●
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

五分鐘技術(shù)趣談 | Android 14更新升級淺析

2023/09/18
4712
閱讀需 13 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

隨著Google I/O 2023發(fā)布的Android 14 beta2 ,預(yù)計Android 14將在2023年第三季度發(fā)布,目前看整體需要適配的內(nèi)容已經(jīng)趨向穩(wěn)定,那么Android 14增加了哪些新特性?又有哪些針對老版本的適配改善?下面我們一起來看看吧。

Part 01●??新特性??

1.1 語法性別

正如漢語中的第三人稱有他、她、它一樣,很多語言根據(jù)不同性別、對象會有名詞、動詞和介詞上的語法差異,而使用區(qū)分性別語言的人高達30億,因此APP不針對性別進行語法區(qū)分的話,可能會給用戶帶來糟糕的使用體驗。

因此Android14推出全新特性:語法性別Grammar Gender。開發(fā)者可以調(diào)用專用API:GrammaticalInflectionManager設(shè)置單個APP的性別偏好:

setRequestedApplicationGrammaticalGender(int) :設(shè)置性別偏好,參數(shù)為常量類型,具體類型如下:

GRAMMATICAL_GENDER_NOT_SPECIFIED,0:尚未指定性別偏好,將用默認的values資源;

GRAMMATICAL_GENDER_NEUTRAL,1:指定中性、客觀的資源文本,比如 values-fr資源;

GRAMMATICAL_GENDER_FEMININE,2:指定針對女性的資源文本,比如 values-fr-feminine資源;

GRAMMATICAL_GENDER_MASCULINE,3:指定針對男性的資源文本,比如 values-fr-masculine資源。

方法getApplicationGrammaticalGender()用于獲取語法性別偏好,返回上述四種int類型。

做完性別語法配置后,需要在APP的manifest文件中聲明配置更改:

<activity android:name=".TestActivity"

android:configChanges="grammaticalGender"

android:exported="true">

</activity>

1.2 屏幕截圖檢測

基于對隱私權(quán)限相關(guān)方面的考慮,APP需要對截屏操作進行監(jiān)聽和反饋,在以往的安卓版本,這些操作往往需要開發(fā)者監(jiān)聽存放截屏文件的目錄來實現(xiàn),稍不留神還會踩到“隱私紅線”。

為了創(chuàng)建更標(biāo)準(zhǔn)化的截圖檢測體驗,Android 14引入了一個保護隱私的截圖檢測API。這個API允許應(yīng)用程序以每個活動為基礎(chǔ)注冊回調(diào)。當(dāng)用戶在活動可見時截取屏幕截圖時,調(diào)用這些回調(diào)函數(shù),并通知用戶。

首先要聲明新的權(quán)限:

<uses-permission android:name="android.permission.DETECT_SCREEN_CAPTURE" />

然后,完成以下步驟,在你的應(yīng)用程序中的每個活動,用戶可能會捕獲屏幕截圖。

1.通過覆蓋onScreenCapture()函數(shù)實現(xiàn)回調(diào)。在這個回調(diào)中,你的應(yīng)用程序可以采取行動,比如警告另一個用戶有人截取了消息對話的截圖。

final Activity.ScreenCaptureCallback screenCaptureCallback =

new Activity.ScreenCaptureCallback() {

@Override

public void onScreenCaptured() {

// Add logic to take action in your app.

}

};

2.在活動的onStart()方法中,注冊截圖回調(diào):

@Override

protected void onStart() {

super.onStart();

registerScreenCaptureCallback(executor,

screenCaptureCallback);

}

3.最后在onStop()方法中,取消注冊屏幕回調(diào):

@Override

protected void onStop() {

super.onStop();

unregisterScreenCaptureCallback(screenCaptureCallback);

}

1.3 全新的系統(tǒng)返回設(shè)計

在Android13中,為了應(yīng)對多元的交互方式,谷歌就對返回事件進行了統(tǒng)一處理,在Android14對系統(tǒng)的返回效果進行了進一步的升級,一是為返回箭頭增加了邊框和背景,使其更加明顯;二是返回箭頭的顏色會隨著系統(tǒng)主題發(fā)生變化。

圖1 全新設(shè)計的“返回”箭頭

二是增加返回預(yù)覽,讓用戶可以提前查看目標(biāo)界面,決定取消或繼續(xù)返回操作。這塊功能還在完善,開發(fā)者需要手動開啟:開發(fā)者選項->預(yù)測性返回手勢動畫。

圖2 返回預(yù)覽示意圖

1.4 軟件包安裝改進

在Android14中,PackageInstaller 推出了新的方法requestUserPreapproval(),該方法可以讓App在下載之前,請求用戶批準(zhǔn)、獲取授權(quán),相比于之前版本要等到apk下載完成進行安裝時才進行授權(quán)申請,該方法能有效避免無效下載,節(jié)約流程時間。

以往由于安卓設(shè)備上可能安裝了多個應(yīng)用市場,當(dāng)使用不同的應(yīng)用市場對App進行更新操作后,可能會造成兼容性問題,因此在Android14中,新增了setRequestUpdateOwnership()方法,用于指定App后續(xù)更新的應(yīng)用商店App,需要申請權(quán)限:android.permission.ENFORCE_UPDATE_OWNERSHIP

此后,如果App要變更負責(zé)更新應(yīng)用商店,都需要獲取用戶的批準(zhǔn)。

不知道你遇到過這種情況嗎,你正在使用一款A(yù)pp,然而手機應(yīng)用商店觸發(fā)了自動更新條件,直接將該App的進程打斷,輕則讓你郁悶,重則會造成數(shù)據(jù)的丟失。為避免這種情況,Android14引入了新的安裝約束API:InstallConstraints,首先使用InstallConstraints.Builder構(gòu)建,設(shè)置更新條件,如要求App進程不在前臺setAppNotForegroundRequired()、要求設(shè)備不在通話狀態(tài)setNotInCallRequired()等。然后使用commitSessionAfterInstallConstraintsAreMet()傳入上述InstallConstraints配置實例即可。

Part 02●??版本適配改善?

2.1 默認拒絕設(shè)定精準(zhǔn)的鬧鐘

精確的鬧鐘適用于用戶指定的通知,或是在確切時間需要執(zhí)行的操作。從Android 14開始,系統(tǒng)不再向以Android 13及更高版本為目標(biāo)平臺的大多數(shù)新安裝應(yīng)用預(yù)先授予SCHEDULE_EXACT_ALARM權(quán)限,該權(quán)限默認處于拒絕狀態(tài)。

需要SCHEDULE_EXACT_ALARM權(quán)限才能通過以下API啟動精確鬧鐘,否則系統(tǒng)會拋出安全異常

setExact()

setExactAndAllowWhileIdle()

setAlarmClock()

日歷或鬧鐘應(yīng)用需要在應(yīng)用停止運行時發(fā)送日歷提醒、喚醒鬧鐘或提醒。這些應(yīng)用可以請求 USE_EXACT_ALARM 常規(guī)權(quán)限。系統(tǒng)將在安裝時授予 USE_EXACT_ALARM 權(quán)限,擁有此權(quán)限的應(yīng)用將能夠像具有 SCHEDULE_EXACT_ALARM 權(quán)限的應(yīng)用一樣安排精確鬧鐘。

2.2 應(yīng)用只能終止自己的后臺進程

Android14增加了對應(yīng)用調(diào)用方法killBackgroundProcesses()的限制,該方法用于終止API進程,只能終止本應(yīng)用的后臺進程,更新后,如果傳入其他應(yīng)用的包名,該方法不會對其他應(yīng)用產(chǎn)生任何影響。

2.3 最低可安裝的目標(biāo)API級別

從Android14開始,targetSdkVersion低于23的應(yīng)用將無法被安裝,此舉旨在提高用戶的安全性和隱私性,一些惡意軟件通常會入侵一些API級別較低的設(shè)備,從而繞過最新版Android系統(tǒng)對用戶的保護,當(dāng)嘗試在Android14設(shè)備上安裝低版本應(yīng)用時,會顯示安裝失敗并拋出日志:INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 23

2.4 授予對照片和視頻的部分訪問限制

在Android14上,當(dāng)應(yīng)用請求READ_MEDIA_IMAGES或READ_MEDIA_VIDEO媒體權(quán)限時,用戶可以授予應(yīng)用訪問部分照片和視頻的權(quán)限,新對話框顯示以下權(quán)限選項:

「選擇照片和視頻:」 Android 14 中的新功能,用戶選擇他們想要提供給應(yīng)用的特定照片和視頻。

「全部允許」:用戶授予對設(shè)備上所有照片和視頻的完整庫訪問權(quán)限。

「不允許」:用戶拒絕所有訪問。

Part 03●??總結(jié)?

Android14在近兩個月應(yīng)該會推出穩(wěn)定版,本期分享主要對Beta版系統(tǒng)新特性和版本適配進行了簡要分析,之后 API 應(yīng)該不會有大的變動。Android14針對UI交互和應(yīng)用權(quán)限方面做出進一步地優(yōu)化,給用戶帶來全新使用體驗的同時還兼顧了安全性和隱私性,不知道看完這篇分享的開發(fā)者和用戶小伙伴們對Android14有沒有更期待了呢,接下來讓我們一起靜待Android14穩(wěn)定版的發(fā)布吧~

參考文獻

[1] [2]??來源于谷歌官網(wǎng)(https://developer.android.google.cn/about/versions/14?hl=zh-cn).

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
KSZ8041TLI 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, PQFP48

ECAD模型

下載ECAD模型
$3.59 查看
AD9364BBCZREEL 1 Analog Devices Inc 1 x 1 RF Agile Transceiver
暫無數(shù)據(jù) 查看
KSZ8873MLLV 1 Microchip Technology Inc LAN Switching Circuit, PQFP64
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

移動Labs是中國移動的社交化新媒體平臺,是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進門戶。