國內大廠首次推出Android統一標準,真是威銳顧的

國內Android開發參差不齊,開發質量絕大多數都是不合格的產品,只爲了上線而開發,沒有任何的規範和約束。從安全和性能來講,絕大多數App在這方面都是考慮不完善的,安全風險高,性能差,99%的app都存在安全風險和漏洞。整體上給用戶的體驗就不好勁,老有人抱怨說Android多難用,太坑。其實一個是手機廠商定製化嚴重,更多的是App開發商不注重性能、安全、穩定性等質量上的把關。因此,以華爲打頭的國內幾個大廠開始聯合打造一個統一的質量標準,也就是「安卓綠色聯盟」。html

1、2018年移動應用測評相關報告

注:因爲報告上面的文字太多,不便於查閱,我就把它們所有作成了一個表格,方便查看。android

####(一)Testin雲測發佈2018年度移動應用安全報告算法

參考:2018年度移動應用安全報告後端

整體概況安全

分類概況服務器

####(二)愛加密全國移動APP安全性研究報告微信

參考:全國移動APP安全性研究報告網絡

移動應用安全平臺掃描了 270 多萬個 APP,其中,有漏洞的 APP 約 183 萬個,佔監測總數的 67.77%app

約 181 萬個 APP 存在高危漏洞,佔監測總數的 67.04%。運維

####(三)2018年Android應用安全白皮書

參考:2018年Android應用安全白皮書

選取了2018年下載量較高的1404個APP應用,進行漏洞掃描。

image.png

2、簡介

**安卓綠色聯盟是中國首個致力於提高安卓應用體驗的聯合組織。**安卓綠色聯盟是一個開放的非盈利性組織,歡迎更多的企業加入其中,旨在共同構建中國安卓綠色應用環境,打造安全,可靠,信賴,健康的應用生態,不斷給用戶帶來極致的應用體驗,聯盟成立後迅速吸引衆多企業加盟,隊伍在不斷壯大中。

安卓綠色聯盟2016年11月14日由華爲主導,聯合阿里巴巴、百度、騰訊、網易四家企業共同發起的。五家創始企業在電商、生活服務、搜索、社交應用、遊戲、大文娛以及終端設備層面都具備極高的主流表明性,涉及的應用多達 500多個,涵蓋了衆多主流移動應用,幾乎覆蓋全部國內終端用戶,集衆家之所長優化應用體驗,共同制定行業標準打造生態環境,爲全行業和廣大消費者服務。

安卓綠色聯盟官網:www.androidga.com/

3、五大致系

(1)兼容性標準
問題描述 斷定標準 合格用例
應用安裝 判斷應用在測試過程當中是否出現安裝不成功現象。 應用能成功安裝,或者應用在卸載以後,再次成功安裝。
啓動 判斷應用在啓動後在未作任何操做前應用是否出現如下狀況:如啓動閃退、啓動卡死、啓動後資源加載失敗等。 應用正常啓動成功
崩潰 判斷應用在運行過程當中,是否出現異常,彈出崩潰對話框,致使應用不可用、退出應用的狀況。 應用在運行過程當中無崩潰
無響應(ANR) 判斷在用戶正常操做的狀況下,應用是否在運行過程當中忽然會彈出對話框,出現"Application Not Responding"錯誤,提示用戶是否選擇關閉該程序或是繼續等待。 應用在運行過程當中不出現"Application Not Responding"錯誤
黑白邊 判斷應用的UI是否出現不適配屏幕,在屏幕的某一個側邊出現全黑屏或白屏的現象。 應用在啓動後,不出現黑邊或白邊的情形
系統特性支持 系統特性支持包含:應用可否正確調用相機拍照功能、調用選取圖片功能、調用定位功能、調用麥克風識別語音的功能、正確旋轉屏幕和應用指定兼容的目標系統版本是否經過。 調用相機拍照功能成功、調用選取圖片功能成功、調用定位功能成功、調用麥克風識別語音的功能成功、應用旋轉屏幕成功、TargetSdkVersion>=23時經過,不然失敗。
帳號異常 在使用正常的應用帳號在網絡正常的狀況下,是否沒法登錄該應用。 應用能正確完成內置帳號以及第三方帳號的登陸認證功能
UI適配 App運行測試過程當中是否出現的UI展現異常的狀況:如黑屏、花屏、白屏、文字異常、展現缺失等。 應用中的控件不發生變形、錯位、缺失或冗餘。
(2)穩定性標準

