真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android復(fù)習(xí)(四)權(quán)限—>定義自定義應(yīng)用權(quán)限-創(chuàng)新互聯(lián)

定義自定義應(yīng)用權(quán)限

本文檔介紹了應(yīng)用開發(fā)者如何使用 Android 提供的安全功能來定義自己的權(quán)限。通過定義自定義權(quán)限,應(yīng)用可以與其他應(yīng)用共享其資源和功能。如需詳細(xì)了解權(quán)限,請參閱權(quán)限概覽。Android復(fù)習(xí)(四)權(quán)限—&
gt;定義自定義應(yīng)用權(quán)限

背景

Android 是一種權(quán)限分離的操作系統(tǒng),其中每個(gè)應(yīng)用都以不同的系統(tǒng)身份(Linux 用戶 ID 和組 ID)運(yùn)行。系統(tǒng)的各個(gè)部分也會被分隔為不同的身份。因此,Linux 可以將應(yīng)用同其他應(yīng)用和系統(tǒng)隔離開來。

站在用戶的角度思考問題,與客戶深入溝通,找到乳山網(wǎng)站設(shè)計(jì)與乳山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋乳山地區(qū)。

應(yīng)用可以定義其他應(yīng)用可以請求的權(quán)限,從而將自己的功能提供給后者。它們還可以定義能夠自動提供給已使用同一證書進(jìn)行簽名的任何其他應(yīng)用的權(quán)限。

應(yīng)用簽名

所有 APK 都必須使用私鑰由其開發(fā)者持有的證書進(jìn)行簽名。此證書可標(biāo)識應(yīng)用創(chuàng)作者。證書無需由證書授權(quán)機(jī)構(gòu)進(jìn)行簽名;Android 應(yīng)用完全可以使用自簽名證書,這種做法也十分普遍。Android 中的證書旨在區(qū)分應(yīng)用創(chuàng)作者。這樣,系統(tǒng)可以授予或拒絕應(yīng)用對簽名級權(quán)限的訪問權(quán)限,以及授予或拒絕應(yīng)用獲取與另一應(yīng)用相同的 Linux 身份的請求。

用戶 ID 和文件訪問權(quán)限

安裝時(shí),Android 會為每個(gè)軟件包提供不同的 Linux 用戶 ID。該身份在相應(yīng)軟件包在該設(shè)備上存續(xù)期間將保持不變。同一軟件包在其他設(shè)備上可能具有不同的 UID;重要的是每個(gè)軟件包在指定設(shè)備上的 UID 都不同。

由于系統(tǒng)會在進(jìn)程級別強(qiáng)制執(zhí)行安全措施,因此任何兩個(gè)軟件包的代碼通常都無法在同一進(jìn)程中運(yùn)行,因?yàn)樗鼈冃枰圆煌?Linux 用戶身份運(yùn)行。您可以在每個(gè)軟件包的 AndroidManifest.xml 的 清單標(biāo)記中使用 sharedUserId 屬性,以便為它們分配相同的用戶 ID。這樣做以后,出于安全考慮,系統(tǒng)隨后會將這兩個(gè)軟件包視為具有相同用戶 ID 和文件權(quán)限的同一應(yīng)用。請注意,為了確保安全性,只有具有相同簽名(以及請求了相同 sharedUserId)的兩個(gè)應(yīng)用才能夠獲得相同的用戶 ID。

系統(tǒng)會為應(yīng)用存儲的所有數(shù)據(jù)分配該應(yīng)用的用戶 ID,而其他軟件包通常無法訪問這些數(shù)據(jù)。

如需詳細(xì)了解 Android 的安全模型,請參閱 Android 安全性概覽。

定義并強(qiáng)制執(zhí)行權(quán)限

要強(qiáng)制執(zhí)行自己的權(quán)限,您首先必須使用一個(gè)或多個(gè)  元素在您的 AndroidManifest.xml 中聲明它們。

例如,某個(gè)應(yīng)用若要控制誰可以啟動它的 Activity,則可以針對此操作聲明一個(gè)權(quán)限,如下所示:

...
 