相關術語:

崩潰:在用戶正常操做的狀況下,應用忽然出現應用強行退出、無響應等徹底不可用的狀況。

2.1 崩潰率線上標準

問題描述 斷定標準 合格用例
1.啓動崩潰率 應用一天中出現的Crash總數在應用一天中總啓動次數中的比率。啓動崩潰率=(應用一天中出現的Crash總數/應用一天中整體的啓動次數)x100% 一天中啓動崩潰率 ≤ 0.2%(具體不一樣類型app能夠略有不一樣)
2.用戶或設備崩潰率 一天中出現Crash的用戶數(設備數)在總體活躍用戶數(活躍設備數)中的比率。用戶或設備崩潰率=(應用一天中發生的Crash的用戶數(去重)/應用一天中整體的活躍用戶數)x100% 一天中用戶或設備崩潰率 ≤ 0.2%(具體不一樣類型app能夠略有不一樣)

2.2 崩潰率線線下測試及處理標準

問題描述 斷定標準 合格用例
1.崩潰率線下測試 a. 穩定性測試要覆蓋80%用戶的主流機型
b. 安裝、啓動等場景必須覆蓋
c. Monkey確保覆蓋頁面>70%
d. 完成8小時Monkey不出現崩潰
覆蓋機型:至少覆蓋應用目標用戶機型分佈中top10,保證80%的機型被覆蓋到。
覆蓋場景:全新安裝、覆蓋安裝、冷啓動、熱啓動及8小時Monkey,Monkey過程要能覆蓋登陸與非登陸狀態,經過優化執行路徑、多機運行累加結果等方式,保證頁面覆蓋率>70%。
2.崩潰信息收集及處理標準 是否有完善的線上Crash上報及處理機制 獲取信息包括但不限定於:
a. 手機基礎信息,如品牌、機型、系統版本、地理位置、運營商、網絡類型、用戶名等
b. Crash堆棧信息
c. 日誌信息:用戶操做日誌、系統日誌等
d.聚合大量同類Crash後,給出此Crash發生的特徵數據,如機型分佈、應用版本分佈、地理分佈等信息,方便進行問題定位

2.3 不一樣類型應用崩潰率標準值(具體值還須要再肯定)

應用類型 參考啓動崩潰率 參考設備崩潰率
影音娛樂 0.15% 0.2%
社交通信 0.15% 0.2%
遊戲 0.15% 0.2%
購物 0.15% 0.2%
金融理財 0.15% 0.2%
實用工具 0.15% 0.2%
導航 0.15% 0.2%
新聞閱讀 0.2% 0.3%
教育 0.2% 0.3%
(3)安全標準

3.1 基礎安全標準

問題描述 合格用例 詳細說明
安裝,運行及卸載
- 1.應用在用戶未受權狀況下,不能進行程序下載、安裝、或升級操做;
- 2.應用在用戶未受權狀況下,不能執行自啓動操做;
- 3.應用在用戶強制關閉或退出後,不能繼續佔用系統資源;
功能使用
- 1.應用在用戶未受權狀況下,不能執行撥打電話、發送短信等操做;
- 2.應用在用戶未受權狀況下,不能執行攝像、錄音、截屏等操做;
- 3.應用在用戶未受權狀況下,不能打開或關閉如WiFi、藍牙、GPS等;
數據操做
- 1.應用在用戶未受權狀況下,不能讀寫用戶短信、聯繫人等隱私數據;
- 2.應用在用戶未受權狀況下,不能收集或上報用戶設備、系統及應用程序信息;
- 3.應用在用戶未受權狀況下,不能修改系統配置等資源文件;
- 4.應用在用戶未受權狀況下,不能修改其餘應用程序的權限、數據等;
行爲規範
- 1.應用在用戶未受權狀況下,不能進行消費操做;
- 2.應用不能包含故意破壞用戶使用體驗、阻礙用戶正常使用手機或應用的任何行爲;
- 3.應用中不能包含任何侵犯用戶知情權、選擇權的惡意行爲;
- 4.應用在用戶未受權狀況下,不能利用漏洞等方式獲取系統控制權限,進行非受權操做;
- 5.如無必要的使用場景,應用不能在桌面、鎖屏和其餘應用上,彈出懸浮窗、自定義後臺Toast、後臺彈出Activity等騷擾用戶的行爲; 1.應用鎖屏通知開關處於關閉狀態時,禁止在鎖屏彈出任何信息。
2.僅容許導航、音樂、運動健康類應用的主功能,在鎖屏上顯示全屏覆蓋界面;例如導航-路線導航、音樂-音樂播放、運動健康-記步軌跡。
3.在鎖屏或其餘應用界面上,僅容許聊天消息、短信息、鬧鐘等對推送有實時性要求的信息和彈出界面。
4.應用不能在未經用戶主動設置或者用戶主動發起時,彈出界面覆蓋到桌面或其餘應用之上。
- 6.如無必要的使用場景,應用不能發送沒法刪除的常駐通知; 僅容許音樂、下載,在離開應用界面後,不能在通知欄顯示常駐通知,致使用戶沒法清除。
- 7.應用不能彈出、顯示影響用戶體驗的廣告,如擡頭、強制插屏、側邊等; 1.禁止彈出任何廣告界面覆蓋在原有應用功能界面之上。
2.容許和原有界面功能平鋪在一個界面的非彈出式廣告(如微信朋友圈)。
- 8.應用不能引導用戶開啓開發者選項,禁止引導用戶開啓USB調試模式; 開發者選項和USB調試功能屬於開發者調試設備的選項,禁止應用引導用戶開啓。
其餘標準
- 1.應用不能包含病毒、木馬;
- 2.應用不能包含漏洞、後門;
- 3.應用不能包含國家法律禁止的內容,包括但不限於色情,賭博,或任何危害國家安全的信息;
- 4.應用不能包含其餘任何形式損害用戶利益及資產的行爲;
- 5.應用不能經過熱補丁,引入惡意行爲和不符合本標準的行爲;

3.2 開發安全標準

  • 3.2.1 Manifest和權限使用安全規範

注:權限的申請和使用應知足最小化原則。

問題描述 合格用例 詳細說明
1.權限管理
- 1)不申請不須要使用的權限,爲自定義權限設置合理的安全保護級別; 申請權限知足最小化原則,申請權限申請的權限所有爲應用功能所需,不申請多餘的權限;應用自定義權限,自行根據數據和行爲的安全敏感度,設置合理的安全保護級別。
- 2)應用申請的權限,都必須有明確、合理的功能和使用場景; 使用權限知足最小化原則,只有使用應用的某個功能,而對應到的某個權限爲該功能和合理要求時,才容許使用相應權限。好比某聊天軟件,必須在進行視頻聊天、拍照等功能須要的場景下,才容許使用攝像頭,而在其附屬的新聞瀏覽功能中,不容許使用攝像頭。
- 3)TargetSdkVersion>=23,必須適配Android M及之後版本的動態權限機制。 必須適配Android M及之後版本的動態權限機制,而且強烈建議適配到Android O(TargetSdkVersion>=26)。
- 4)對於非核心權限,應用不能在權限動態彈框受權提示被用戶拒絕後,強制要求用戶開啓,包括但不限於:a.應用退出;b.彈框提醒用戶打開>=2次;
2.功能項管理 關閉不須要及有風險的功能選項,如數據備份功能、調試功能;
3.組件管理 組件聲明的合理性,避免導出不須要外部調用的組件,如需導出應設置合理的權限保護;
  • 3.2.2 應用編碼安全規範