注意:系統(tǒng)不允許多個(gè)軟件包聲明同名權(quán)限,除非所有軟件包均使用同一證書進(jìn)行簽名。如果軟件包聲明了某個(gè)權(quán)限,則系統(tǒng)不會允許用戶安裝其他具有相同權(quán)限名稱的軟件包,除非這些軟件包使用與第一個(gè)軟件包相同的證書進(jìn)行簽名。在為自定義權(quán)限命名時(shí),為了避免命名沖突,我們建議采用反向域名方式,例如 com.example.myapp.ENGAGE_HYPERSPACE。

protectionLevel 屬性為必需項(xiàng),用于告知系統(tǒng)如何讓用戶知道哪些應(yīng)用正在請求權(quán)限或者哪些應(yīng)用可以獲得該權(quán)限,如鏈接的文檔中所述。

android:permissionGroup 屬性為可選項(xiàng),僅用于幫助系統(tǒng)向用戶顯示權(quán)限。在大多數(shù)情況下,盡管您可以自行定義組,但您應(yīng)將其設(shè)置為標(biāo)準(zhǔn)系統(tǒng)組(在 android.Manifest.permission_group 中列出)。最好使用現(xiàn)有的組,因?yàn)檫@可以簡化用戶看到的權(quán)限界面。

您需要為權(quán)限提供標(biāo)簽和說明。這些是用戶在查看權(quán)限列表 (android:label) 或有關(guān)單個(gè)權(quán)限的詳細(xì)信息 (android:description) 時(shí)能夠看到的字符串資源。標(biāo)簽應(yīng)當(dāng)簡短,用簡短的文字描述該權(quán)限所保護(hù)的關(guān)鍵功能。該說明應(yīng)該由一些句子組成,用于描述此權(quán)限允許權(quán)限獲得者執(zhí)行哪些操作。我們通常會使用包含兩個(gè)句子的說明:第一句描述該權(quán)限;第二句提醒用戶在向某個(gè)應(yīng)用授予該權(quán)限后可能會出現(xiàn)哪類錯(cuò)誤。

以下示例展示了 CALL_PHONE 權(quán)限的標(biāo)簽和說明:

directly call phone numbers Allows the app to call phone numbers without your intervention. Malicious apps may cause unexpected calls on your phone bill. Note that this does not allow the app to call emergency numbers.
 

創(chuàng)建權(quán)限組

如上一部分中所示,您可以使用 android:permissionGroup 屬性幫助系統(tǒng)向用戶描述權(quán)限。在大多數(shù)情況下,不妨將此屬性設(shè)置為標(biāo)準(zhǔn)系統(tǒng)組(在 android.Manifest.permission_group 中列出),但您也可以使用  定義自己的組。

 元素為一組權(quán)限(包括使用  元素在清單中聲明的權(quán)限和在其他位置聲明的權(quán)限)定義了一個(gè)標(biāo)簽。這只會影響這些權(quán)限在向用戶顯示時(shí)的分組方式。 元素不會指定屬于該組的權(quán)限,但它會為該組提供一個(gè)名稱。

將組名稱分配給  元素的 permissionGroup 屬性可在該組中放置權(quán)限。

 元素為代碼中定義的一組權(quán)限聲明了命名空間。

自定義權(quán)限建議

應(yīng)用可以定義自己的自定義權(quán)限,還可以通過定義  元素從其他應(yīng)用請求自定義權(quán)限。不過,您應(yīng)該仔細(xì)評估應(yīng)用是否有必要這樣做。

  • 如果您正在設(shè)計(jì)一系列能夠互相公開功能的應(yīng)用,請嘗試將這些應(yīng)用設(shè)計(jì)為每個(gè)權(quán)限僅定義一次。如果這些應(yīng)用并非全都使用同一證書進(jìn)行簽名,則您必須執(zhí)行該操作。即使應(yīng)用均使用同一證書進(jìn)行簽名,每個(gè)權(quán)限僅定義一次也是最佳做法。
  • 如果該功能僅適用于與提供該功能的應(yīng)用具有相同簽名的應(yīng)用,則您可以使用簽名檢查功能,以避免定義自定義權(quán)限。如果您的某個(gè)應(yīng)用向您的另一個(gè)應(yīng)用發(fā)出請求,后者會先驗(yàn)證兩者是否使用相同的證書進(jìn)行簽名,只有證書相同時(shí)才會遵照該請求行事。

當(dāng)前文章:Android復(fù)習(xí)(四)權(quán)限—>定義自定義應(yīng)用權(quán)限-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/gpish.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部