問題描述 合格用例
1.基礎編碼安全規範 1) 保證開發環境的安全性,如使用官方渠道下載的開發工具;
2) 避免硬編碼關鍵數據,如加密密鑰、後端服務器敏感信息等;
3) 應用代碼淨化,代碼邏輯優化、剔除應用中的死代碼塊;
4) 統一的日誌管理接口,避免在日誌中記錄敏感信息;
5) 應用發佈以前,關閉調試接口和調試日誌。
2.系統API使用安全規範 1) 使用官方推薦版本的API接口,不使用系統廢棄的API
2) 熟悉並聽從安全規範,避免遺漏安全限制操做,引入安全風險;
3) 對關鍵操做身份校驗和權限檢查;
3.第三方代碼使用安全規範 1) 代碼評估。來源可靠性評估、代碼質量評估、潛在安全風險評估;
2) 權限控制。確認引入代碼所需使用的權限最小化;
3) 更新維護。關注代碼的安全動態和版本更新狀況,及時修復安全問題,更新代碼;
4) 安全保護。對引入的代碼進行混淆,防止攻擊者針對性的攻擊;
4.代碼保護安全規範 1) 代碼混淆。提升攻擊者代碼分析難度;
2) 加固保護。使用自研或者第三方加固系統進行應用加固,進行代碼隱藏和加密保護;
  • 3.2.3 數據安全規範
問題描述 合格用例
1.數據加密安全規範 1) 數據密文和加密密鑰應存放在不一樣的位置;
2) 密鑰存儲模塊應具有防調試及反編譯的能力;
3) 密鑰數據應分散存儲,爲獲取密鑰密文增大難度
2.數據存儲安全規範 1) 應用程序關鍵數據應該存放在私有目錄下,並設置合理的訪問權限;
2) 應用程序中的隱私數據應加密存儲。用於加密的密鑰應妥善保存;
3) 禁止程序運行日誌中包含有用戶敏感數據、程序調試數據等;
3.數據使用安全規範 1) 數據合法性保護。控制用戶輸入數據的類型、長度,進行惡意代碼過濾等;
2) 數據完整和有效性保護。對於接收到的外部數據、加載的外部文件,進行完整、有效性性檢查;
  • 3.2.4 通訊安全
問題描述 合格用例
1.本地通訊安全 1) intent數據安全。避免在intent包含用戶敏感數據,從intent中獲取數據時加入必要的異常處理;
2) intent scheme url 協議安全。使用過程當中加入安全限制,防止UXSS等安全問題;
3) 組件調用方式安全。避免經過隱式方式進行調用組件,防止組件劫持;
4) 本地socket通訊安全。避免是使用socket方式進行本地通訊,如需使用,localhost端口號隨機生成,並對端口鏈接對象進行身份認證和鑑權;
2.遠程通訊安全 1) 使用https代替http進行通訊,並對https證書進行嚴格校驗;
2) 避免進行遠程端口開發通訊,如需使用,須要對端口鏈接對象進行身份認證和鑑權;
  • 3.2.5 業務安全
問題描述 合格用例
1.認證和受權 1) 認證和受權過程應在服務器端完成,避免客戶端繞過問題;
2) 對於涉及敏感信息的服務,每次使用前需進行身份認證;
3) 控制登陸憑證token有效期,通訊過程當中進行token鑑權;
4) 避免在終端設備上使用不安全的方法來存儲用戶名、口令及其它登陸憑證;
5) 用戶密碼須要使用強不可逆的加密算法加密後傳輸,並引入salt,提升破解難度;
6) 帳戶號和終端設備信息進行綁定,防止終端模擬攻擊;
2.業務邏輯及數據安全 1) 條件判斷。確保邏輯過程當中前置判斷條件的有效性、不可繞 過性,防止攻擊者進行數據修改繞過安全限制;
2) 邏輯設計。確保業務邏輯設計、分支條件及邊界條件處理的正確性和完備性,防止不可控執行流程;
3) 工做分配。確保服務端和客戶端分工正確,防止一些應該放在服務端的校驗工做設置在了客戶端,形成權限校驗繞過;
4) 業務數據。關鍵業務數據防篡改、防僞造、防重放;
5) 短信驗證碼安全。禁止驗證碼回傳行爲,驗證碼至少6位,同時嚴格限定驗證碼時效;
3.業務運維安全 1) 業務風險監控、預警、異常處理預案;
2) 安全動態跟蹤及預警、安全事件排查、漏洞修復;
  • 3.2.6 運行環境安全
問題描述 合格用例
運行環境安全 1) 運行期重打包檢測;
2) 模擬器運行環境檢測;
3) 調試、注入操做監控;
4) root環境運行檢測;
  • 3.2.7 隱私安全
問題描述 合格用例
隱私安全 1) 涉及到應用下載軟件、對用戶系統或軟件升級等修改用戶我的空間的行爲,須獲得用戶的贊成
2) 收集或使用我的數據前,須明確提示用戶,並得到用戶的明示贊成,而且容許用戶隨時關閉對我的數據的收集和使用
3) 默認禁止收集數據主體的敏感我的數據,除非業務必需(如:運動健康類業務)或爲了知足法律與監管機構要求可收集和處理(含profiling),而且贊成應該單獨收集
4) 應提供對用戶的贊成和撤銷贊成行爲進行記錄的機制
5) 隱私聲明內容發生變化時,須告知用戶查看並得到用戶贊成
6) 我的數據收集範圍、使用目的不得超出隱私聲明,且遵循最小化原則,當我的數據的採集範圍、使用目的發生變動時,應及時更新隱私聲明
7) 於存儲我的數據的系統,需對存儲的我的數據定義存留期
8) 數據主體撤銷贊成以後,產品必須禁止繼續收集和處理其相應我的數據
9) 將數據主體我的數據提供給第三方前,必須得到數據主體的贊成
10) 推送的內容(含廣告)必須是符合政治、法律和宗教要求,而且推送頻度不能干擾用戶正常使用
11) 第三方應用軟件調用移動智能終端敏感功能時,應先得到用戶明確贊成
12) 第三方應用軟件對用戶數據操做時,應先得到用戶明確贊成
13) 應用軟件不得申請和調用與提供服務無關的終端功能
(4)功耗標準
問題描述 斷定標準 合格用例 特殊考慮事項
後臺處理器佔用 測量應用在後臺時對處理器的佔用及Wake Lock設置狀況 1. 平均每小時佔用處理器累計時間不超過90秒,即處理器平均佔用率不超過2.5%
2. 禁止應用設置WakeLock
如下場景除外:
1. 後臺播放視頻、音樂或觀看直播時
2. 後臺導航時
3. 後臺下載視頻、音樂或離線地圖時
4. 後臺進行收發消息、遊戲掛機時
5. 後臺欺詐攔截、網絡安全掃描、流量監控、定時提醒時
後臺屏幕佔用 測量應用在後臺時對屏幕的佔用 1. 不容許一切後臺應用阻止屏幕自動變暗或關閉
2. 不容許應用在屏幕變暗或關閉時點亮屏幕
如下場景除外:後臺收發消息、定時提醒時
後臺無線網絡佔用 測量應用在後臺時對無線網絡的佔用
(無線網絡包括:Wi-Fi、數據鏈接、藍牙及紅外等無線信號網絡。)
1. 平均每小時使用無線網絡傳輸數據時間不超過5分鐘
2. 平均每小時對無線網絡的掃描不超過60次
如下場景除外:
1. 後臺播放在線視頻、音樂或觀看直播時
2. 後臺導航時
3. 後臺下載視頻、音樂或離線地圖時
4. 後臺進行收發消息時
5. 後臺欺詐攔截、網絡安全掃描或流量監控時
後臺音頻設備佔用 測量應用在後臺時對音頻設備的佔用 禁止此狀況下應用使用麥克風或揚聲器 如下場景除外:
1. 後臺播放在線視頻、音樂或觀看直播時
2. 後臺導航時
3. 後臺定時提醒時
後臺攝像頭佔用 測量應用在後臺時對攝像頭的佔用
(攝像頭包含:前置攝像頭、後置攝像頭、紅外攝像頭及閃光燈)
禁止此狀況下應用使用攝像頭或閃光燈
後臺定位傳感器佔用 測量應用在後臺時對定位傳感器的佔用 禁止此狀況下應用使用定位傳感器 如下場景除外:
1. 後臺導航時2. 後臺軌跡追蹤時
3. 後臺下載離線地圖時
後臺動做傳感器佔用 測量應用在後臺時對動做傳感器的佔用 禁止此狀況下應用使用動做傳感器 如下場景除外:
1. 後臺導航時
2. 後臺記步時
後臺Alarm佔用 測量應用在後臺時對Alarm的佔用 平均每小時經過Alarm調起的次數不超過20次 如下場景除外:
1. 後臺播放視頻時
2. 後臺收發消息時
(5)性能標準

5.1 適用範圍

應用類型 核心場景
便捷生活類 進入應用主功能界面
出行導航類 進入位置搜索頁面
購物比價類 進入購物首頁,頁面含商品列表、搜索欄等。
拍攝美化 進入應用主功能界面
社交通信類 登錄後進入主界面收/發消息 或:登錄後進入主界面
實用工具 郵箱類:啓動應用 - 登錄郵箱 - 收取郵件(郵箱內已有郵件列表超過10封)
新聞閱讀類 啓動應用 - 進入首頁 - 刷新新聞列表 -滑動新聞列表
學習辦公 進入應用主功能界面
影音娛樂 進入應用主功能界面
遊戲 進入應用主功能界面

5.2 性能測試標準

問題描述 斷定標準 合格用例
冷啓動時間 點擊圖標到應用徹底啓動的時間。 冷啓動時間應 ≤ 1000毫秒
熱啓動時間 應用以前被打開過,無關閉應用行爲,從後臺從新切換到前臺的時間。 熱啓動時間應 ≤ 500毫秒
界面幀率 應用界面滑動時的幀率。 1.普通應用的幀率應 ≥ 55fps
2. 遊戲類、地圖類和視頻類的幀率應 ≥ 25fps
過分繪製 應用界面的繪製狀況,不容許存在4x過分繪製及超過屏幕1/3區域的3x過分繪製。 1.不容許存在4x過分繪製(紅色區域);
2.不容許存在面積超過屏幕1/3區域的3x過分繪製(淡紅色區域)
Stricmode 經過開發者選項「strict mode」設置,檢查全部界面操做 各種應用的全部界面操做不容許有紅框閃爍
內存泄露 應用的內存泄漏。 應用禁止存在Activity級別的內存泄露。
前臺內存佔用 應用在前臺使用過程當中的內存佔用狀況。(被測應用徹底啓動30秒後,開始測量內存消耗) 各種應用在前臺的內存佔用應 ≤ 500MB
後臺亮屏內存佔用 測量應用在後臺且亮屏一段時間時的內存佔用。(被測應用切換到後臺5分鐘後亮屏狀態下測量內存消耗) 各種應用在後臺且亮屏5分鐘的內存佔用應 ≤ 400MB
後臺滅屏內存佔用 測量應用在後臺且滅屏一段時間時的內存佔用。(被測應用切換到後臺,滅屏1分鐘後測量內存消耗) 各種應用在後臺且滅屏1分鐘的內存佔用應 ≤ 400MB
後臺亮屏CPU佔用 應用在後臺且亮屏一段時間時的CPU佔用。(被測應用切換到後臺,等待5分鐘穩定後,檢測被測應用5分鐘內CPU usertime+systemTime) 各種應用在後臺且亮屏5分鐘的CPU佔用應 ≤ 2%
後臺滅屏CPU佔用 測量應用在後臺且滅屏一段時間時的CPU佔用。(被測應用切換到後臺,滅屏後等待5分鐘穩定,檢測被測應用5分鐘內cpu usertime+systemTime) 各種應用在後臺且滅屏5分鐘的CPU佔用應 ≤ 2%

本文參考資料:

安卓綠色聯盟官網

《安卓綠色聯盟應用體驗標準2.0》關鍵信息和華爲解讀

相關文章
相關標籤/搜索