鎺㈢储Android(安卓)9.0 Pie鏂扮壒鎬у彉鏇?/h1>
鍖椾含鏃堕棿 8 鏈?7 鏃ヤ笂鍗堬紝Google 姝e紡鍙戝竷 Android 9.0 姝e紡鐗堢郴缁燂紝骞跺甯冪郴缁熺増鏈?Android P 琚寮忓懡鍚嶄负浠e彿銆孭ie銆嶃€?/p>
鐩墠锛孏oogle 宸插悜鍏ㄧ悆 Pixel 璁惧鎺ㄩ€佷簡 Android 9.0 姝e紡鐗堢殑鏇存柊銆?/p>
浣滀负蹇犲疄Android鐢ㄦ埛锛屼篃鍚屾牱浣滀负涓€鍚岮ndroid寮€鍙戜汉鍛橈紝姣忎竴涓増鏈殑鍙戝竷閮芥槸涓氬唴澶т簨锛屽綋澶╃殑鍏虫敞蹇呬笉鍙皯锛屼絾涔熷緢鎯劎鏃堕殧灏嗚繎涓€涓湀鎵嶆潵鎬荤粨锛屾帴涓嬫潵锛屾垜灏嗘妸鎴戠湅鍒扮殑涓滆タ鎱㈡參鍒嗕韩銆?/p>
杩欎釜鎵嬫崸鐫€绾㈣眴娲剧殑灏忓彲鐖憋紝涓绘墦鍏ㄦ柊鐨勪汉宸ユ櫤鑳界郴缁燂紝鍙风О璁╂墜鏈哄彉寰楁洿鏅鸿兘銆佹洿蹇紝鑰屼笖鈥滆秺鐢ㄨ秺鎳備綘鈥濓紝鍏舵牳蹇冮棯鍏夌偣涔熷氨鏄鏃朵笅鏈€娴佽鐨勭缁忕綉缁滄満鍣ㄥ涔犵畻娉曠殑铻嶅悎锛屽皢绯荤粺鎵撻€犳垚涓轰竴娆捐兘閫氳繃澶ч噺棰戠箒鐨勪娇鐢ㄦ潵棰勬祴鍜岃绠楃敤鎴疯涓轰範鎯紝骞朵负涔嬪仛鍑烘渶鑸掗€傝皟鏁存柟妗堢殑绯荤粺銆?/p>
閭d箞Android 9.0(API绾у埆28)鍒板簳閮芥彁渚涗簡鍝簺鍔熻兘鍛紵(鎺ヤ笅鏉ユ槸涓€娈靛畼鏂规憳褰?
鍒╃敤 Wi-Fi RTT 杩涜瀹ゅ唴瀹氫綅
Android 9 娣诲姞浜嗗 IEEE 802.11mc Wi-Fi 鍗忚锛堜篃绉颁负 Wi-Fi Round-Trip-Time (RTT)锛夌殑骞冲彴鏀寔锛屼粠鑰岃鎮ㄧ殑搴旂敤鍙互鍒╃敤瀹ゅ唴瀹氫綅鍔熻兘銆?/p>
鍦ㄨ繍琛?Android 9 涓斿叿鏈夌‖浠舵敮鎸佺殑璁惧涓婏紝搴旂敤鍙互浣跨敤 RTT API 鏉ユ祴閲忎笌闄勮繎鏀寔 RTT 鐨?Wi-Fi 鎺ュ叆鐐?/em> (AP) 鐨勮窛绂汇€?璁惧蹇呴』宸插惎鐢ㄤ綅缃湇鍔″苟寮€鍚?Wi-Fi 鎵弿锛堝湪 Settings > Location 涓嬶級锛屽悓鏃舵偍鐨勫簲鐢ㄥ繀椤诲叿鏈? 璁惧鏃犻渶杩炴帴鍒版帴鍏ョ偣鍗冲彲浣跨敤 RTT銆?涓轰簡淇濇姢闅愮锛屽彧鏈夋墜鏈哄彲浠ョ‘瀹氫笌鎺ュ叆鐐圭殑璺濈锛涙帴鍏ョ偣鏃犳淇℃伅銆?/p> 濡傛灉鎮ㄧ殑璁惧娴嬮噺涓?3 涓垨鏇村鎺ュ叆鐐圭殑璺濈锛屾偍鍙互浣跨敤涓€涓鐐瑰畾浣嶇畻娉曟潵棰勪及涓庤繖浜涙祴閲忓€兼渶鐩哥鐨勮澶囦綅缃€?缁撴灉閫氬父绮惧噯鑷?1 鑷?2 绫炽€?/p> 閫氳繃杩欑绮剧‘鎬э紝鎮ㄥ彲浠ユ墦閫犳柊鐨勪綋楠岋紝渚嬪妤煎唴瀵艰埅銆佸熀浜庣簿缁嗕綅缃殑鏈嶅姟锛屽鏃犳涔夎闊虫帶鍒讹紙渚嬪锛?em>鈥滄墦寮€杩欑洀鐏€?/em>锛夛紝浠ュ強鍩轰簬浣嶇疆鐨勪俊鎭紙濡?鈥滄浜у搧鏄惁鏈夌壒鍒紭鎯狅紵鈥?/em>锛夈€?/p> 閫氳繃浣跨敤妯℃嫙鍣ㄦ祴璇曞睆骞曠己鍙c€?/p> Android 9 鏀寔鏈€鏂扮殑鍏ㄩ潰灞忥紝鍏朵腑鍖呭惈涓烘憚鍍忓ご鍜屾壃澹板櫒棰勭暀绌洪棿鐨勫睆骞曠己鍙c€?閫氳繃 鍏ㄦ柊鐨勭獥鍙e竷灞€灞炴€? 鍙互鎸変互涓嬫柟娉曞湪浠讳綍杩愯 Android 9 鐨勮澶囨垨妯℃嫙鍣ㄤ笂妯℃嫙灞忓箷缂哄彛锛?/p> 娉細鎴戜滑寤鸿鎮ㄩ€氳繃浣跨敤杩愯 Android 9 鐨勮澶囨垨妯℃嫙鍣ㄦ祴璇曞睆骞曠己鍙e懆鍥寸殑鍐呭鏄剧ず銆?/p> Android 9 寮曞叆浜嗗涓€氱煡澧炲己鍔熻兘锛屽彲渚涗互 API 绾у埆 28 鍙婁互涓婄増鏈綔涓虹洰鏍囧钩鍙扮殑寮€鍙戣€呬娇鐢ㄣ€?/p> 闄勫甫浜嗙収鐗囩殑 MessagingStyle銆?/p> 鍚洖澶嶅拰瀵硅瘽鐨?MessagingStyle銆?/p> 浠?Android 7.0锛圓PI 绾у埆 24锛夊紑濮嬶紝鎮ㄥ彲浠ユ坊鍔犱竴涓搷浣滀互鍥炲鐭俊鎴栫洿鎺ヤ粠閫氱煡涓緭鍏ュ叾浠栨枃鏈€?Android 9 閫氳繃涓嬪垪澧炲己鎻愬崌浜嗚鍔熻兘锛?/p> 绠€鍖栦簡閽堝瀵硅瘽鍙備笌鑰呯殑鏀寔锛?code>Person 绫诲彲鐢ㄤ簬璇嗗埆鍙備笌瀵硅瘽鐨勪汉鍛橈紝鍖呮嫭浠栦滑鐨勫ご鍍忓拰 URI銆?鐜板湪锛岃澶氬叾浠?API锛堝 鏀寔鍥惧儚锛氱幇鍦紝Android 9 鍙湪鎵嬫満鐨勨€滅煭淇¢€氱煡鈥濅腑鏄剧ず鍥惧儚銆?鎮ㄥ彲浠ヤ娇鐢ㄥ鐭俊浣跨敤 // Create new Person. // Create new Person. 灏嗗洖澶嶅彟瀛樹负鑽夌锛氬綋鐢ㄦ埛鏃犳剰涓叧闂竴涓煭淇¢€氱煡鏃讹紝鎮ㄧ殑搴旂敤鍙互妫€绱㈢郴缁熷彂閫佺殑 纭畾瀵硅瘽鏄惁涓虹兢缁勫璇濄€傛偍鍙互浣跨敤 涓?Intent 璁剧疆璇箟鎿嶄綔锛?code>setSemanticAction() 鍑芥暟鍏佽鎮ㄤ负鎿嶄綔鎻愪緵璇箟鍚箟锛屽鈥滄爣璁颁负宸茶鈥濄€佲€滃垹闄も€濆拰鈥滃洖澶嶁€濈瓑銆?/p> SmartReply锛欰ndroid 9 鏀寔鍦ㄦ偍鐨勭煭淇″簲鐢ㄤ腑鎻愪緵鐩稿悓鐨勫缓璁洖澶嶃€?浣跨敤 Android 8.0 寮曞叆浜嗛€氱煡娓犻亾锛屽厑璁告偍涓鸿鏄剧ず鐨勬瘡绉嶉€氱煡绫诲瀷鍒涘缓鍙敱鐢ㄦ埛鑷畾涔夌殑娓犻亾銆?Android 9 閫氳繃涓嬪垪鍙樻洿绠€鍖栭€氱煡娓犻亾璁剧疆锛?/p> 灞忚斀娓犻亾缁勶細鐜板湪锛岀敤鎴峰彲浠ラ拡瀵规煇涓簲鐢ㄥ湪閫氱煡璁剧疆涓睆钄芥暣涓笭閬撶粍銆?鎮ㄥ彲浠ヤ娇鐢? 姝ゅ锛屾偍鐨勫簲鐢ㄥ彲浠ヤ娇鐢ㄥ叏鏂扮殑 鍏ㄦ柊鐨勫箍鎾?Intent 绫诲瀷锛氱幇鍦紝褰撻€氱煡娓犻亾鍜屾笭閬撶粍鐨勫睆钄界姸鎬佸彂鐢熷彉鏇存椂锛孉ndroid 绯荤粺灏嗗彂閫佸箍鎾?Intent銆?鎷ユ湁宸插睆钄界殑娓犻亾鎴栨笭閬撶粍鐨勫簲鐢ㄥ彲浠ヤ睛鍚繖浜?Intent 骞跺仛鍑虹浉搴旂殑鍥炲簲銆?鏈夊叧杩欎簺 Intent 鎿嶄綔鍜?extra 鐨勬洿澶氫俊鎭紝璇峰弬闃? 鍦ㄨ繍琛?Android 9 鐨勮澶囦笂锛屾偍鍙互閫氳繃涓や釜鎴栨洿澶氱墿鐞嗘憚鍍忓ご鏉ュ悓鏃惰闂涓棰戞祦銆俔 鍦ㄩ厤澶囧弻鍓嶇疆鎽勫儚澶存垨鍙屽悗缃憚鍍忓ご鐨勮澶囦笂锛屾偍鍙互鍒涘缓鍙厤澶囧崟鎽勫儚澶寸殑璁惧鎵€涓嶅彲鑳藉疄鐜扮殑鍒涙柊鍔熻兘锛屼緥濡傛棤缂濈缉鏀俱€佽儗鏅櫄鍖栧拰绔嬩綋鎴愬儚銆?閫氳繃璇?API锛屾偍杩樺彲浠ヨ皟鐢ㄩ€昏緫鎴栬瀺鍚堢殑鎽勫儚澶磋棰戞祦锛岃瑙嗛娴佸彲鍦ㄤ袱涓垨鏇村鎽勫儚澶翠箣闂磋嚜鍔ㄥ垏鎹€?/p> 鎽勫儚澶存柟闈㈢殑鍏朵粬鏀硅繘杩樺寘鎷檮鍔犱細璇濆弬鏁板拰 Surface 鍏变韩锛屽墠鑰呮湁鍔╀簬闄嶄綆棣栨鎷嶇収鏈熼棿鐨勫欢杩燂紝鑰屽悗鑰呭垯璁╂憚鍍忓ご瀹㈡埛绔兘澶熷鐞嗗悇绉嶇敤渚嬶紝鑰屾棤闇€鍋滄骞跺惎鍔ㄦ憚鍍忓ご瑙嗛娴併€?鎴戜滑杩橀拡瀵瑰熀浜庢樉绀哄睆鐨?flash 鏀寔鍜?OIS 鏃堕棿鎴宠闂柊澧炰簡涓€浜?API锛岀敤浠ュ疄鐜板簲鐢ㄧ骇鐨勫浘鍍忕ǔ瀹氬寲鍜岀壒鏁堛€?/p> 鍦?Android 9 涓紝澶氭憚鍍忓ご API鏀寔鍗曡壊鎽勫儚澶达紝閫傜敤浜庡叿鏈? 鍦ㄥ彈鏀寔鐨勮澶囦笂锛孉ndroid 9 杩樻敮鎸佸缃?USB/UVC 鎽勫儚澶淬€?/p> Android 9 寮曞叆浜? 鎮ㄥ彲浠ヤ娇鐢ㄤ笉鍚岀殑鏂规硶鏉ヨ缃浘鍍忓睘鎬э細 閫氳繃 娉細瀵? Android 9 寮曞叆浜? 鍙娇鐢? @Throws(IOException::class) private void decodeImage() throws IOException { Android 9 鏂板浜嗗 High Dynamic Range (HDR) VP9 Profile 2 鐨勫唴缃敮鎸侊紝鍥犳锛岀幇鍦ㄦ偍鍙互鍦ㄦ敮鎸?HDR 鐨勮澶囦笂涓虹敤鎴锋彁渚涙潵鑷?YouTube銆丳lay Movies 鍜屽叾浠栨潵婧愮殑閲囩敤 HDR 鐨勫奖鐗囥€?/p> Android 9 涓哄钩鍙板鍔犱簡瀵?HEIF (heic) 鍥惧儚缂栫爜鐨勬敮鎸併€? 杩樺彲閫氳繃 Android 9 鍚? 鍦?Android 9 涓紝AAudio API 鍖呭惈 AAudioStream 灞炴€э紝鐢ㄤ簬 usage銆乧ontent type 鍜?input preset銆?浣跨敤杩欎簺灞炴€у彲浠ュ垱寤洪拡瀵?VoIP 鎴栨憚鍍忔満搴旂敤璋冩暣鐨勬祦銆?鎮ㄨ繕鍙互璁剧疆 SessionID灏?AAudio 娴佷笌鍙寘鍚煶鏁堢殑瀛愭贩闊崇浉鍏宠仈銆?浣跨敤 Android 9 鍖呭惈涓€涓敤浜?DynamicsProcessing 鐨?AudioEffect API銆?鍊熷姪璇ョ被锛屽彲浠ユ瀯寤哄熀浜庨€氶亾鐨勯煶鏁堬紝鐢卞悇绉嶇被鍨嬶紙鍖呮嫭鍧囪 銆佸棰戝甫鍘嬬缉鍜岄檺骞呭櫒锛夌殑澶氫釜闃舵缁勬垚銆?棰戝甫鍜屾椿鍔ㄩ樁娈电殑鏁伴噺鍙厤缃紝鑰屼笖澶у鏁板弬鏁板彲瀹炴椂鎺у埗銆?/p> 浠?Android 9 寮€濮嬶紝 浣滀笟鍙互澹版槑鍏堕浼扮殑鏁版嵁澶у皬銆佷俊鍙烽鎻愬彇锛屽苟鎸囧畾鍏蜂綋鐨勭綉缁滆姹傘€? 娣诲姞浣滀笟鏃讹紝纭繚浣跨敤 Android 8.1锛圓PI 绾у埆 27锛変腑寮曞叆浜?Neural Networks API 浠ュ姞蹇?Android 璁惧涓婃満鍣ㄥ涔犵殑閫熷害銆?Android 9 鎵╁睍鍜屾敼杩涗簡璇?API锛屽鍔犱簡瀵逛節绉嶆柊杩愮畻鐨勬敮鎸侊細 宸茬煡闂锛?/strong> 灏? 姝ゅ锛孉PI 杩樺紩鍏ヤ簡涓€涓柊鍑芥暟锛屽嵆 Android 9 寮曞叆浜嗗椤规敼杩涳紝鑷姩濉厖鏈嶅姟鍙互鍒╃敤杩欎簺鏀硅繘杩涗竴姝ュ寮虹敤鎴峰~鍐欒〃鍗曟椂鐨勪綋楠屻€?濡傞渶璇︾粏浜嗚В濡備綍鍦ㄦ偍鐨勫簲鐢ㄤ腑浣跨敤鑷姩濉厖鍔熻兘锛岃鍙傞槄鑷姩濉厖妗嗘灦鎸囧崡銆?/p> Android 9 寮曞叆浜嗚嫢骞插畨鍏ㄥ姛鑳斤紝璇﹁浠ヤ笅鍚勮妭鎽樿璇存槑锛?/p> 杩愯 Android 9 鎴栨洿楂樼増鏈殑鍙楁敮鎸佽澶囪祴浜堟偍浣跨敤 Android Protected Confirmation 鐨勮兘鍔涖€?浣跨敤璇ュ伐浣滄祦鏃讹紝鎮ㄧ殑搴旂敤浼氬悜鐢ㄦ埛鏄剧ず鎻愮ず锛岃浠栦滑鎵瑰噯涓€涓畝鐭殑澹版槑銆?搴旂敤鍙互閫氳繃杩欎釜澹版槑鍐嶆纭锛岀敤鎴风‘瀹炴兂瀹屾垚涓€椤规晱鎰熶簨鍔★紝渚嬪浠樻銆?/p> 濡傛灉鐢ㄦ埛鎺ュ彈璇ュ0鏄庯紝Android 瀵嗛挜搴撲細鏀跺埌骞跺瓨鍌ㄧ敱瀵嗛挜鍝堝笇娑堟伅韬唤楠岃瘉浠g爜 (HMAC) 淇濇姢鐨勫姞瀵嗙鍚嶃€?Android 瀵嗛挜搴撶‘璁ゆ秷鎭殑鏈夋晥鎬т箣鍚庯紝鎮ㄧ殑搴旂敤鍙互浣跨敤鍦ㄥ彲淇℃墽琛岀幆澧?(TEE) 涓嬮€氳繃 娉ㄦ剰锛?/strong>Android Protected Confirmation 涓嶄細涓虹敤鎴锋彁渚涘畨鍏ㄤ俊鎭€氶亾銆?搴旂敤鏃犳硶鎵挎媴 Android 骞冲彴鎵€鎻愪緵鏈哄瘑鎬т繚璇佷箣澶栫殑浠讳綍鍏朵粬淇濊瘉銆?灏ゅ叾鏄紝璇峰嬁浣跨敤璇ュ伐浣滄祦鏄剧ず鎮ㄩ€氬父涓嶄細鏄剧ず鍦ㄧ敤鎴疯澶囦笂鐨勬晱鎰熶俊鎭€?/p> 濡傞渶鑾峰緱 Android Protected Confirmation 鏂板鏀寔鏂归潰鐨勬寚瀵硷紝璇峰弬闃?Android Protected Confirmation 鎸囧崡銆?/p> 鍦?Android 9 涓紝绯荤粺浠h〃鎮ㄧ殑搴旂敤鎻愪緵鐢熺墿璇嗗埆韬唤楠岃瘉瀵硅瘽妗嗐€?璇ュ姛鑳藉彲鍒涘缓鏍囧噯鍖栫殑瀵硅瘽妗嗗瑙傘€侀鏍煎拰浣嶇疆锛岃鐢ㄦ埛鏇村姞纭俊锛屼粬浠湪浣跨敤鍙俊鐨勭敓鐗╄瘑鍒嚟鎹鏌ョ▼搴忚繘琛岃韩浠介獙璇併€?/p> 濡傛灉鎮ㄧ殑搴旂敤浣跨敤 娉細鍦ㄥ簲鐢ㄤ腑浣跨敤 濡傛灉璁惧涓嶆敮鎸佺敓鐗╄瘑鍒韩浠介獙璇侊紝鍙互鍥為€€涓轰娇鐢? 杩愯 Android 9 鎴栨洿楂樼増鏈殑鍙楁敮鎸佽澶囧彲鎷ユ湁 StrongBox Keymaster锛屽畠鏄綅浜庣‖浠跺畨鍏ㄦ€фā鍧椾腑鐨?Keymaster HAL 鐨勪竴绉嶅疄鐜般€?璇ユā鍧楀寘鍚互涓嬬粍鎴愰儴鍒嗭細 妫€鏌ュ瓨鍌ㄥ湪 StrongBox Keymaster 涓殑瀵嗛挜鏃讹紝绯荤粺浼氶€氳繃鍙俊鎵ц鐜 (TEE) 璇佸疄瀵嗛挜鐨勫畬鏁存€с€?/p> 濡傞渶浜嗚В鏈夊叧浣跨敤 Strongbox Keymaster 鐨勬洿澶氫俊鎭紝璇峰弬闃呯‖浠跺畨鍏ㄦ€фā鍧椼€?/p> Android 9 閫氳繃鍒╃敤 ASN.1鈥戠紪鐮佸瘑閽ユ牸寮忓皢宸插姞瀵嗗瘑閽ュ畨鍏ㄥ鍏ュ瘑閽ュ簱鐨勫姛鑳斤紝鎻愰珮浜嗗瘑閽ヨВ瀵嗙殑瀹夊叏鎬с€?Keymaster 闅忓悗浼氬湪瀵嗛挜搴撲腑灏嗗瘑閽ヨВ瀵嗭紝鍥犳瀵嗛挜鐨勫唴瀹规案杩滀笉浼氫互鏄庢枃褰㈠紡鍑虹幇鍦ㄨ澶囩殑涓绘満鍐呭瓨涓€?/p> 娉細鍙湁闄勫甫 Keymaster 4 鎴栨洿楂樼増鏈殑璁惧鎵嶆敮鎸佽鍔熻兘銆?/p> 璇︾粏浜嗚В濡備綍鏇村畨鍏ㄥ湴瀵煎叆宸插姞瀵嗗瘑閽ャ€?/p> Android 9 鏂板浜嗗 APK Signature Scheme v3 鐨勬敮鎸併€傝鏋舵瀯鎻愪緵鐨勯€夋嫨鍙互鍦ㄥ叾绛惧悕鍧椾腑涓烘瘡涓鍚嶈瘉涔﹀姞鍏ヤ竴鏉¤疆杞瘉鎹褰曘€?鍒╃敤姝ゅ姛鑳斤紝搴旂敤鍙互閫氳繃灏?APK 鏂囦欢杩囧幓鐨勭鍚嶈瘉涔﹂摼鎺ュ埌鐜板湪绛剧讲搴旂敤鏃朵娇鐢ㄧ殑璇佷功锛屼粠鑰屼娇鐢ㄦ柊绛惧悕璇佷功鏉ョ缃插簲鐢ㄣ€?/p> 娉細杩愯 Android 8.1锛圓PI 绾у埆 27锛夋垨鏇翠綆鐗堟湰鐨勮澶囦笉鏀寔鏇存敼绛惧悕璇佷功銆?濡傛灉搴旂敤鐨? 璇︾粏浜嗚В濡備綍浣跨敤 Android 9 寮曞叆浜? 娉細 鍦ㄨ澶囬攣瀹氭椂瑕佺‘淇濆瘑閽ュ畨鍏ㄤ笉琚В瀵嗭紝鍙€氳繃灏? 闄勫甫 Keymaster 4 鐨?Android 9 璁惧鏀寔涓夐噸鏁版嵁鍔犲瘑绠楁硶锛堢畝绉颁笁閲?DES锛夈€?濡傛灉鎮ㄧ殑搴旂敤涓庨渶瑕佷笁閲?DES 鐨勬棫鐗堢郴缁熻繘琛屼簰鎿嶄綔锛岃浣跨敤杩欑鍔犲瘑鏉ュ姞瀵嗘晱鎰熷嚟鎹€?/p> 濡傞渶璇︾粏浜嗚В濡備綍璁╂偍鐨勫簲鐢ㄦ洿鍔犲畨鍏紝璇峰弬闃?Android 寮€鍙戣€呯殑瀹夊叏鎬с€?/p> Android 9 鏂板浜嗕笌澶囦唤鍜岃繕鍘熸湁鍏崇殑鍔熻兘鍜屽紑鍙戣€呴€夐」銆?杩欎簺鏇存敼鐨勮缁嗕俊鎭浠ラ儴鍒嗕笅鎵€绀恒€?/p> Android 9 鏂板浜嗗浣跨敤瀹㈡埛绔瘑閽ュ姞瀵?Android 澶囦唤鐨勬敮鎸併€?婊¤冻涓嬪垪鏉′欢鏃朵細鑷姩鍚敤璇ユ敮鎸佸姛鑳斤細 璇ラ殣绉佹帾鏂藉惎鐢ㄤ箣鍚庯紝浠庣敤鎴疯澶囧埗浣滅殑澶囦唤杩樺師鏁版嵁鏃讹紝浼氳姹傛彁渚涜澶囩殑 PIN 鐮併€佸浘妗堟垨瀵嗙爜銆?濡傞渶璇︾粏浜嗚В璇ラ」鍔熻兘鑳屽悗鐨勬妧鏈紝璇峰弬闃?Google 浜戝瘑閽ヤ繚闄╂煖鏈嶅姟鐧界毊涔︺€?/p> 濡傛灉鎮ㄧ殑搴旂敤鏁版嵁鍖呭惈鏁忔劅淇℃伅鎴栧亸濂斤紝Android 9 鍙鎮ㄥ畾涔夎澶囨潯浠讹紙渚嬪鍦ㄥ鎴风鍔犲瘑宸插惎鐢ㄦ垨鑰呮鍦ㄨ繘琛屾湰鍦拌澶囧埌璁惧浼犺緭鏃讹級锛屾暟鎹皢渚濇嵁璇ユ潯浠跺寘鎷湪鐢ㄦ埛鐨勫浠戒腑銆?/p> 濡傞渶浜嗚В鏈夊叧鍦?Android 璁惧涓婂浠芥暟鎹殑璇︾粏淇℃伅锛岃鍙傞槄鏁版嵁澶囦唤姒傝銆?/p> Android 9 寮曞叆浜嗛拡瀵规棤闅滅鍔熻兘妗嗘灦鐨勫寮哄姛鑳斤紝璁╂偍鑳藉鏇磋交鏉惧湴涓哄簲鐢ㄧ殑鐢ㄦ埛鎻愪緵鏇村ソ鐨勪綋楠屻€?/p> Android 9 涓殑鏂板灞炴€ц鎮ㄥ彲浠ユ洿杞绘澗鍦板畾涔夋棤闅滅鏈嶅姟锛堝挨鍏舵槸灞忓箷闃呰鍣級濡備綍浠庡睆骞曠殑鏌愪釜閮ㄥ垎瀵艰埅鍒板彟涓€涓儴鍒嗐€?杩欎簺灞炴€у彲甯姪瑙嗗姏鍙楁崯鐢ㄦ埛鍦ㄥ簲鐢ㄧ晫闈㈢殑鏂囨湰涔嬮棿蹇€熺Щ鍔紝骞跺厑璁镐粬浠繘琛岄€夋嫨銆?/p> 渚嬪锛屽湪璐墿搴旂敤涓紝灞忓箷闃呰鍣ㄥ彲浠ュ府鍔╃敤鎴蜂粠鏌愪釜浜ゆ槗绫诲埆鐩存帴瀵艰埅鑷充笅涓€涓氦鏄撶被鍒紝鍦ㄨ浆鍒颁笅涓€涓被鍒箣鍓嶏紝灞忓箷闃呰鍣ㄦ棤闇€璇诲彇褰撳墠绫诲埆涓殑鎵€鏈変氦鏄撱€?/p> 鏃犻殰纰嶅姛鑳界獥鏍兼爣棰?/p> 鍦?Android 8.1锛圓PI 绾у埆 27锛夊拰鏇翠綆鐗堟湰涓紝鏃犻殰纰嶆湇鍔℃湁鏃舵棤娉曠‘瀹氬睆骞曠殑鏌愪釜绐楁牸鏄綍鏃舵洿鏂扮殑锛屼緥濡傛煇涓?Activity 灏嗕竴涓?Fragment 鏇挎崲涓哄彟涓€涓?Fragment 鐨勬椂鍊欍€?绐楁牸鐢辨寜鐓ч€昏緫鍏崇郴鍒嗙粍銆佽瑙変笂鐩稿叧鐨勭晫闈㈠厓绱犵粍鎴愶紝鍏朵腑閫氬父鍖呭惈涓€涓?Fragment銆?/p> 鍦?Android 9 涓紝鍙负杩欎簺绐楁牸鎻愪緵 鏃犻殰纰嶅姛鑳界獥鏍兼爣棰?/em>锛屽嵆鍙崟鐙瘑鍒殑鏍囬銆?濡傛灉鏌愪釜绐楁牸鍏锋湁鏃犻殰纰嶅姛鑳界獥鏍兼爣棰橈紝褰撶獥鏍兼敼鍙樻椂锛屾棤闅滅鏈嶅姟鍙帴鏀舵洿璇︾粏鐨勪俊鎭€?渚濋潬杩欑鍔熻兘锛屾湇鍔″彲浠ヤ负鐢ㄦ埛鎻愪緵鏈夊叧鐣岄潰鍙樺寲鐨勬洿绮剧粏淇℃伅銆?/p> 瑕佹寚瀹氭煇涓獥鏍肩殑鏍囬锛岃浣跨敤 鍩轰簬鏍囬鐨勫鑸?/p> 濡傛灉鎮ㄧ殑搴旂敤鏄剧ず鐨勬枃鏈唴瀹瑰寘鍚€昏緫鏍囬锛屽垯瀵逛簬琛ㄧず杩欎簺鏍囬鐨? 缇ょ粍瀵艰埅鍜岃緭鍑?/p> 浼犵粺涓婏紝灞忓箷闃呰鍣ㄤ竴鐩翠娇鐢? 鍦?Android 8.1 鍜屾洿浣庣増鏈腑锛屾偍闇€瑕佸皢 浠?Android 9 寮€濮嬶紝濡傛灉灏? Android 9 鏂板浜嗕竴浜涙柟渚跨敤鎴锋墽琛屾搷浣滅殑鏀寔鍔熻兘锛?/p> 璁块棶鎻愮ず锛?鏃犻殰纰嶅姛鑳芥鏋朵腑鐨勬柊澧炲姛鑳藉彲璁╂偍鍦ㄥ簲鐢ㄧ晫闈腑璁块棶鎻愮ず銆?浣跨敤 鏂板鍏ㄥ眬鎿嶄綔锛?Android 9 鍦? Android 9 璁╂偍鍙互鍦ㄥ簲鐢ㄥ悓鏃堕噸缁樺涓獥鍙f椂锛屾洿杞绘澗鍦拌窡韪簲鐢ㄧ獥鍙g殑鏇存柊銆?褰撳彂鐢? 濡傛灉搴旂敤宸蹭负鍏? Google 鑷村姏浜庝负鎵€鏈?Android 鐢ㄦ埛鏀瑰杽鏃犻殰纰嶅姛鑳斤紝鎻愪緵澧炲己鍔熻兘浠ヤ究璁╂偍鏋勫缓 Service锛屽璇濊鎻愮ず 灞忓箷闃呰鍣紝渚涢渶瑕佹棤闅滅鍔熻兘鐨勭敤鎴蜂娇鐢ㄣ€?濡傞渶浜嗚В鏈夊叧濡備綍璁╂偍鐨勫簲鐢ㄦ洿渚夸簬璁块棶浠ュ強濡備綍鏋勫缓鏃犻殰纰?Service 鐨勬洿澶氫俊鎭紝璇峰弬闃呮棤闅滅鍔熻兘銆?/p> 涓洪伩鍏嶆棤鎰忕殑鏃嬭浆锛屾垜浠柊澧炰簡涓€绉嶆ā寮忥紝鍝€曡澶囦綅缃彂鐢熷彉鍖栵紝涔熶細鍥哄畾鍦ㄥ綋鍓嶅睆骞曟柟鍚戜笂銆?蹇呰鏃剁敤鎴峰彲浠ラ€氳繃鎸夌郴缁熸爮涓婄殑涓€涓寜閽墜鍔ㄨЕ鍙戞棆杞€?/p> 澶у鏁版儏鍐典笅锛屽搴旂敤鐨勫吋瀹规€у奖鍝嶅井涓嶈冻閬撱€?涓嶈繃锛屽鏋滄偍鐨勫簲鐢ㄦ湁浠讳綍鑷畾涔夋棆杞涓猴紝鎴栦娇鐢ㄤ簡浠讳綍闈炲父瑙勭殑灞忓箷鏂瑰悜璁剧疆锛屽垯鍙兘浼氶亣鍒颁互鍓嶇敤鎴锋棆杞閫夐」濮嬬粓璁剧疆涓虹旱鍚戞椂琚拷瑙嗙殑闂銆?鎴戜滑榧撳姳鎮ㄥ瑙嗕竴涓嬫偍鐨勫簲鐢ㄦ墍鏈夊叧閿?Activity 涓殑鏃嬭浆琛屼负锛屽苟纭繚鎮ㄧ殑鎵€鏈夊睆骞曟柟鍚戣缃粛鍙彁渚涙渶浣充綋楠屻€?/p> 濡傞渶浜嗚В鏇村璇︽儏锛岃鍙傞槄鐩稿叧鐨勮涓哄彉鏇淬€?/p> 涓€涓柊鐨勬棆杞ā寮忓厑璁哥敤鎴峰湪蹇呰鏃跺埄鐢ㄧ郴缁熸爮涓婄殑涓€涓寜閽墜鍔ㄨЕ鍙戞棆杞€?/p> Android 9 涓哄钩鍙版彁渚涗簡浠ヤ笅涓庢枃鏈浉鍏崇殑鍔熻兘锛?/p> 鏂囨湰棰勫厛璁$畻锛?code>PrecomputedText 绫讳娇鎮ㄨ兘鎻愬墠璁$畻鍜岀紦瀛樻墍闇€淇℃伅锛屾敼鍠勪簡鏂囨湰娓叉煋鎬ц兘銆?瀹冭繕浣挎偍鐨勫簲鐢ㄥ彲浠ュ湪涓荤嚎绋嬩箣澶栨墽琛屾枃鏈竷灞€銆?/p> 鏀惧ぇ鍣細 Smart Linkify锛欰ndroid 9 澧炲己浜? 鏂囨湰甯冨眬锛氬€熷姪鍑犵渚挎嵎鍑芥暟鍜屽睘鎬э紝鍙互鏇磋交鏉惧湴瀹炵幇鐣岄潰璁捐銆?濡傞渶浜嗚В璇︾粏淇℃伅锛岃鍙傞槄 鍦ㄨ繍琛?Android 9 鎴栨洿楂樼増鏈殑璁惧涓婏紝Android 杩愯鏃?(ART) 鎻愬墠缂栬瘧鍣ㄩ€氳繃灏嗗簲鐢ㄨ蒋浠跺寘涓殑 DEX 鏂囦欢杞崲涓烘洿绱у噾鐨勮〃绀哄舰寮忥紝杩涗竴姝ヤ紭鍖栦簡鍘嬬缉鐨?Dalvik Executable 鏍煎紡 (DEX) 鏂囦欢銆?姝ら」鍙樻洿鍙鎮ㄧ殑搴旂敤鍚姩鏇村揩骞舵秷鑰楁洿灏戠殑纾佺洏绌洪棿鍜屽唴瀛樸€?/p> 杩欑鏀硅繘鐗瑰埆鏈夊埄浜庣鐩?I/O 閫熷害杈冩參鐨勪綆绔澶囥€?/p> Android 9 鍏佽鎮ㄩ€氳繃璁惧璁板綍绯荤粺璺熻釜璁板綍锛岀劧鍚庝笌鎮ㄧ殑寮€鍙戝洟闃熷垎浜繖浜涜褰曠殑鎶ュ憡銆?璇ユ姤鍛婃敮鎸佸绉嶆牸寮忥紝鍖呮嫭 HTML銆?/p> 閫氳繃鏀堕泦杩欎簺璺熻釜璁板綍锛屾偍鍙互鑾峰彇涓庡簲鐢ㄨ繘绋嬪拰绾跨▼鐩稿叧鐨勮鏃舵暟鎹紝骞舵煡鐪嬪叾浠栫被鍨嬬殑鍏锋湁鍏ㄥ眬鎰忎箟鐨勮澶囩姸鎬併€?/p> 娉細鎮ㄦ棤闇€璁剧疆鎮ㄧ殑浠g爜鏉ヨ褰曡窡韪褰曪紝浣嗚繖鏍峰仛鍙互甯姪鎮ㄦ煡鐪嬪簲鐢ㄤ唬鐮佺殑鍝簺閮ㄥ垎鍙兘浼氬鑷寸嚎绋嬫寕璧锋垨鐣岄潰鍗¢】銆?/p> 濡傞渶璇︾粏浜嗚В璇ュ伐鍏凤紝璇峰弬闃呮墽琛岃澶囧唴缃郴缁熻窡韪€?/p> Android 9锛圓PI 绾у埆 28锛夊悜 Android 绯荤粺寮曞叆浜嗗椤瑰彉鏇淬€?褰撳簲鐢ㄥ湪 Android 9 骞冲彴涓婅繍琛屾椂锛屼互涓嬭涓哄彉鏇村皢褰卞搷鎵€鏈夊簲鐢?/em>锛屾棤璁鸿繖浜涘簲鐢ㄤ互鍝釜 API 绾у埆涓虹洰鏍囥€?鎵€鏈夊紑鍙戣€呴兘搴旀煡鐪嬭繖浜涘彉鏇达紝骞朵慨鏀瑰叾搴旂敤浠ユ纭敮鎸佽繖浜涘彉鏇达紙濡傛灉閫傜敤锛夈€?/p> 濡傞渶浜嗚В浠呭奖鍝嶄互 API 28 鎴栨洿楂樼骇鍒负鐩爣鐨勫簲鐢ㄧ殑鍙樻洿锛岃鍙傞槄琛屼负鍙樻洿锛氫互 API 绾у埆 28+ 涓虹洰鏍囩殑搴旂敤銆?/p> Android 9 寮曞叆浜嗘柊鍔熻兘浠ユ敼鍠勮澶囩數婧愮鐞嗐€?杩欎簺鍙樻洿杩炲悓 Android 9 涔嬪墠宸插瓨鍦ㄧ殑鍔熻兘鍙府鍔╃‘淇濈郴缁熻祫婧愯鎻愪緵缁欐渶闇€瑕佸畠浠殑搴旂敤銆?/p> 璇︽儏璇峰弬闃呯數婧愮鐞嗐€?/p> 涓轰簡澧炲己鐢ㄦ埛闅愮锛孉ndroid 9 寮曞叆浜嗚嫢骞茶涓哄彉鏇达紝濡傞檺鍒跺悗鍙板簲鐢ㄨ闂澶囦紶鎰熷櫒銆侀檺鍒堕€氳繃 Wi-Fi 鎵弿妫€绱㈠埌鐨勪俊鎭紝浠ュ強涓庨€氳瘽銆佹墜鏈虹姸鎬佸拰 Wi-Fi 鎵弿鐩稿叧鐨勬柊鏉冮檺瑙勫垯鍜屾潈闄愮粍銆?/p> 鏃犺閲囩敤鍝竴绉嶇洰鏍?SDK 鐗堟湰锛岃繖浜涘彉鏇撮兘浼氬奖鍝嶈繍琛屼簬 Android 9 涓婄殑鎵€鏈夊簲鐢ㄣ€?/p> 鍚庡彴瀵逛紶鎰熷櫒鐨勮闂彈闄?/p> Android 9 闄愬埗鍚庡彴搴旂敤璁块棶鐢ㄦ埛杈撳叆鍜屼紶鎰熷櫒鏁版嵁鐨勮兘鍔涖€?濡傛灉鎮ㄧ殑搴旂敤鍦ㄨ繍琛?Android 9 璁惧鐨勫悗鍙拌繍琛岋紝绯荤粺灏嗗鎮ㄧ殑搴旂敤閲囧彇浠ヤ笅闄愬埗锛?/p> 濡傛灉鎮ㄧ殑搴旂敤闇€瑕佸湪杩愯 Android 9 鐨勮澶囦笂妫€娴嬩紶鎰熷櫒浜嬩欢锛岃浣跨敤鍓嶅彴鏈嶅姟銆?/p> 闄愬埗璁块棶閫氳瘽璁板綍 Android 9 寮曞叆 瀵逛簬闇€瑕佽闂€氳瘽鏁忔劅淇℃伅锛堝璇诲彇閫氳瘽璁板綍鍜岃瘑鍒數璇濆彿鐮侊級鐨勫簲鐢紝璇? 濡傛灉鎮ㄧ殑搴旂敤闇€瑕佽闂€氳瘽璁板綍鎴栬€呴渶瑕佸鐞嗗幓鐢碉紝鍒欐偍蹇呴』鍚? 娉細鍥犱负杩欎簺鏉冮檺宸插彉鏇寸粍骞跺湪杩愯鏃舵巿浜堬紝鐢ㄦ埛鍙互鎷掔粷鎮ㄧ殑搴旂敤璁块棶閫氳瘽璁板綍淇℃伅銆?鍦ㄨ繖绉嶆儏鍐典笅锛屾偍鐨勫簲鐢ㄥ簲璇ヨ兘澶熷Ε鍠勫鐞嗘棤娉曡闂俊鎭殑鐘跺喌銆?/p> 濡傛灉鎮ㄧ殑搴旂敤宸茬粡閬靛惊杩愯鏃舵潈闄愭渶浣冲仛娉曪紝鍒欏彲浠ュ鐞嗘潈闄愮粍鐨勫彉鏇淬€?/p> 闄愬埗璁块棶鐢佃瘽鍙风爜 鍦ㄦ湭棣栧厛鑾峰緱 涓庢潵鐢靛拰鍘荤數鍏宠仈鐨勭數璇濆彿鐮佸彲鍦ㄦ墜鏈虹姸鎬佸箍鎾紙姣斿鏉ョ數鍜屽幓鐢电殑鎵嬫満鐘舵€佸箍鎾級涓湅鍒帮紝骞跺彲閫氳繃 瑕佷粠鎵嬫満鐘舵€佷腑璇诲彇鐢佃瘽鍙风爜锛岃鏍规嵁鎮ㄧ殑鐢ㄤ緥鏇存柊搴旂敤浠ヨ姹傚繀瑕佺殑鏉冮檺锛?/p> 闄愬埗璁块棶 Wi-Fi 浣嶇疆鍜岃繛鎺ヤ俊鎭?/p> 鍦?Android 9 涓紝搴旂敤杩涜 Wi-Fi 鎵弿鐨勬潈闄愯姹傛瘮涔嬪墠鐨勭増鏈洿涓ユ牸銆?璇︽儏璇峰弬闃?Wi-Fi 鎵弿闄愬埗銆?/p> 绫讳技鐨勯檺鍒朵篃閫傜敤浜? 妫€绱?SSID 鎴?BSSID 杩橀渶瑕佸湪璁惧涓婂惎鐢ㄤ綅缃湇鍔★紙鍦?Settings > Location 涓嬶級銆?/p> 浠?Wi-Fi 鏈嶅姟鍑芥暟涓Щ闄ょ殑淇℃伅 鍦?Android 9 涓紝涓嬪垪浜嬩欢鍜屽箍鎾笉鎺ユ敹鐢ㄦ埛浣嶇疆鎴栦釜浜哄彲璇嗗埆鏁版嵁鏂归潰鐨勪俊鎭細 Wi-Fi 鐨? 鐢佃瘽淇℃伅鐜板湪渚濊禆璁惧浣嶇疆璁剧疆 濡傛灉鐢ㄦ埛鍦ㄨ繍琛?Android 9 鐨勮澶囦笂鍋滅敤璁惧瀹氫綅锛屽垯浠ヤ笅鍑芥暟涓嶆彁渚涚粨鏋滐細 涓哄府鍔╃‘淇濆簲鐢ㄧǔ瀹氭€у拰鍏煎鎬э紝姝ゅ钩鍙板鏌愪簺闈?SDK 鍑芥暟鍜屽瓧娈电殑浣跨敤杩涜浜嗛檺鍒讹紱鏃犺鎮ㄦ槸鐩存帴璁块棶杩欎簺鍑芥暟鍜屽瓧娈碉紝杩樻槸閫氳繃鍙嶅皠鎴?JNI 璁块棶锛岃繖浜涢檺鍒跺潎閫傜敤銆?鍦?Android 9 涓紝鎮ㄧ殑搴旂敤鍙互缁х画璁块棶杩欎簺鍙楅檺鐨勬帴鍙o紱璇ュ钩鍙伴€氳繃 toast 鍜屾棩蹇楁潯鐩彁閱掓偍娉ㄦ剰杩欎簺鎺ュ彛銆?濡傛灉鎮ㄧ殑搴旂敤鏄剧ず杩欐牱鐨?toast锛屽垯蹇呴』瀵绘眰鍙楅檺鎺ュ彛涔嬪鐨勫叾浠栧疄鐜扮瓥鐣ャ€?濡傛灉鎮ㄨ涓烘病鏈夊彲琛岀殑鏇夸唬绛栫暐锛屾偍鍙互鎻愪氦閿欒浠ヨ姹傞噸鏂拌€冭檻姝ら檺鍒躲€?/p> 瀵归潪 SDK 鎺ュ彛鐨勯檺鍒跺寘鍚簡鏇村閲嶈淇℃伅銆?鎮ㄥ簲鏌ラ槄璇ヤ俊鎭互纭繚鎮ㄧ殑搴旂敤缁х画姝e父宸ヤ綔銆?/p> 鏃犺搴旂敤鐨勭洰鏍囧钩鍙扮増鏈浣曪紝Android 9 娣诲姞鐨勮嫢骞插姛鑳藉潎鍙护搴旂敤鐨勫畨鍏ㄦ€у緱鍒版敼鍠勩€?/p> 浼犺緭灞傚畨鍏ㄥ崗璁?(TLS) 瀹炵幇鍙樻洿 绯荤粺鐨勪紶杈撳眰瀹夊叏鍗忚 (TLS) 瀹炵幇鍦?Android 9 涓粡鍘嗕簡鑻ュ共娆″彉鏇达細 濡傞渶浜嗚В鏈夊叧鍦?Android 搴旂敤涓繘琛屽畨鍏ㄧ綉缁滆姹傜殑鏇村淇℃伅锛岃鍙傞槄涓€涓?HTTPS 绀轰緥銆?/p> 鏇翠弗鏍肩殑 SECCOMP 杩囨护鍣?/p> Android 9 瀵瑰彲渚涘簲鐢ㄤ娇鐢ㄧ殑绯荤粺璋冪敤鍋氫簡杩涗竴姝ラ檺鍒躲€?姝よ涓烘槸 Android 8.0锛圓PI 绾у埆 26锛夊寘鍚殑 SECCOMP 杩囨护鍣ㄧ殑鎵╁睍銆?/p> 娉細姝ゆ洿鏀逛粎褰卞搷浣跨敤鎺堟潈鐨勭郴缁熻皟鐢ㄧ殑搴旂敤銆?/p> Android 9 閽堝鍔犲瘑绠楁硶鐨勫疄鐜板拰澶勭悊寮曞叆浜嗗嚑椤瑰彉鏇淬€?/p> 鍙傛暟鍜岀畻娉曠殑 Conscrypt 瀹炵幇 Android 9 鍦?Conscrypt 涓疄鐜颁簡鏇村鐨勭畻娉曞弬鏁般€?杩欎簺鍙傛暟鍖呮嫭锛?AES銆丏ESEDE銆丱AEP 鍜?EC銆?杩欎簺鍙傛暟鍜岃澶氱畻娉曠殑 Bouncy Castle 鐗堟湰鑷?Android 9 璧峰凡琚純鐢ㄣ€?/p> 娉細EC 鍙傛暟鐨?Conscrypt 瀹炵幇浠呮敮鎸佸凡鍛藉悕鐨勬洸绾裤€?/p> 濡傛灉鎮ㄧ殑搴旂敤浠?Android 8.1锛圓PI 绾у埆 27锛夋垨鏇翠綆鐗堟湰涓虹洰鏍囷紝鍒欏湪璇锋眰杩欎簺宸插純鐢ㄧ畻娉曚箣涓€鐨?Bouncy Castle 瀹炵幇鏃讹紝鎮ㄥ皢鏀跺埌涓€鏉¤鍛婃秷鎭€?鐒惰€岋紝濡傛灉鎮ㄤ互 Android 9 涓虹洰鏍囧钩鍙帮紝鍒欒繖浜涜姹備細鍚勮嚜寮曞彂 鍏朵粬鍙樻洿 Android 9 寮曞叆浜嗗椤逛笌鍔犲瘑鏈夊叧鐨勫叾浠栧彉鏇达細 濡傞渶浜嗚В鏈夊叧浣跨敤 Android 鐨勫姞瀵嗗姛鑳界殑鏇村淇℃伅锛岃鍙傞槄鍔犲瘑銆?/p> Android 9 瀹屽叏鍙栨秷浜嗗 Android 瀹夊叏鍔犲瘑鏂囦欢 (ASEC) 鐨勬敮鎸併€?/p> 鍦?Android 2.2锛圓PI 绾у埆 8锛変腑锛孉ndroid 寮曞叆浜?ASEC 浠ユ敮鎸?SD 鍗″姞杞藉簲鐢ㄥ姛鑳姐€?鍦?Android 6.0锛圓PI 绾у埆 23锛変笂锛屽钩鍙板紩鍏ヤ簡涓€涓彲閲囩敤鐨勫瓨鍌ㄨ澶?鎶€鏈紝寮€鍙戣€呭彲鐢ㄥ畠鏉ヤ唬鏇?ASEC銆?/p> Android 9 浣跨敤 ICU 搴撶増鏈?60銆?Android 8.0锛圓PI 绾у埆 26锛夊拰 Android 8.1锛圓PI 绾у埆 27锛変娇鐢?ICU 58銆?/p> ICU 鐢ㄤ簬鎻愪緵 瀵?ICU 60 杩涜鐨勬洿鏂板寘鍚澶氱粏寰絾寰堟湁鐢ㄧ殑鍙樻洿锛岃繖鍖呮嫭 Emoji 5.0 鏁版嵁鏀寔锛屾敼杩涗簡鏃ユ湡/鏃堕棿鏍煎紡锛岃瑙?ICU 59 鍜?ICU 60 鐗堟湰璇存槑涓殑浠嬬粛銆?/p> 鏈鏇存柊涓殑鏄捐憲鍙樻洿锛?/p> ICU 鐜板湪鎻愪緵 GMT 鍜?UTC 鐨勭炕璇戠増鏃跺尯鍚嶇О銆?姝ゅ彉鏇翠細褰卞搷鈥淕MT鈥濄€佲€淓tc/GMT鈥濄€佲€淓tc/UTC鈥濄€佲€淯TC鈥濆拰鈥淶ulu鈥濅箣绫绘椂鍖虹殑 Android 9 寮曞叆浜嗗椤归拡瀵?Android Test 妗嗘灦搴撳拰绫荤粨鏋勭殑鏇存敼銆?杩欎簺鍙樻洿鍙府鍔╁紑鍙戣€呬娇鐢ㄦ敮鎸佹鏋剁殑鍏叡 API锛屾澶栵紝鍦ㄤ娇鐢ㄧ涓夋柟搴撴垨鑷畾涔夐€昏緫鏋勫缓鍜岃繍琛屾祴璇曟椂锛岃繖浜涘彉鏇磋繕鍙彁渚涙洿澶х殑鐏垫椿鎬с€?/p> 浠庢鏋剁Щ闄ょ殑鍐呭搴?/p> Android 9 灏嗗熀浜?JUnit 鐨勭被閲嶆柊鏁寸悊鎴愪笁涓唴瀹瑰簱锛?android.test.base銆?strong>android.test.runner 濡傞渶浜嗚В鏈夊叧濡備綍灏嗗熀浜?JUnit 鐨勭被缁勭粐鍒拌繖浜涘唴瀹瑰簱涓紝浠ュ強濡備綍鍑嗗鎮ㄧ殑搴旂敤椤圭洰浠ョ紪鍐欏拰杩愯娴嬭瘯锛岃鍙傞槄閽堝 Android 娴嬭瘯璁剧疆椤圭洰銆?/p> 娴嬭瘯濂椾欢鐗堟湰鍙峰彉鏇?/p> 绉婚櫎浜? UTF-8 鏄?Android 涓殑榛樿瀛楃闆嗐€?UTF-8 瀛楄妭搴忓垪鍙敱 Android 9 涓殑 UTF-8 瑙g爜鍣ㄩ伒寰瘮浠ュ墠鐗堟湰涓洿涓ユ牸鐨?Unicode 鏍囧噯锛?杩欎簺鍙樻洿鍖呮嫭锛?/p> RFC 2818涓粙缁嶄簡涓ょ瀵圭収璇佷功鍖归厤鍩熷悕鐨勬柟娉曗€斾娇鐢? 鐒惰€岋紝鍦?RFC 2818 涓紝鍥為€€鍒? 瑕佹眰鍚嶇О瑙f瀽鐨勭綉缁滃湴鍧€鏌ヨ鍙兘浼氭秹鍙婄綉缁?I/O锛屽洜姝や細琚涓洪樆濉炴€ф搷浣溿€?瀵逛簬涓荤嚎绋嬬殑闃诲鎬ф搷浣滃彲鑳戒細瀵艰嚧鍋滈】鎴栧崱椤裤€?/p> 鍦?Android 9 鍙婃洿楂樼増鏈腑锛?code>StrictMode 鍙互妫€娴嬮渶瑕佸悕绉拌В鏋愮殑缃戠粶鍦板潃鏌ヨ鎵€瀵艰嚧鐨勭綉缁滆繚瑙勩€?/p> 鎮ㄥ湪浜や粯搴旂敤鏃朵笉搴斿惎鐢? 瑙f瀽鏁板瓧 IP 鍦板潃涓嶈瑙嗕负闃诲鎬ф搷浣溿€?鏁板瓧 IP 鍦板潃瑙f瀽鐨勫伐浣滄柟寮忎笌 Android 9 浠ュ墠鐨勭増鏈腑鎵€閲囩敤鐨勬柟寮忕浉鍚屻€?/p> 鍦ㄤ綆浜?Android 9 鐨勫钩鍙扮増鏈笂锛屽鏋滀娇鐢? 鍦?Android 9 鍙婃洿楂樼増鏈腑锛屽埄鐢?binder 杩涚▼闂撮€氫俊灏嗗鎺ュ瓧鍙戦€佽嚦鍏朵粬杩涚▼鏃讹紝鍏舵爣璁板皢寰楀埌淇濈暀銆?姝ゅ彉鏇村彲鑳藉奖鍝嶇綉缁滄祦閲忕粺璁★紝渚嬪锛屼娇鐢? 濡傛灉鎮ㄨ淇濈暀浠ュ墠鐗堟湰鐨勮涓猴紝鍗冲彇娑堝凡鍙戦€佽嚦鍏朵粬杩涚▼鐨勫鎺ュ瓧鐨勬爣璁帮紝鎮ㄥ彲浠ュ湪鍙戦€佹濂楁帴瀛椾箣鍓嶈皟鐢? 鍦ㄨ皟鐢? 鍦?Android 8.1锛圓PI 绾у埆 28锛夊強鏇翠綆鐗堟湰涓紝 浠?Android 9 鍙婃洿楂樼増鏈紑濮嬶紝褰?VPN 璋冪敤 鍦?Android 9 鍙婃洿楂樼増鏈腑锛屽凡缁忔鏌?code>NET_CAPABILITY_NOT_METERED 鐨勫簲鐢ㄥ皢鏀跺埌鍏充簬 VPN 缃戠粶鑳藉姏鍜屽簳灞傜綉缁滅殑淇℃伅銆?/p> 浠?Android 9 寮€濮嬶紝涓嶅啀鍏佽搴旂敤鐩存帴璇诲彇 渚濊禆杩欎簺鏂囦欢鐨勫叕寮€ API 鍦?Android 9 涓紝鎮ㄤ笉鑳戒粠闈?Activity 鐜涓惎鍔?Activity锛岄櫎闈炴偍浼犻€?Intent 鏍囧織 娉細鍦?Android 7.0锛圓PI 绾у埆 24锛変箣鍓嶏紝鏍囧織瑕佹眰涓€鐩存槸鏈熸湜鐨勮涓哄苟琚己鍒舵墽琛屻€?Android 7.0 涓殑涓€涓敊璇細涓存椂闃绘瀹炴柦鏍囧織瑕佹眰銆?/p> 浠?Android 9 寮€濮嬶紝瀵?strong>绾靛悜 褰撹澶囧浜庢棆杞攣瀹氭ā寮忔椂锛岀敤鎴峰彲灏嗗叾灞忓箷閿佸畾鍒伴《灞傚彲瑙?Activity 鎵€鏀寔鐨勪换浣曟棆杞€?Activity 涓嶅簲鍋囧畾瀹冨皢濮嬬粓浠ョ旱鍚戝憟鐜般€?濡傛灉椤跺眰 Activity 鍙湪鑷姩灞忓箷鏃嬭浆妯″紡涓嬩互澶氱鏃嬭浆鍛堢幇锛屽垯搴斿湪鏃嬭浆閿佸畾妯″紡涓嬫彁渚涚浉鍚岀殑閫夐」锛屾牴鎹?Activity 鐨? 璇锋眰鐗瑰畾灞忓箷鏂瑰悜锛堜緥濡傦紝 鍙湪 Android Manifest 涓紝鎴栦互缂栫▼鏂瑰紡閫氳繃 setRequestedOrientation() 鍦?Activity 绾у埆璁剧疆灞忓箷鏂瑰悜棣栭€夐」銆?/p> 鏃嬭浆閿佸畾妯″紡閫氳繃璁剧疆 WindowManager 鍦ㄥ鐞?Activity 鏃嬭浆鏃朵娇鐢ㄧ殑鐢ㄦ埛鏃嬭浆棣栭€夐」鏉ュ彂鎸ヤ綔鐢ㄣ€?鐢ㄦ埛鏃嬭浆棣栭€夐」鍙兘鍦ㄤ笅鍒楁儏鍐典笅鍙戠敓鍙樻洿銆?璇锋敞鎰忥紝鎭㈠璁惧鐨勮嚜鐒舵棆杞瓨鍦ㄥ亸宸紝瀵逛簬澶栧舰涓庢墜鏈虹被浼肩殑璁惧閫氬父璁剧疆涓虹旱鍚戯細 涓嬭〃鎬荤粨浜嗗父瑙佸睆骞曟柟鍚戠殑鏃嬭浆琛屼负锛?/p> 鍦?Android 6.0 涓紝鎴戜滑鍙栨秷浜嗗 Apache HTTP 瀹㈡埛绔殑鏀寔銆?/p> 姝ゅ彉鏇村澶у鏁颁笉浠?Android 9 鎴栨洿楂樼増鏈负鐩爣鐨勫簲鐢ㄦ病鏈変换浣曞奖鍝嶃€?涓嶈繃锛屾鍙樻洿浼氬奖鍝嶄娇鐢ㄩ潪鏍囧噯 濡傛灉搴旂敤浣跨敤鏄惧紡濮旀墭鍒扮郴缁? 鍦?Android 9 璁惧涓婅繍琛岀殑搴旂敤鍙互閫氳繃璋冪敤 渚嬪锛屽鏋滄偍鐨勫簲鐢ㄦ湁涓€涓敤鏉ュ垏鎹㈠墠缃拰鍚庣疆鎽勫儚澶寸殑鎸夐挳锛屽垯璁惧鍙兘鏈夊涓墠缃垨鍚庣疆鎽勫儚澶村彲渚涢€夋嫨銆?鎮ㄥ簲娴忚涓€涓嬫憚鍍忓ご鍒楄〃锛屾鏌ユ瘡涓憚鍍忓ご鐨勭壒寰侊紝鐒跺悗鍐冲畾鍚戠敤鎴锋樉绀哄摢浜涙憚鍍忓ご銆?/p> Android 9锛圓PI 绾у埆 28锛夊紩鍏ヤ簡涓€浜涙偍鐨勫簲鐢ㄥ彲鍔犱互鍒╃敤鐨勬柊鍔熻兘鍜?API锛屼互鍙婃柊琛屼负鍙樻洿銆傛湰鏂囨杩颁簡灏嗗簲鐢ㄨ縼绉诲埌 Android 9 鐨勪袱涓叧閿樁娈电殑姝ラ锛?/p> 楠岃瘉鎮ㄧ殑鐜版湁搴旂敤鑳藉鍦ㄦ柊鐗堟湰骞冲彴涓婂叏鍔熻兘杩愯銆傚湪姝ら樁娈碉紝鎮ㄤ笉闇€瑕佷娇鐢ㄦ柊鐨?API锛屼篃涓嶉渶瑕佹洿鏀瑰簲鐢ㄧ殑 褰撴偍鍑嗗濂藉埄鐢ㄥ钩鍙扮殑鏂板姛鑳芥椂锛屽皢 濡傛灉鎮ㄦ湁涓€鍙板吋瀹硅澶囷紝鍒欎粠鍒堕€犲晢閭i噷鑾峰彇璁惧鐨?Android 9 绯荤粺闀滃儚锛涚偣鍑绘澶勮幏鍙?Pixel 璁惧鐨勫嚭鍘傞暅鍍忋€傚埛鍐欑郴缁熼暅鍍忕殑涓€鑸鏄庝綅浜庢澶勩€?/p> 鎮ㄨ繕鍙互涓?Android Emulator 涓嬭浇 Android 9 绯荤粺闀滃儚銆傚畠鍒椾簬 SDK 绠$悊鍣ㄧ殑 Android 9 涓嬶紝鏄剧ず涓?Google APIs Intel x86 Atom System Image銆?/p> 娉?/strong>锛欰ndroid 9 妯℃嫙鍣ㄧ郴缁熼暅鍍忓彲鍦?Android Studio 3.1 鍙婃洿楂樼増鏈腑涓嬭浇锛汚ndroid Studio 3.2 鎻愪緵鏈€浣冲吋瀹规€с€傚闇€浜嗚В璇︾粏淇℃伅锛岃鍙傞槄鑾峰彇 Android 9 SDK銆?/p> 杩欎竴姝ョ殑鐩爣鏄‘淇濇偍鐨勭幇鏈夊簲鐢ㄥ湪 Android 9 涓婂彲鐓у父杩愯銆傜敱浜庝竴浜涘钩鍙板彉鏇村彲鑳藉奖鍝嶅簲鐢ㄧ殑琛屼负鏂瑰紡锛屽洜姝ゅ彲鑳介渶瑕佽繘琛屼竴浜涜皟鏁达紝浣嗘偍涓嶉渶瑕佷娇鐢ㄦ柊鐨?API 鎴栨洿鏀? 涓?Android 9 鐨勫吋瀹规€ф祴璇曞鍗婁笌鎮ㄥ噯澶囧彂甯冨簲鐢ㄦ椂鎵ц鐨勬祴璇曞睘浜庡悓涓€绫诲瀷銆傝繖鏃舵湁蹇呰鍥為【涓€涓嬫牳蹇冨簲鐢ㄨ川閲忔寚鍗楀拰娴嬭瘯鏈€浣冲疄璺点€?/p> 涓嶈繃锛屾祴璇曡繕鏈夊彟涓€涓眰闈細Android 9 鍚?Android 骞冲彴寮曞叆浜嗕竴浜涘彉鍖栵紝鍗充究涓嶅 琛?1. 瀵瑰湪 Android 9 璁惧涓婅繍琛岀殑鎵€鏈夊簲鐢ㄩ兘鏈夊奖鍝嶇殑鍏抽敭鍙樺寲銆?/p> 濡傞渶鏌ョ湅閽堝鍦?Android 9 涓婅繍琛岀殑鎵€鏈夊簲鐢ㄧ殑鏇磋灏借涓哄彉鏇村垪琛紝璇峰弬闃呰涓哄彉鏇存枃妗c€?/p> 鏈儴鍒嗚В閲婂浣曢€氳繃灏嗘偍鐨? 闄ゆ彁渚涙柊 API 涔嬪锛屽湪鎮ㄥ皢 娉?/strong>锛氫笂杩版棬鍦ㄧ‘淇濆钩鍙板吋瀹规€х殑姝ラ鏄皢搴旂敤浠?Android 9 涓虹洰鏍囩殑鍏堝喅鏉′欢锛屽洜姝よ鎮ㄥ姟蹇呭厛瀹屾垚杩欎簺姝ラ銆?/p> 鎮ㄥ彲浠ヤ娇鐢?Android Studio 3.1 鎴栨洿楂樼増鏈幏鍙?SDK 杞欢鍖咃紝浠ヤ究鍒╃敤 Android 9 鏋勫缓搴旂敤銆傚鏋滄偍鏆傛椂涓嶉渶瑕?Android 9 涓殑鏂板姛鑳斤紝鍙兂閽堝璇ュ钩鍙扮増鏈繘琛岀紪璇戯紝鎮ㄥ彲浠ヤ娇鐢?Android Studio 3.1銆侫ndroid Studio 3.2 鎻愪緵浜嗗 Android 9 鍔熻兘鐨勫叏闈㈡敮鎸併€?/p> 瑕佽缃换涓€鐗堟湰鐨?Android Studio锛岃鎸夌収璁剧疆 Preview SDK 涓粙缁嶇殑姝ラ鎿嶄綔銆?/p> 瀹屾垚浠ヤ笂鍑嗗宸ヤ綔鍚庯紝鎮ㄥ氨鍙互鏋勫缓搴旂敤锛岀劧鍚庡鍏跺仛杩涗竴姝ユ祴璇曪紝纭繚浠?Android 9锛圓PI 绾у埆 28锛変负鐩爣骞冲彴鏃跺畠鑳芥甯稿伐浣溿€傝繖鏃舵湁蹇呰鍐嶆鍥為【涓€涓嬫牳蹇冨簲鐢ㄨ川閲忔寚鍗楀拰娴嬭瘯鏈€浣冲疄璺点€?/p> 濡傛灉鎮ㄦ瀯寤哄簲鐢ㄦ椂灏? 琛?2 鍒楀嚭浜嗚繖浜涘彉鍖栦互鍙婂彲鑾峰緱鏇村淇℃伅鐨勯摼鎺ャ€?/p> 琛?2. 濡傞渶鏌ョ湅閽堝浠?Android 9 涓虹洰鏍囩殑搴旂敤鐨勬洿璇﹀敖琛屼负鍙樻洿鍒楄〃锛岃鍙傞槄琛屼负鍙樻洿鏂囨。銆?/p> 瑕佹帰绱?Android 9 涓殑鏂板姛鑳藉拰 API锛岃鍙傞槄 Android 9 鍔熻兘鍜?API銆?/p> 聽 Android 9锛圓PI 绾у埆 28锛夊紩鍏ヤ簡涓€浜涙柊鍔熻兘鏉ユ敼杩涜澶囩數婧愮鐞嗐€?杩欎簺鍙樺寲锛岃繛鍚屽厛鍓嶇増鏈腑宸茬粡瀛樺湪鐨勫姛鑳斤紝鏈夊姪浜庣‘淇濆皢绯荤粺璧勬簮鎻愪緵缁欐渶闇€瑕佸畠浠殑搴旂敤銆?/p> 鐢垫簮绠$悊鍔熻兘鍙互鍒嗕负涓や釜绫诲埆锛?/p> 搴旂敤寰呮満缇ょ粍 绯荤粺灏嗘牴鎹敤鎴风殑浣跨敤妯″紡闄愬埗搴旂敤瀵?CPU 鎴栫數姹犵瓑璁惧璧勬簮鐨勮闂€?杩欐槸 Android 9 涓柊澧炵殑涓€椤瑰姛鑳姐€?/p> 鐪佺數妯″紡鏀硅繘 寮€鍚渷鐢垫ā寮忓悗锛岀郴缁熶細瀵规墍鏈夊簲鐢ㄦ柦鍔犻檺鍒躲€?杩欐槸涓€椤瑰凡鏈夌殑鍔熻兘锛屼絾鍦?Android 9 涓緱鍒颁簡鏀硅繘銆?/p> 娉細杩欎簺鍙樺寲閫傜敤浜庢墍鏈夊簲鐢紝鏃犺瀹冧滑鏄惁浠?Android 9 涓虹洰鏍囥€?/p> Android 9 寮曞叆浜嗕竴椤规柊鐨勭數姹犵鐞嗗姛鑳斤紝鍗冲簲鐢ㄥ緟鏈虹兢缁勩€?搴旂敤寰呮満缇ょ粍鍙互鍩轰簬搴旂敤鏈€杩戜娇鐢ㄦ椂闂村拰浣跨敤棰戠巼锛屽府鍔╃郴缁熸帓瀹氬簲鐢ㄨ姹傝祫婧愮殑浼樺厛绾с€?鏍规嵁浣跨敤妯″紡锛屾瘡涓簲鐢ㄩ兘浼氬綊绫诲埌浜斾釜浼樺厛绾х兢缁勪箣涓€涓€?绯荤粺灏嗘牴鎹簲鐢ㄦ墍灞炵殑缇ょ粍闄愬埗姣忎釜搴旂敤鍙互璁块棶鐨勮澶囪祫婧愩€?/p> 浜斾釜缇ょ粍鎸夌収浠ヤ笅鐗规€у皢搴旂敤鍒嗙粍锛?/p> 娲昏穬 濡傛灉鐢ㄦ埛褰撳墠姝e湪浣跨敤搴旂敤锛屽簲鐢ㄥ皢琚綊鍒扳€滄椿璺冣€濈兢缁勪腑锛屼緥濡傦細 濡傛灉搴旂敤澶勪簬鈥滄椿璺冣€濈兢缁勶紝绯荤粺涓嶄細瀵瑰簲鐢ㄧ殑浣滀笟銆佹姤璀︽垨 FCM 娑堟伅鏂藉姞浠讳綍闄愬埗銆?/p> 宸ヤ綔闆?/p> 濡傛灉搴旂敤缁忓父杩愯锛屼絾褰撳墠鏈浜庢椿璺冪姸鎬侊紝瀹冨皢琚綊鍒扳€滃伐浣滈泦鈥濈兢缁勪腑銆?渚嬪锛岀敤鎴峰湪澶ч儴鍒嗘椂闂撮兘鍚姩鐨勬煇涓ぞ浜ゅ獟浣撳簲鐢ㄥ彲鑳藉氨灞炰簬鈥滃伐浣滈泦鈥濈兢缁勩€?濡傛灉搴旂敤琚棿鎺ヤ娇鐢紝瀹冧滑涔熶細琚崌绾у埌鈥滃伐浣滈泦鈥濈兢缁勪腑 銆?/p> 濡傛灉搴旂敤澶勪簬鈥滃伐浣滈泦鈥濈兢缁勶紝绯荤粺浼氬瀹冭繍琛屼綔涓氬拰瑙﹀彂鎶ヨ鐨勮兘鍔涙柦鍔犺交搴﹂檺鍒躲€?濡傞渶浜嗚В璇︾粏淇℃伅锛岃鍙傞槄鐢垫簮绠$悊闄愬埗銆?/p> 甯哥敤 濡傛灉搴旂敤浼氬畾鏈熶娇鐢紝浣嗕笉鏄瘡澶╅兘蹇呴』浣跨敤锛屽畠灏嗚褰掑埌鈥滃父鐢ㄢ€濈兢缁勪腑銆?渚嬪锛岀敤鎴峰湪鍋ヨ韩鎴胯繍琛岀殑鏌愪釜閿荤偧璺熻釜搴旂敤鍙兘灏卞睘浜庘€滃父鐢ㄢ€濈兢缁勩€?/p> 濡傛灉搴旂敤澶勪簬鈥滃父鐢ㄢ€濈兢缁勶紝绯荤粺灏嗗瀹冭繍琛屼綔涓氬拰瑙﹀彂鎶ヨ鐨勮兘鍔涙柦鍔犺緝寮虹殑闄愬埗锛屼篃浼氬楂樹紭鍏堢骇 FCM 娑堟伅鐨勬暟閲忚瀹氶檺鍒躲€?濡傞渶浜嗚В璇︾粏淇℃伅锛岃鍙傞槄鐢垫簮绠$悊闄愬埗銆?/p> 鏋佸皯浣跨敤 濡傛灉搴旂敤涓嶇粡甯镐娇鐢紝閭d箞瀹冨睘浜庘€滄瀬灏戜娇鐢ㄢ€濈兢缁勩€?渚嬪锛岀敤鎴蜂粎鍦ㄥ叆浣忛厭搴楁湡闂磋繍琛岀殑閰掑簵搴旂敤灏卞彲鑳藉睘浜庘€滄瀬灏戜娇鐢ㄢ€濈兢缁勩€?/p> 濡傛灉搴旂敤澶勪簬鈥滄瀬灏戜娇鐢ㄢ€濈兢缁勶紝绯荤粺灏嗗瀹冭繍琛屼綔涓氥€佽Е鍙戣鎶ュ拰鎺ユ敹楂樹紭鍏堢骇 FCM 娑堟伅鐨勮兘鍔涙柦鍔犱弗鏍奸檺鍒躲€傜郴缁熻繕浼氶檺鍒跺簲鐢ㄨ繛鎺ュ埌缃戠粶鐨勮兘鍔涖€?濡傞渶浜嗚В璇︾粏淇℃伅锛岃鍙傞槄鐢垫簮绠$悊闄愬埗銆?/p> 浠庢湭浣跨敤 瀹夎浣嗘槸浠庢湭杩愯杩囩殑搴旂敤浼氳褰掑埌鈥滀粠鏈娇鐢ㄢ€濈兢缁勪腑銆?绯荤粺浼氬杩欎簺搴旂敤鏂藉姞鏋佸己鐨勯檺鍒躲€?/p> 绯荤粺浼氬姩鎬佸湴灏嗘瘡涓簲鐢ㄥ綊绫诲埌鏌愪釜浼樺厛绾х兢缁勶紝骞舵牴鎹渶瑕侀噸鏂板綊绫汇€?绯荤粺鍙兘浼氫緷闈犳煇涓娇鐢ㄦ満鍣ㄥ涔犵殑棰勫姞杞藉簲鐢ㄧ‘瀹氭瘡涓簲鐢ㄧ殑浣跨敤鍙兘鎬э紝骞跺皢搴旂敤褰掔被鍒板悎閫傜殑缇ょ粍銆?濡傛灉璁惧涓婁笉瀛樺湪绯荤粺搴旂敤锛岀郴缁熼粯璁ゅ皢鍩轰簬搴旂敤鐨勬渶杩戜娇鐢ㄦ椂闂村瀹冧滑杩涜鎺掑簭銆?鏇翠负娲昏穬鐨勫簲鐢ㄥ皢琚綊绫诲埌涓哄簲鐢ㄦ彁渚涙洿楂樹紭鍏堢骇鐨勭兢缁勶紝浠庤€岃搴旂敤鍙互浣跨敤鏇村绯荤粺璧勬簮銆?鍏蜂綋鑰岃█锛岀兢缁勫喅瀹氬簲鐢ㄨ繍琛屼綔涓氱殑棰戠巼锛屽簲鐢ㄥ彲浠ヨЕ鍙戞姤璀︾殑棰戠巼锛屼互鍙婂簲鐢ㄥ彲浠ユ帴鏀堕珮浼樺厛绾?Firebase 浜戜俊鎭紶閫?(FCM) 娑堟伅鐨勯鐜囥€?杩欎簺闄愬埗浠呭湪璁惧浣跨敤鐢垫睜鐢甸噺鏃堕€傜敤锛屽鏋滆澶囨鍦ㄥ厖鐢碉紝绯荤粺涓嶄細瀵瑰簲鐢ㄦ柦鍔犺繖浜涢檺鍒躲€?/p> 姣忎釜鍒堕€犲晢閮藉彲浠ヨ瀹氳嚜宸辩殑鏍囧噯鏉ュ綊绫婚潪娲昏穬搴旂敤銆?鎮ㄤ笉搴斿綋灏濊瘯褰卞搷搴旂敤鎵€灞炵殑缇ょ粍銆?鐩稿弽锛屾偍搴斿綋灏嗙簿鍔涙斁鍦ㄧ‘淇濆簲鐢ㄥ湪鎵€灞炵殑缇ょ粍鍐呰壇濂借繍琛屼笂銆?鎮ㄧ殑搴旂敤鍙互閫氳繃璋冪敤鏂板嚱鏁? 娉細浣嶄簬 浣庣數鑰楁ā寮忕櫧鍚嶅崟涓殑搴旂敤涓嶉€傜敤鍩轰簬搴旂敤寰呮満缇ょ粍鐨勯檺鍒躲€?/p> 濡傛灉鎮ㄧ殑搴旂敤宸查伒寰綆鐢佃€楁ā寮忓拰搴旂敤寰呮満妯″紡鐨勬渶浣冲疄璺碉紝閭d箞澶勭悊鏂扮殑鐢垫簮绠$悊鍔熻兘涓嶅簲鏄毦浜嬨€?涓嶈繃锛屼箣鍓嶆甯歌繍琛岀殑涓€浜涘簲鐢ㄨ涓虹幇鍦ㄥ彲鑳戒細寮曡捣闂銆?/p> 绫讳技鍦帮紝濡傛灉搴旂敤鍦ㄦ敹鍒伴珮浼樺厛绾?FCM 娑堟伅鏃朵笉鏄剧ず閫氱煡锛岄偅涔堝畠涓嶄細鍚戠敤鎴锋彁渚涗笌搴旂敤浜や簰鐨勬満浼氾紝涔熶笉浼氬€熸鍗囩骇鍒扳€滄椿璺冣€濈兢缁勪腑銆?浜嬪疄涓婏紝楂樹紭鍏堢骇 FCM 娑堟伅鐨勫敮涓€棰勬湡鐩殑鏄悜鐢ㄦ埛鎺ㄩ€侀€氱煡锛屽洜姝わ紝杩欑鎯呭喌姘歌繙閮戒笉搴斿彂鐢熴€?濡傛灉鎮ㄥ湪鏌愭潯 FCM 娑堟伅涓嶈Е鍙戠敤鎴蜂氦浜掓椂灏嗗叾閿欒鍦版爣璁颁负楂樹紭鍏堢骇锛屽畠鍙兘寮曡捣鍏朵粬涓嶈壇鍚庢灉锛涗緥濡傦紝瀹冨彲鑳藉鑷存偍鐨勫簲鐢ㄨ€楀敖閰嶉锛屽鑷寸湡姝g揣鎬ョ殑 FCM 娑堟伅琚涓轰竴鑸紭鍏堢骇銆?/p> 娉?/strong>锛氬鏋滅敤鎴烽噸澶嶅拷鐣ヤ簡鏌愪釜閫氱煡锛岀郴缁熷皢鍚戠敤鎴锋彁渚涙湭鏉ラ樆姝㈣閫氱煡鐨勯€夐」銆?璇蜂笉瑕佷负浜嗚鎮ㄧ殑搴旂敤澶勪簬鈥滄椿璺冣€濈兢缁勮€屽悜鐢ㄦ埛婊ュ彂閫氱煡锛?/p> 濡傛灉搴旂敤鍒嗕负澶氫釜杞欢鍖咃紝閭d箞杩欎簺杞欢鍖呭彲鑳藉浜庝笉鍚岀殑缇ょ粍涓紝杩涜€屾嫢鏈変笉鍚岀殑璁块棶鏉冮檺绾у埆銆?璇峰姟蹇呭杞欢鍖呰褰掔被鍒板悇涓兢缁勭殑姝ょ被搴旂敤杩涜娴嬭瘯锛屼互渚跨‘淇濆簲鐢ㄨ涓烘甯搞€?/p> Android 9 瀵圭渷鐢垫ā寮忚繘琛屼簡澶氬鏀硅繘銆?璁惧鍒堕€犲晢鍙互鍐冲畾鏂藉姞鐨勭‘鍒囬檺鍒躲€?渚嬪锛屽湪 AOSP 鏋勫缓涓紝绯荤粺浼氬簲鐢ㄤ互涓嬮檺鍒讹細 姝ゅ锛岃繕鏈変竴浜涜澶囩壒瀹氱殑鍏朵粬鐢垫簮浼樺寲銆?濡傞渶浜嗚В璇︾粏淇℃伅锛岃鍙傞槄闄勫綍锛?鐢垫簮绠$悊闄愬埗銆?/p> 涓€濡傛棦寰€锛屼竴绉嶆瘮杈冨ソ鐨勫仛娉曟槸鍦ㄧ渷鐢垫ā寮忔縺娲绘椂瀵规偍鐨勫簲鐢ㄨ繘琛屾祴璇曘€?鎮ㄥ彲浠ラ€氳繃璁惧鐨?Settings > Battery Saver 鐣岄潰鎵嬪姩寮€鍚渷鐢垫ā寮忋€?/p> 鏂扮殑鐢垫簮绠$悊鍔熻兘浼氬奖鍝嶅湪 Android 9 璁惧涓婅繍琛岀殑鎵€鏈夊簲鐢紝鏃犺搴旂敤鏄惁浠?Android 9 涓虹洰鏍囥€傚姟蹇呯‘淇濇偍鐨勫簲鐢ㄥ湪杩欎簺璁惧涓婅涓烘甯搞€?/p> 鍔″繀鍦ㄥ悇绉嶆潯浠朵笅娴嬭瘯鎮ㄧ殑搴旂敤鐨勪富瑕佺敤渚嬶紝浠ヤ究浜嗚В鐢垫簮绠$悊鍔熻兘褰兼涔嬮棿鐨勪氦浜掋€?鎮ㄥ彲浠ヤ娇鐢?Android 璋冭瘯妗ュ懡浠ゅ紑鍏虫煇浜涘姛鑳姐€?/p> 鎮ㄥ彲浠ヤ娇鐢?Android 璋冭瘯妗?shell 鍛戒护娴嬭瘯澶氫釜鐢垫簮绠$悊鍔熻兘銆?/p> 濡傞渶浜嗚В浣跨敤 ADB 灏嗚澶囩疆浜庝綆鐢佃€楁ā寮忕殑淇℃伅锛岃鍙傞槄鍦ㄤ綆鐢佃€楁ā寮忓拰搴旂敤寰呮満妯″紡涓嬭繘琛屾祴璇曘€?/p> 搴旂敤寰呮満缇ょ粍 鎮ㄥ彲浠ヤ娇鐢?ADB 涓烘偍鐨勫簲鐢ㄦ墜鍔ㄦ寚瀹氬簲鐢ㄥ緟鏈虹兢缁勩€?瑕佹洿鏀瑰簲鐢ㄧ殑缇ょ粍锛岃浣跨敤浠ヤ笅鍛戒护锛?/p> $ adb shell am set-standby-bucket packagename active|working_set|frequent|rare 鎮ㄨ繕鍙互浣跨敤璇ュ懡浠や竴娆¤缃涓蒋浠跺寘锛?/p> $ adb shell am set-standby-bucket package1 bucket1 package2 bucket2... 瑕佹鏌ュ簲鐢ㄥ浜庡摢涓€涓兢缁勶紝璇疯繍琛屼互涓嬪懡浠わ細 $ adb shell am get-standby-bucket [packagename] 濡傛灉鎮ㄤ笉浼犻€?packagename 鍙傛暟锛屽懡浠ゅ皢鍒楀嚭鎵€鏈夊簲鐢ㄧ殑缇ょ粍銆?搴旂敤杩樺彲浠ヨ皟鐢ㄦ柊鍑芥暟 鐪佺數妯″紡 鍙互浣跨敤澶氫釜鍛戒护娴嬭瘯鎮ㄧ殑搴旂敤鍦ㄤ綆鐢甸噺鏉′欢涓嬬殑琛屼负銆?/p> 娉細鎮ㄨ繕鍙互浣跨敤璁惧鐨?Settings > Battery saver 鐣岄潰灏嗚澶囩疆浜庣渷鐢垫ā寮忋€?/p> 瑕佹ā鎷熸嫈涓嬭澶囩數婧愭椂鐨勬儏褰紝璇蜂娇鐢ㄤ互涓嬪懡浠わ細 $ adb shell dumpsys battery unplug 瑕佹祴璇曡澶囧湪浣庣數閲忔潯浠朵笅鐨勮涓猴紝璇蜂娇鐢ㄤ互涓嬪懡浠わ細 $ adb shell settings put global low_power 1 瀹屾垚娴嬭瘯鍚庯紝鎮ㄥ彲浠ヤ娇鐢ㄤ互涓嬪懡浠ゆ挙娑堣澶囩殑鎵嬪姩璁剧疆锛?/p> $ adb shell dumpsys battery reset 聽 Android 9锛圓PI 绾у埆 28锛夊紩鍏ヤ簡閽堝闈?SDK 鎺ュ彛鐨勪娇鐢ㄩ檺鍒讹紝鏃犺鏄洿鎺ヤ娇鐢ㄨ繕鏄€氳繃鍙嶅皠鎴?JNI 闂存帴浣跨敤銆?鏃犺搴旂敤鏄紩鐢ㄩ潪 SDK 鎺ュ彛杩樻槸灏濊瘯浣跨敤鍙嶅皠鎴?JNI 鑾峰彇鍏跺彞鏌勶紝鍧囬€傜敤杩欎簺闄愬埗銆?鏈夊叧姝ゅ喅瀹氱殑璇︾粏淇℃伅锛岃鍙傞槄閫氳繃鍑忓皯浣跨敤闈?SDK 鎺ュ彛鎻愬崌绋冲畾鎬с€?/p> 涓€鑸潵璇达紝搴旂敤搴斿綋浠呬娇鐢?SDK 涓寮忚褰曠殑绫汇€?鐗瑰埆鏄紝杩欐剰鍛崇潃锛屽湪鎮ㄩ€氳繃鍙嶅皠涔嬬被鐨勮涔夋潵鎿嶄綔鏌愪釜绫绘椂锛屼笉搴旀墦绠楄闂?SDK 涓湭鍒楀嚭鐨勫嚱鏁版垨瀛楁銆?/p> 浣跨敤姝ょ被鍑芥暟鎴栧瓧娈靛緢鍙兘浼氱牬鍧忔偍鐨勫簲鐢ㄣ€?/p> 涓€鑸潵璇达紝SDK 鎺ュ彛鏄寚鍦?Android 妗嗘灦杞欢鍖呯储寮曚腑璁板綍鐨勬帴鍙c€?瀵归潪 SDK 鎺ュ彛鐨勫鐞嗘槸 API 鎶借薄鍖栫殑瀹炵幇缁嗚妭锛涘叾浼氶殢鏃舵洿鏀癸紝鎭曚笉鍙﹁閫氱煡銆?/p> Android 9 寮曞叆浜嗛拡瀵归潪 SDK 鎺ュ彛鐨勪娇鐢ㄩ檺鍒讹紝鏃犺鏄洿鎺ヤ娇鐢ㄨ繕鏄€氳繃鍙嶅皠鎴?JNI 闂存帴浣跨敤銆?鏃犺搴旂敤鏄紩鐢ㄩ潪 SDK 鎺ュ彛杩樻槸灏濊瘯浣跨敤鍙嶅皠鎴?JNI 鑾峰彇鍏跺彞鏌勶紝鍧囬€傜敤杩欎簺闄愬埗銆?/p> 鎮ㄥ彲浠ラ€氳繃涓嬭浇 Android 9 瀵规偍鐨勫簲鐢ㄨ繘琛屾祴璇曘€傜郴缁熷皢鎵撳嵃鏃ュ織锛屽鏋滄偍鐨勫簲鐢ㄨ闂煇浜涒€滃垪鍏ョ伆鍚嶅崟鐨勨€濋潪 SDK 鎺ュ彛锛岀郴缁熻繕鍙兘鏄剧ず toast銆?濡傛灉鎮ㄧ殑搴旂敤璋冪敤鈥滃垪鍏ラ粦鍚嶅崟鐨勨€濋潪 SDK 鎺ュ彛锛岀郴缁熷皢寮曞彂閿欒銆?/p> 娉ㄦ剰 toast锛屽畠浼氭彁閱掓偍娉ㄦ剰琚缓璁鐢ㄧ殑鎺ュ彛銆?姝ゅ锛岀‘淇濇鏌ュ簲鐢ㄧ殑鏃ュ織娑堟伅锛屽叾涓寘鍚叧浜庡簲鐢ㄦ墍璁块棶鐨勯潪 SDK 鎺ュ彛鐨勬洿澶氳缁嗕俊鎭紝鍖呮嫭浠?Android 杩愯鏃舵墍浣跨敤鐨勬牸寮忓垪鍑虹殑澹版槑绫汇€佸悕绉板拰绫诲瀷銆?鏃ュ織娑堟伅杩樿鏄庝簡璁块棶鏂规硶锛氱洿鎺ャ€侀€氳繃鍙嶅皠鎴栬€呴€氳繃 JNI銆?鏈€鍚庯紝鏃ュ織娑堟伅鏄剧ず璋冪敤鐨勯潪 SDK 鎺ュ彛灞炰簬鐏板悕鍗曡繕鏄粦鍚嶅崟銆?/p> 鎮ㄥ彲浠ヤ娇鐢? Accessing hidden field Landroid/os/Message;->flags:I (light greylist, JNI) 鍒楀叆鐏板悕鍗曠殑闈?SDK 鎺ュ彛鍖呭惈鍙互鍦?Android 9 涓户缁伐浣滐紝浣嗘垜浠笉鑳戒繚璇佸湪鏈潵鐗堟湰鐨勫钩鍙颁腑鑳藉缁х画璁块棶鐨勫嚱鏁板拰瀛楁銆?濡傛灉鐢变簬鏌愮鍘熷洜锛屾偍涓嶈兘瀹炵幇鍒楀叆鐏板悕鍗曠殑 API 鐨勬浛浠g瓥鐣ワ紝鍒欏彲浠ユ彁浜ら敊璇紝浠ヤ究璇锋眰閲嶆柊鑰冭檻姝ら檺鍒躲€?/p> 鏌愪簺 API 浣嶄簬鈥滈粦鍚嶅崟鈥濅腑锛屾瘮鍒楀叆鐏板悕鍗曠殑鍑芥暟鏇翠负涓ユ牸銆?鍒楀叆榛戝悕鍗曠殑鍑芥暟浼氫娇搴旂敤寮曞彂濡備繚鐣欓潪 SDK 鎺ュ彛鐨勭粨鏋滈儴鍒嗙殑琛ㄤ腑鎵€鍒楃殑寮傚父銆?/p> Android 9 鏀寔闈?SDK 鎺ュ彛鐨? 涓嬭〃璇︾粏璇存槑浜嗗悇绉嶈闂柟寮忓強鍏剁浉搴旂殑缁撴灉銆?/p> 浠€涔堟槸闈?SDK 鎺ュ彛锛?/strong> 瀹冧滑鏄笉灞炰簬瀹樻柟 Android SDK 鐨?Java 瀛楁鍜屽嚱鏁般€?瀹冧滑灞炰簬瀹炵幇璇︽儏锛屽鏈夋洿鏀癸紝鎭曚笉鍙﹁閫氱煡銆?/p> Android 9 涓湁浠€涔堝彉鍖栵紵 鎴戜滑鎵撶畻璁惧畾瀵逛娇鐢ㄩ潪 SDK 鎺ュ彛鐨勯檺鍒躲€?杩欎簺闄愬埗鐨勫舰寮忓悇涓嶇浉鍚岋紙璇峰弬闃呭浣曞湪搴旂敤杩愯鏃舵娴嬮潪 SDK 鎺ュ彛浣跨敤锛燂級锛屼絾鏄鏋滄偍浣跨敤闈?SDK 鎺ュ彛锛屽畠浠殑褰㈠紡鍙兘褰卞搷鎮ㄧ殑搴旂敤鐨勮涓恒€?/p> 濡傛灉鎴戝綋鍓嶄娇鐢ㄩ潪 SDK 鎺ュ彛锛屾垜搴斿綋鍦ㄥ摢璇锋眰锛?/strong> 璇锋彁浜ゅ姛鑳借姹傦紝骞舵彁渚涙偍鐨勭敤渚嬬殑璇︾粏淇℃伅銆?/p> 鐢ㄤ簬闄愬埗闈?SDK 鎺ュ彛鐨勪笉鍚屽悕鍗曟湁鍝簺锛屽畠浠湪闄愬埗鎬ц涓烘柟闈㈢殑瀵瑰簲鍚箟鏄粈涔堬紵 涓嬮潰鏄悕鍗曠被鍨嬶細 鎴戠殑搴旂敤浣跨敤浜嗚澶氱涓夋柟搴擄紝杩欒鎴戝緢闅炬煡鎵句换浣曟鍦ㄤ娇鐢ㄧ殑涓嶅叕寮€ API銆?鏈夋病鏈夌紪璇戞椂宸ュ叿鍙互甯姪鎴戣窡韪繚瑙勶紵 鎮ㄥ彲浠ュ皾璇?AOSP 涓彁渚涚殑闈欐€佸垎鏋愬伐鍏?veridex銆?/p> 濡備綍鍦ㄥ簲鐢ㄨ繍琛屾椂妫€娴嬮潪 SDK 鎺ュ彛浣跨敤锛?/strong> 灏嗘墦鍗颁竴鏉? Google 濡備綍纭繚閫氳繃 Issue Tracker 鎹曡幏鎵€鏈夊簲鐢ㄧ殑闇€姹傦紵 鎴戜滑鏈€鍒濋€氳繃瀵瑰簲鐢ㄨ繘琛岄潤鎬佸垎鏋愮‘瀹氫簡绉嶅瓙鍚嶅崟锛屽苟杈呬互涓嬪垪鎺柦锛?/p> 濡備綍鍚敤瀵归潪 SDK API 鐨勮闂紵 鍙互浣跨敤 adb 鍦ㄥ紑鍙戣澶囦笂鍚敤瀵归潪 SDK API 鐨勮闂€?/p> 濡傛灉鎮ㄦ兂瑕佸湪 adb logcat 杈撳嚭涓煡鐪?API 璁块棶淇℃伅锛屽垯鍙互鏇存敼 API 寮哄埗鏀跨瓥锛?/p> 瑕佸皢鍏堕噸缃负榛樿璁剧疆锛岃鎵ц浠ヤ笅鎿嶄綔锛?/p> 杩欎簺鍛戒护涓嶈姹傚凡鍙栧緱 root 鏉冮檺鐨勮澶囥€?/p> 缁欏畾鏁存暟鐨勫惈涔夊涓嬫墍绀猴細 Android 9 鐗堟湰鏋勫缓涓殑娣辩伆鍚嶅崟鍖呭惈浠€涔堬紵 娣辩伆鍚嶅崟鍖呭惈鎴戜滑鍦ㄥ紑鍙戞湡闂存湭鐪嬪埌浣跨敤锛屼絾鏄垜浠彲鑳藉凡缁忓拷瑙嗙殑鍑芥暟/瀛楁銆?鍒楀叆娣辩伆鍚嶅崟鐨勫嚱鏁?瀛楁鏄偅浜涗笌 SDK 鍜屾祬鐏板悕鍗曚腑鐨勫叕寮€鎺ュ彛绱у瘑鐩稿叧鐨勫嚱鏁?瀛楁銆?/p> 鐏板悕鍗?榛戝悕鍗曚綅浜庝粈涔堝湴鏂癸紵 瀹冧滑浣滀负骞冲彴鐨勪竴閮ㄥ垎鏋勫缓銆?鎮ㄥ彲浠ュ湪姝ゅ鎵惧埌棰勬瀯寤烘潯鐩細 姝ゅ锛屾鍚嶅崟杩樺寘鍚祬鐏?API 鐨?SDK 28 鍚嶅崟銆?/p> 榛戝悕鍗曞拰娣辩伆鍚嶅崟鍦ㄦ瀯寤烘椂琛嶇敓鑰屾潵銆?鎴戜滑宸叉坊鍔犱簡涓€涓彲浠ュ湪 AOSP 涓婄敓鎴愬悕鍗曠殑鏋勫缓瑙勫垯銆?瀹冧笌 P 涓殑榛戝悕鍗曚笉鍚岋紝浣嗘槸閲嶅彔姣旇緝鍚堢悊銆?寮€鍙戣€呭彲浠ヤ笅杞?AOSP锛岀劧鍚庝娇鐢ㄤ互涓嬪懡浠ょ敓鎴愰粦鍚嶅崟锛?/p> 鐒跺悗锛屽彲浠ュ湪浠ヤ笅浣嶇疆鎵惧埌鏂囦欢锛?/p> 杩欎簺鍚嶅崟鐨勯€傚綋澶у皬鏄灏戯紵 鍚嶅崟澶у皬鐨勮繎浼煎€煎涓嬫墍绀猴細 鎴戝彲浠ュ湪绯荤粺闀滃儚涓殑浠€涔堝湴鏂规壘鍒伴粦鍚嶅崟/鐏板悕鍗曪紵 瀹冧滑缂栫爜鍦ㄥ钩鍙?dex 鏂囦欢鐨勫瓧娈靛拰鍑芥暟璁块棶鏍囧織浣嶄腑銆?绯荤粺闀滃儚涓病鏈夊崟鐙殑鏂囦欢鍖呭惈杩欎簺鍚嶅崟銆?/p> 榛戝悕鍗?鐏板悕鍗曞湪閲囩敤鐩稿悓 Android 鐗堟湰鐨勫師濮嬭澶囧埗閫犲晢璁惧涓婃槸鍚︾浉鍚岋紵 鐩稿悓锛屽師濮嬭澶囧埗閫犲晢鍙互鍚戦粦鍚嶅崟涓坊鍔犺嚜宸辩殑 API锛屼絾鏃犳硶浠庡師濮嬬殑/AOSP 榛戝悕鍗曟垨鐏板悕鍗曚腑绉婚櫎鏉$洰銆?CDD 鍙互闃叉姝ょ被鍙樺寲锛孋TS (Compatibility Test Suite) 娴嬭瘯鍙互纭繚 Android 杩愯鏃跺己鍒舵墽琛屽悕鍗曘€?/p> 鍘熺敓浠g爜涓闈?NDK 鎺ュ彛鏄惁鏈変换浣曢檺鍒讹紵 SDK 娑电洊 Java 璇█銆?瀵逛簬鍘熺敓 C/C++ 浠g爜鐨?NDK锛屾垜浠湪 Android Nougat 涓畬鎴愪簡姝ゆ搷浣溿€?璇峰弬闃咃細 鍦?Android N 涓娇鐢ㄤ笉鍏紑 C/C++ 绗﹀彿闄愬埗鎻愬崌绋冲畾鎬?/p> 浣犱滑鏈夋病鏈変换浣曢檺鍒?dex2oat 鎴?dex 鏂囦欢鎿嶄綔鐨勮鍒掞紵 鎴戜滑娌℃湁闄愬埗璁块棶 dex2oat 浜岃繘鍒舵枃浠剁殑鏈夋晥璁″垝锛屼絾鏄垜浠笉鍑嗗璁?dex 鏂囦欢鏍煎紡淇濇寔绋冲畾锛屾垨璁╁叕寮€鎺ュ彛瓒呰秺鍦?Dalvik 鍙墽琛屾枃浠舵牸寮忎腑鍏紑鎸囧畾鐨勯儴鍒嗐€?鎴戜滑淇濈暀闅忔椂淇敼鎴栨秷闄?dex2oat 浠ュ強 dex 鏍煎紡鏈寚瀹氶儴鍒嗙殑鏉冨埄銆?鍙﹁娉ㄦ剰锛宒ex2oat 鐢熸垚鐨勮鐢熸枃浠讹紙渚嬪锛宱dex锛堜篃绉颁负 oat锛夈€乿dex 鍜?cdex锛夊叏閮芥槸鏈寚瀹氭牸寮忋€?/p> 濡傛灉鏌愪釜鍏抽敭鐨?3p SDK锛堝挨鍏舵槸浠g爜娣锋穯宸ュ叿锛夋棤娉曢樆姝娇鐢ㄩ潪 SDK 鎺ュ彛锛屼絾鍗存壙璇轰繚鎸佷笌鏈潵鐨?Android 鐗堟湰鍏煎锛岃鎬庝箞鍔烇紵Android 浼氭斁寮冭鍛婂悧锛?/strong> 鎴戜滑娌℃湁鎸?SDK 鏀惧純鍏煎鎬ц姹傜殑璁″垝銆?濡傛灉 SDK 鍚堜綔浼欎即鎰熷埌浠栦滑鏃犳硶淇濇寔涓庡綋鍓嶇殑鐧藉悕鍗曞拰鐏板悕鍗?API 闆嗗吋瀹癸紝浠栦滑搴斿綋鎻愪氦閿欒璇锋眰锛岃姹備粬浠渶瑕佺殑闈?SDK 鍑芥暟銆?/p> 娉細瀵逛簬 Android 9锛屾垜浠病鏈夎鍒掗檺鍒剁洰鍓嶆鐢变换浣?Android 搴旂敤鎴?SDK 浣跨敤鐨勪换浣曢潪 SDK 鎺ュ彛锛屼絾鍦ㄥ皢鏉ワ紝褰撴垜浠涓哄瓨鍦ㄩ€傜敤鐨?SDK 鏇夸唬鑰呮椂锛屾垜浠細璁″垝寮€濮嬫柦鍔犵洰鏍?SDK 闄愬埗銆?璇锋敞鎰忥紝鐢变簬浣跨敤闈?SDK 鍜岄潪 NDK 鎺ュ彛锛屽苟涓斿繀椤婚€傚簲锛屾瘡骞村叾涓殑璁稿 SDK 閮戒細閬埌鐮村潖銆?/p> 闈?SDK 鎺ュ彛闄愬埗閫傜敤浜庡寘鎷郴缁熷拰绗笁鏂瑰簲鐢ㄥ湪鍐呯殑鎵€鏈夊簲鐢紝杩樻槸浠呴€傜敤浜庣涓夋柟搴旂敤锛?/strong> 閫傜敤浜庢墍鏈夊簲鐢紝浣嗘槸鎴戜滑浼氳眮鍏嶄娇鐢ㄥ钩鍙板瘑閽ョ缃茬殑搴旂敤锛屽苟涓旀垜浠篃鏈変竴涓拡瀵圭郴缁熼暅鍍忓簲鐢ㄧ殑杞欢鍖呯櫧鍚嶅崟銆?璇锋敞鎰忥紝杩欎簺璞佸厤浠呴€傜敤浜庣郴缁熼暅鍍忎腑鐨勫簲鐢紙鎴栨洿鏂扮殑绯荤粺闀滃儚搴旂敤锛夈€?鍚嶅崟浠呯敤浜庨拡瀵逛笉鍏紑骞冲彴 API 鑰屼笉鏄?SDK API锛堝嵆锛? 涓€浜涘紑鍙戣€呭凡缁忓彂甯冧笉鍏紑 API 闄愬埗鏈哄埗鍜岀粫杩囨妧鏈€?浣犱滑瀵规浣滀綍璇勮锛熶綘浠細璁╅檺鍒舵洿鍔犱弗鏍煎悧锛?/strong> 鎴戜滑宸叉敞鎰忓埌娼滃湪鐨勮В鍐虫柟娉曘€?浠や汉娆e枩鐨勬槸锛屽ぇ澶氭暟搴旂敤浠嶅湪鍧氭寔浣跨敤鍏紑 API銆?鍦ㄥ皾璇曡璋冪敤闈?SDK 鎺ュ彛鍙樺緱鏇村洶闅句互纭繚鍏煎鎬х殑鍚屾椂锛屾垜浠篃浼氬湪杩欑鍋氭硶涓庝繚鎸佽繍琛屾椂鏄撲簬璋冭瘯涔嬮棿浣滃嚭骞宠 銆?鎴戜滑灏嗙户缁瘎浼板簳灞傚疄鐜板苟涓庡紑鍙戣€呭悎浣溿€?/p>
ACCESS_FINE_LOCATION
鏉冮檺銆?/p> 鏄剧ず灞忕己鍙f敮鎸?/h2>
DisplayCutout
绫诲彲纭畾闈炲姛鑳藉尯鍩熺殑浣嶇疆鍜屽舰鐘讹紝杩欎簺鍖哄煙涓嶅簲鏄剧ず鍐呭銆?瑕佺‘瀹氳繖浜涘睆骞曠己鍙e尯鍩熸槸鍚﹀瓨鍦ㄥ強鍏朵綅缃紝璇蜂娇鐢?getDisplayCutout()
鍑芥暟銆?/p> layoutInDisplayCutoutMode
璁╂偍鐨勫簲鐢ㄥ彲浠ヤ负璁惧灞忓箷缂哄彛鍛ㄥ洿鐨勫唴瀹硅繘琛屽竷灞€銆?鎮ㄥ彲浠ュ皢姝ゅ睘鎬ц涓轰笅鍒楀€间箣涓€锛?/p>
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
LAYOUT_IN_DISPLAY_CUTOUT_MODE_NEVER
鎻愬崌鐭俊浣撻獙
addMessage()
锛夊潎鍙埄鐢?[Person
] 绫昏€屼笉鏄?CharSequence
銆?Person
绫讳篃鏀寔鏋勫缓鍣ㄨ璁℃ā寮忋€?/p> setData()
鏉ユ樉绀哄浘鍍忋€?浠ヤ笅浠g爜娈垫紨绀轰簡濡備綍鍒涘缓 Person
鍜屽寘鍚浘鍍忕殑鐭俊銆?/p> Kotlin
val sender = Person()
聽 聽 聽 聽 .setName(name)
聽 聽 聽 聽 .setUri(uri)
聽 聽 聽 聽 .setIcon(null)
聽 聽 聽 聽 .build()
// Create image message.
val message = Message("Picture", time, sender)
聽 聽 聽 聽 .setData("image/", imageUri)
val style = Notification.MessagingStyle(getUser())
聽 聽 聽 聽 .addMessage("Check this out!", 0, sender)
聽 聽 聽 聽 .addMessage(message)Java
Person sender = new Person()
聽 聽 聽 聽 .setName(name)
聽 聽 聽 聽 .setUri(uri)
聽 聽 聽 聽 .setIcon(null)
聽 聽 聽 聽 .build();
// Create image message.
Message message = new Message("Picture", time, sender)
聽 聽 聽 聽 .setData("image/", imageUri);
Notification.MessagingStyle style = new Notification.MessagingStyle(getUser())
聽 聽 聽 聽 .addMessage("Check this out!", 0, sender)
聽 聽 聽 聽 .addMessage(message);
EXTRA_REMOTE_INPUT_DRAFT
銆?鎮ㄥ彲浠ヤ娇鐢ㄦ extra 棰勫~鍏呭簲鐢ㄤ腑鐨勬枃鏈瓧娈碉紝浠ヤ究鐢ㄦ埛鍙互瀹屾垚浠栦滑鐨勫洖澶嶃€?/p> setGroupConversation()
浠ユ槑纭‘瀹氬璇濇槸鍚︿负缇ょ粍瀵硅瘽銆?/p> RemoteInput.setChoices()
涓虹敤鎴锋彁渚涗竴缁勬爣鍑嗗洖澶嶃€?/p> 娓犻亾璁剧疆銆佸箍鎾拰璇峰嬁鎵撴壈
isBlocked()
鍑芥暟纭畾浣曟椂灞忚斀涓€涓笭閬撶粍锛屼粠鑰屼笉浼氬悜璇ョ粍涓殑娓犻亾鍙戦€佷换浣曢€氱煡銆?/p> getNotificationChannelGroup()
鍑芥暟鏌ヨ褰撳墠娓犻亾缁勮缃€?/p> NotificationManager
鍙傝€冧腑鏇存柊鐨勫父閲忓垪琛ㄣ€?鏈夊叧鍝嶅簲骞挎挱 Intent 鐨勪俊鎭紝璇峰弬闃呭箍鎾€?/p> NotificationManager.Policy
鏈?3 绉嶆柊鐨勨€滆鍕挎墦鎵扳€濅紭鍏堢骇绫诲埆锛?/p>
PRIORITY_CATEGORY_ALARMS
浼樺厛澶勭悊璀︽姤銆?/li> PRIORITY_CATEGORY_MEDIA
浼樺厛澶勭悊濯掍綋婧愮殑澹伴煶锛屽濯掍綋鍜岃闊冲鑸€?/li> PRIORITY_CATEGORY_SYSTEM
浼樺厛澶勭悊绯荤粺澹伴煶銆?/li> NotificationManager.Policy
杩樻湁 7 绉嶆柊鐨勨€滆鍕挎墦鎵扳€濆父閲忥紝鍙互鐢ㄦ潵鎶戝埗瑙嗚涓柇锛?/p>
SUPPRESSED_EFFECT_FULL_SCREEN_INTENT
闃叉閫氱煡鍚姩鍏ㄥ睆 Activity銆?/li> SUPPRESSED_EFFECT_LIGHTS
灞忚斀閫氱煡鐏€?/li> SUPPRESSED_EFFECT_PEEK
闃叉閫氱煡鐭殏杩涘叆瑙嗗浘锛堚€滄粦鍑衡€濓級銆?/li> SUPPRESSED_EFFECT_STATUS_BAR
闃叉閫氱煡鏄剧ず鍦ㄦ敮鎸佺姸鎬佹爮鐨勮澶囩殑鐘舵€佹爮涓€?/li> SUPPRESSED_EFFECT_BADGE
鍦ㄦ敮鎸佹爣蹇楃殑璁惧涓婂睆钄芥爣蹇椼€?濡傞渶浜嗚В璇︾粏淇℃伅锛岃鍙傞槄淇敼閫氱煡鏍囧織銆?/li> SUPPRESSED_EFFECT_AMBIENT
鍦ㄦ敮鎸佸井鍏夋樉绀虹殑璁惧涓婂睆钄介€氱煡銆?/li> SUPPRESSED_EFFECT_NOTIFICATION_LIST
闃叉閫氱煡鏄剧ず鍦ㄦ敮鎸佸垪琛ㄨ鍥撅紙濡傞€氱煡鏍忔垨閿佸睆锛夌殑璁惧鐨勫垪琛ㄨ鍥句腑銆?/li> 澶氭憚鍍忓ご鏀寔鍜屾憚鍍忓ご鏇存柊
FULL
鎴?LIMITED
鍔熻兘鐨勮澶囥€?鍗曡壊杈撳嚭閫氳繃 YUV_420_888
鏍煎紡瀹炵幇锛孻 涓虹伆搴︼紝U (Cb) 涓?128锛孷 (Cr) 涓?128銆?/p> 閫傜敤浜庡彲缁樺埗瀵硅薄鍜屼綅鍥剧殑 ImageDecoder
ImageDecoder
绫伙紝鍙彁渚涚幇浠e寲鐨勫浘鍍忚В鐮佹柟娉曘€?浣跨敤璇ョ被鍙栦唬 BitmapFactory
鍜?BitmapFactory.Options
API銆?/p> ImageDecoder
璁╂偍鍙€氳繃瀛楄妭缂撳啿鍖恒€佹枃浠舵垨 URI 鏉ュ垱寤?Drawable
鎴?Bitmap
銆?瑕佽В鐮佸浘鍍忥紝璇烽鍏堜互缂栫爜鍥惧儚鐨勬潵婧愪负鍙傛暟锛岃皟鐢?createSource()
銆?鐒跺悗锛岄€氳繃浼犻€?ImageDecoder.Source
瀵硅薄鏉ヨ皟鐢?decodeDrawable()
鎴?decodeBitmap()
锛屼粠鑰屽垱寤?Drawable
] 鎴?Bitmap
銆?瑕佹洿鏀归粯璁よ缃紝璇峰皢 OnHeaderDecodedListener
浼犻€掔粰 decodeDrawable()
鎴?decodeBitmap()
銆?ImageDecoder
璋冪敤 onHeaderDecoded()
锛屼互鍥惧儚鐨勯粯璁ゅ搴﹀拰楂樺害锛堣嫢宸茬煡锛変负鍙傛暟銆?濡傛灉缂栫爜鍥惧儚鏄姩鐢?GIF 鎴?WebP锛?code>decodeDrawable() 灏嗚繑鍥?Drawable
锛屽畠鏄?AnimatedImageDrawable
绫荤殑涓€涓疄渚嬨€?/p>
setTargetSize()
銆?鎮ㄤ篃鍙互浣跨敤鏍峰浘灏哄鏉ョ缉鏀惧浘鍍忋€?灏嗘牱鍥惧昂瀵哥洿鎺ヤ紶閫掔粰 setTargetSampleSize()
銆?/li> setCrop()
銆?/li> true
浼犻€掔粰 setMutableRequired()
銆?/li> ImageDecoder
杩樺彲浠ヤ负鍦嗚鎴栧渾褰㈤伄缃╀箣绫荤殑鍥惧儚娣诲姞澶嶆潅鐨勫畾鍒舵晥鏋溿€?浠?PostProcessor
绫荤殑涓€涓疄渚嬩綔涓哄弬鏁颁娇鐢?setPostProcessor()
锛屾墽琛屾偍鎵€闇€鐨勪换浣曠粯鍥惧懡浠ゃ€?/p> AnimatedImageDrawable
杩涜鍚庡鐞嗘椂锛屾晥鏋滀細鍑虹幇鍦ㄥ姩鐢荤殑鎵€鏈夊抚涓€?/p> 鍔ㄧ敾
AnimatedImageDrawable
绫伙紝鐢ㄤ簬缁樺埗鍜屾樉绀?GIF 鍜?WebP 鍔ㄧ敾鍥惧儚銆?AnimatedImageDrawable
鐨勫伐浣滄柟寮忎笌 AnimatedVectorDrawable
鐨勭浉浼间箣澶勫湪浜庯紝閮芥槸娓叉煋绾跨▼椹卞姩 AnimatedImageDrawable
鐨勫姩鐢汇€?娓叉煋绾跨▼杩樹娇鐢ㄥ伐浣滅嚎绋嬭繘琛岃В鐮侊紝鍥犳锛岃В鐮佷笉浼氬共鎵版覆鏌撶嚎绋嬬殑鍏朵粬鎿嶄綔銆?杩欑瀹炵幇鏈哄埗鍏佽鎮ㄧ殑搴旂敤鍦ㄦ樉绀哄姩鐢诲浘鍍忔椂锛屾棤闇€绠$悊鍏舵洿鏂帮紝涔熶笉浼氬共鎵板簲鐢ㄧ晫闈㈢嚎绋嬩笂鐨勫叾浠栦簨浠躲€?/p> ImageDecoder
鐨勫疄渚嬪 AnimatedImageDrawable
杩涜瑙g爜銆?浠ヤ笅浠g爜娈垫紨绀哄浣曚娇鐢?ImageDecoder
鏉ヨВ鐮?AnimatedImageDrawable
锛?/p> Kotlin
private fun decodeImage() {
聽 聽 val decodedAnimation = ImageDecoder.decodeDrawable(
聽 聽 聽 聽 ImageDecoder.createSource(resources, R.drawable.my_drawable))
聽 聽 // Prior to start(), the first frame is displayed.
聽 聽 (decodedAnimation as? AnimatedImageDrawable)?.start()
}Java
聽 聽 Drawable decodedAnimation = ImageDecoder.decodeDrawable(
聽 聽 聽 聽 ImageDecoder.createSource(getResources(), R.drawable.my_drawable));
聽 聽 if (decodedAnimation instanceof AnimatedImageDrawable) {
聽 聽 聽 聽 // Prior to start(), the first frame is displayed.
聽 聽 聽 聽 ((AnimatedImageDrawable) decodedAnimation).start();
聽 聽 }
}ImageDecoder
鏈夊嚑涓厑璁告偍杩涗竴姝ヤ慨鏀瑰浘鍍忕殑鍑芥暟銆?渚嬪锛屽彲浣跨敤 setPostProcessor()
鍑芥暟鏉ヤ慨鏀瑰浘鍍忕殑澶栬锛屽搴旂敤鍦嗗舰閬僵鎴栧渾瑙掋€?/p> HDR VP9 瑙嗛銆丠EIF 鍥惧儚鍘嬬缉鍜?Media API
MediaMuxer
鍜?MediaExtractor
绫讳腑鍙敮鎸?HEIF 闈欐€佸浘鍍忕ず渚?HEIF 鏀硅繘浜嗗帇缂╋紝鍙妭鐪佸瓨鍌ㄧ┖闂村拰缃戠粶鏁版嵁娴侀噺銆?鍊熷姪 Android 9 璁惧涓婄殑骞冲彴鏀寔锛屼粠鍚庣鏈嶅姟鍣ㄥ彂閫佸拰浣跨敤 HEIF 鍥惧儚杞昏€屾槗涓俱€?纭繚搴旂敤鍏煎杩欑渚夸簬鍏变韩鍜屾樉绀虹殑鏁版嵁鏍煎紡鍚庯紝灏濊瘯鍦ㄥ簲鐢ㄤ腑浣跨敤 HEIF 浣滀负鍥惧儚瀛樺偍鏍煎紡銆?鎮ㄥ彲浠ヤ娇鐢?ImageDecoder 鎴?BitmapFactory 杩涜 jpeg 鍒?heicto 鐨勮浆鎹紝浠ラ€氳繃 jpeg 鑾峰彇浣嶅浘锛屽苟涓斿彲浠ヤ娇鐢?HeifWriter 鍐欏叆鏉ヨ嚜 YUV 瀛楄妭缂撳啿鍖恒€丼urface 鎴?Bitmap 鐨?HEIF 闈欐€佸浘鍍忋€?/p> AudioTrack
銆?code>AudioRecord 鍜?MediaDrm
绫昏幏鍙栧獟浣撴寚鏍囥€?/p> MediaDRM
绫绘坊鍔犱簡鍑芥暟浠ヨ幏鍙栨寚鏍囥€侀珮甯﹀鏁板瓧鍐呭淇濇姢 (HDCP) 绾у埆銆佸畨鍏ㄧ骇鍒拰浼氳瘽鏁帮紝骞跺瀹夊叏鎬х骇鍒拰瀹夊叏鍋滄杩涜鏇村鎺у埗銆?濡傞渶浜嗚В鏇村璇︽儏锛岃鍙傞槄 API 宸紓鎶ュ憡銆?/p> AudioEffect API
鏉ユ帶鍒堕煶鏁堛€?/p> JobScheduler 涓殑娴侀噺璐圭敤鏁忔劅搴?/h2>
JobScheduler
鍙互浣跨敤杩愯惀鍟嗘彁渚涚殑缃戠粶鐘舵€佷俊鍙锋潵鏀瑰杽涓庣綉缁滄湁鍏崇殑浣滀笟澶勭悊銆?/p> JobScheduler
鐒跺悗鏍规嵁缃戠粶鐘舵€佺鐞嗗伐浣溿€?渚嬪锛屽綋缃戠粶鏄剧ず鎷ュ鏃讹紝JobScheduler
鍙兘浼氬欢杩熻緝澶х殑缃戠粶璇锋眰銆?濡傛灉浣跨敤鐨勬槸涓嶆寜娴侀噺璁¤垂鐨勭綉缁滐紝鍒?JobScheduler
鍙繍琛岄鎻愬彇浣滀笟浠ユ彁鍗囩敤鎴蜂綋楠岋紙渚嬪棰勬彁鍙栨爣棰橈級銆?/p> setEstimatedNetworkBytes()
銆?code>setPrefetch() 鍜?setRequiredNetwork()
锛堝鏋滈€傜敤锛夛紝浠ュ府鍔?JobScheduler
姝g‘澶勭悊宸ヤ綔銆?鍦ㄦ墽琛屼綔涓氭椂锛岃纭繚浣跨敤 JobParameters.getNetwork()
杩斿洖鐨?Network
瀵硅薄銆?鍚﹀垯锛屾偍灏嗛殣寮忎娇鐢ㄨ澶囩殑榛樿缃戠粶锛屽叾鍙兘涓嶇鍚堟偍鐨勮姹傦紝浠庤€屽鑷存剰澶栫殑娴侀噺娑堣€椼€?/p> Neural Networks API 1.1
ANEURALNETWORKS_DIV
ANEURALNETWORKS_SUB
ANEURALNETWORKS_BATCH_TO_SPACE_ND
ANEURALNETWORKS_SPACE_TO_BATCH_ND
ANEURALNETWORKS_SQUEEZE
ANEURALNETWORKS_STRIDED_SLICE
ANEURALNETWORKS_TRANSPOSE
ANEURALNETWORKS_PAD
ANEURALNETWORKS_MEAN
ANEURALNETWORKS_TENSOR_QUANT8_ASYMM
寮犻噺浼犻€掑埌 ANEURALNETWORKS_PAD
杩愮畻锛堝湪 Android 9 鍙婃洿楂樼増鏈腑鎻愪緵锛夋椂锛孨NAPI 鐨勮緭鍑哄彲鑳戒笌杈冮珮绾у埆鏈哄櫒瀛︿範妗嗘灦锛堝 TensorFlow Lite锛夌殑杈撳嚭涓嶅尮閰嶃€?搴斿彧浼犻€?ANEURALNETWORKS_TENSOR_FLOAT32
鐩村埌闂寰楀埌瑙e喅銆?/p> ANeuralNetworksModel_relaxComputationFloat32toFloat16()
锛屽厑璁告偍鎸囧畾鏄惁璁$畻鑼冨洿鍜岀簿搴︿綆鑷?IEEE 754 16 浣嶆诞鐐规牸寮忕殑 ANEURALNETWORKS_TENSOR_FLOAT32
銆?/p> 鑷姩濉厖妗嗘灦
瀹夊叏澧炲己鍔熻兘
Android Protected Confirmation
trustedConfirmationRequired
鐢熸垚鐨勫瘑閽ユ潵绛剧讲鐢ㄦ埛宸叉帴鍙楃殑娑堟伅銆?璇ョ鍚嶅叿鏈夊緢楂樼殑鍙俊搴︼紝瀹冭〃绀虹敤鎴峰凡鐪嬭繃澹版槑骞跺悓鎰忓叾鍐呭銆?/p> 缁熶竴鐢熺墿璇嗗埆韬唤楠岃瘉瀵硅瘽妗?/h3>
FingerprintManager
鍚戠敤鎴锋樉绀烘寚绾硅韩浠介獙璇佸璇濇锛岃鍒囨崲鍒版敼鐢?BiometricPrompt
銆?BiometricPrompt
渚濊禆绯荤粺鏉ユ樉绀鸿韩浠介獙璇佸璇濇銆?瀹冭繕浼氭敼鍙樺叾琛屼负锛屼互閫傚簲鐢ㄦ埛鎵€閫夋嫨鐨勭敓鐗╄瘑鍒韩浠介獙璇佺被鍨嬨€?/p> BiometricPrompt
涔嬪墠锛屽簲璇ュ厛浣跨敤 hasSystemFeature()
鍑芥暟浠ョ‘淇濊澶囨敮鎸?FEATURE_FINGERPRINT
銆?code>FEATURE_IRIS 鎴?FEATURE_FACE
銆?/p> createConfirmDeviceCredentialIntent()
鍑芥暟楠岃瘉鐢ㄦ埛鐨?PIN 鐮併€佸浘妗堟垨瀵嗙爜銆?/p> 纭欢瀹夊叏鎬фā鍧?/h3>
淇濇姢瀵瑰瘑閽ュ簱杩涜鐨勫瘑閽ュ鍏?/h3>
鍏锋湁瀵嗛挜杞浆鐨?APK 绛惧悕鏂规
minSdkVersion
涓?27
鎴栨洿浣庯紝闄や簡鏂扮鍚嶄箣澶栵紝鍙娇鐢ㄦ棫绛惧悕璇佷功鏉ョ缃插簲鐢ㄣ€?/p> apksigner
杞浆瀵嗛挜銆?/p> 鍙厑璁稿湪鏈攣瀹氳澶囦笂杩涜瀵嗛挜瑙e瘑鐨勯€夐」
unlockedDeviceRequired
鏍囧織銆?姝ら€夐」纭畾鍦ㄥ厑璁镐娇鐢ㄦ寚瀹氬瘑閽ュ浠讳綍姝e湪浼犺緭鎴栧瓨鍌ㄧ殑鏁版嵁杩涜瑙e瘑涔嬪墠锛屽瘑閽ュ簱鏄惁瑕佹眰灞忓箷瑙i攣銆?杩欎簺绫诲瀷鐨勫瘑閽ラ潪甯搁€傚悎鐢ㄤ簬鍔犲瘑瑕佸瓨鍌ㄥ湪纾佺洏涓婄殑鏁忔劅鏁版嵁锛屼緥濡傚仴搴锋垨浼佷笟鏁版嵁銆?璇ユ爣蹇椾负鐢ㄦ埛鎻愪緵浜嗘洿楂樼殑淇濊瘉锛屽嵆浣挎墜鏈轰涪澶辨垨琚洍锛屽湪璁惧閿佸畾鐨勬儏鍐典笅锛屾棤娉曞鏁版嵁杩涜瑙e瘑銆?/p> unlockedDeviceRequired
鏍囧織鍚敤涔嬪悗锛屼粛鐒跺彲浠ラ殢鏃惰繘琛屽姞瀵嗗拰绛惧悕楠岃瘉銆?璇ユ爣蹇楀彲闃叉鍦ㄨ澶囪В閿佹椂鈥滀粎瑙e瘑鈥濇暟鎹€?/p> true
浼犻€掔粰 setUnlockedDeviceRequired()
鍑芥暟鍚敤璇ユ爣蹇椼€?瀹屾垚璇ユ楠や箣鍚庯紝褰撶敤鎴风殑灞忓箷琚攣瀹氭椂锛屼娇鐢ㄨ瀵嗛挜杩涜瑙e瘑鎴栫缃叉暟鎹殑浠讳綍灏濊瘯閮戒細澶辫触銆?閿佸畾璁惧鍦ㄥ彲浠ヨ闂箣鍓嶏紝闇€瑕?PIN 鐮併€佸瘑鐮併€佹寚绾规垨鑰呬竴浜涘叾浠栧彲淇″洜绱犮€?/p> 鏃х増鍔犲瘑鏀寔
Android 澶囦唤
瀹㈡埛绔姞瀵嗗浠?/h3>
瀹氫箟澶囦唤鎵€闇€鐨勮澶囨潯浠?/h3>
鏃犻殰纰嶅姛鑳?/h2>
瀵艰埅璇箟
android:accessibilityPaneTitle
灞炴€с€?鎮ㄤ篃鍙互鏇存柊鍦ㄨ繍琛屾椂浣跨敤 setAccessibilityPaneTitle()
鏇挎崲鐨勬煇涓晫闈㈢獥鏍肩殑鏍囬銆?渚嬪锛屾偍鍙互涓烘煇涓?Fragment
瀵硅薄鐨勫唴瀹瑰尯鍩熸彁渚涙爣棰樸€?/p> View
瀹炰緥锛岃灏?android:accessibilityHeading
灞炴€ц缃负 true
銆?閫氳繃娣诲姞杩欎簺鏍囬锛屾棤闅滅鏈嶅姟鍙府鍔╃敤鎴风洿鎺ヤ粠涓€涓爣棰樺鑸嚦涓嬩竴涓爣棰樸€?浠讳綍鏃犻殰纰嶆湇鍔¢兘鍙互浣跨敤杩欑鍔熻兘锛屼互鏀瑰杽鐢ㄦ埛鐣岄潰鐨勫鑸綋楠屻€?/p> android:focusable
灞炴€ф潵纭畾浣曟椂搴旇灏?ViewGroup
鎴栦竴绯诲垪 View
瀵硅薄浣滀负涓€涓暣浣撹繘琛岃鍙栥€?杩欐牱锛岀敤鎴峰氨鍙互浜嗚В锛岃繖浜涜鍥惧湪閫昏緫涓婂郊姝ょ浉鍏炽€?/p> ViewGroup
涓殑姣忎釜 View
瀵硅薄鏍囪涓轰笉鍙仛鐒︼紝骞跺皢 ViewGroup
鏈韩鏍囪涓哄彲鑱氱劍銆?杩欑瀹夋帓瀵艰嚧 View
鐨勬煇浜涘疄渚嬭鏍囪涓哄彲鑱氱劍锛屼粠鑰屼娇寰楅敭鐩樺鑸彉寰楁洿涓虹箒鐞愩€?/p> View
瀵硅薄鏍囪涓哄彲鑱氱劍浼氫骇鐢熶笉鑹悗鏋滐紝鍒欏彲浠ヤ娇鐢?android:screenReaderFocusable
灞炴€т唬鏇?android:focusable
灞炴€с€?灞忓箷闃呰鍣ㄨ仛鐒﹀湪鎵€鏈夊皢 android:screenReaderFocusable
鎴?android:focusable
璁剧疆涓?true
鐨勫厓绱犱笂銆?/p> 渚挎嵎鎿嶄綔
getTooltipText()
璇诲彇鎻愮ず鏂囨湰锛屼娇鐢?ACTION_SHOW_TOOLTIP
鍜?ACTION_HIDE_TOOLTIP
鏉ユ寚绀?View
鐨勫疄渚嬫樉绀烘垨闅愯棌鎻愮ず銆?/p> AccessibilityService
绫讳腑寮曞叆浜嗗涓や釜棰濆璁惧鎿嶄綔鐨勬敮鎸併€?鎮ㄧ殑 Service 鍙互甯姪鐢ㄦ埛鍒嗗埆浣跨敤 GLOBAL_ACTION_LOCK_SCREEN
鍜?GLOBAL_ACTION_TAKE_SCREENSHOT
鎿嶄綔閿佸畾鍏惰澶囧苟杩涜灞忓箷鎴浘銆?/p> 绐楀彛鍙樻洿璇︽儏
TYPE_WINDOWS_CHANGED
浜嬩欢鏃讹紝鍙娇鐢?getWindowChanges()
API 鏉ョ‘瀹氱獥鍙e彂鐢熺殑鍙樻洿銆?鍦ㄥ绐楀彛鏇存柊鏈熼棿锛屾瘡涓獥鍙i兘浼氱敓鎴愯嚜宸辩殑涓€缁勪簨浠躲€?getSource()
鍑芥暟杩斿洖涓庢瘡涓簨浠剁浉鍏宠仈鐨勭獥鍙g殑鏍硅鍥俱€?/p> View
瀵硅薄瀹氫箟鏃犻殰纰嶅姛鑳界獥鏍兼爣棰橈紝鎮ㄧ殑 Service 灏嗗彲浠ヨ瘑鍒簲鐢ㄧ晫闈綍鏃惰繘琛屾洿鏂般€?TYPE_WINDOW_STATE_CHANGED
浜嬩欢鍙戠敓鏃讹紝鍙娇鐢?getContentChangeTypes()
鎵€杩斿洖鐨勭被鍨嬫潵纭畾绐楀彛鍙戠敓鐨勫彉鏇淬€?渚嬪锛屾鏋跺彲浠ユ娴嬬獥鏍间綍鏃舵湁鏂版爣棰樻垨鑰呯獥鏍间綍鏃舵秷澶便€?/p> 鏃嬭浆
鏂囨湰
Magnifier
绫绘槸涓€绉嶅彲鎻愪緵鏀惧ぇ鍣?API 鐨勫井浠讹紝鍙湪鎵€鏈夊簲鐢ㄤ腑瀹炵幇涓€鑷寸殑鏀惧ぇ鍣ㄥ姛鑳戒綋楠屻€?/p> TextClassifier
绫伙紝璇ョ被鍙埄鐢ㄦ満鍣ㄥ涔犲湪閫夊畾鏂囨湰涓瘑鍒竴浜涘疄浣撳苟寤鸿閲囧彇鐩稿簲鐨勬搷浣溿€?渚嬪锛?code>TextClassifier 鍙互璁╂偍鐨勫簲鐢ㄦ娴嬪埌鐢ㄦ埛閫夋嫨浜嗙數璇濆彿鐮併€?鐒跺悗锛屾偍鐨勫簲鐢ㄥ彲浠ュ缓璁敤鎴蜂娇鐢ㄨ鍙风爜鎷ㄦ墦鐢佃瘽銆?TextClassifier
涓殑鍔熻兘鍙栦唬浜?Linkify
绫荤殑鍔熻兘銆?/p> TextView
鍙傝€冩枃妗c€?/p> DEX 鏂囦欢鐨?ART 鎻愬墠杞崲
璁惧绔郴缁熻窡韪?/h2>
琛屼负鍙樻洿锛氭墍鏈夊簲鐢?/h1>
鐢垫簮绠$悊
闅愮鏉冨彉鏇?/h2>
CALL_LOG
鏉冮檺缁勫苟灏?READ_CALL_LOG
銆?code>WRITE_CALL_LOG 鍜?PROCESS_OUTGOING_CALLS
鏉冮檺绉诲叆璇ョ粍銆?鍦ㄤ箣鍓嶇殑 Android 鐗堟湰涓紝杩欎簺鏉冮檺浣嶄簬 PHONE
鏉冮檺缁勩€?/p> CALL_LOG
鏉冮檺缁勪负鐢ㄦ埛鎻愪緵浜嗘洿濂界殑鎺у埗鍜屽彲瑙佹€с€?/p> CALL_LOG
鏉冮檺缁勬槑纭姹傝繖浜涙潈闄愩€?鍚﹀垯浼氬彂鐢?SecurityException
銆?/p> READ_CALL_LOG
鏉冮檺鐨勬儏鍐典笅锛岄櫎浜嗗簲鐢ㄧ殑鐢ㄤ緥闇€瑕佺殑鍏朵粬鏉冮檺涔嬪锛岃繍琛屼簬 Android 9 涓婄殑搴旂敤鏃犳硶璇诲彇鐢佃瘽鍙风爜鎴栨墜鏈虹姸鎬併€?/p> PhoneStateListener
绫昏闂€?浣嗘槸锛屽鏋滄病鏈?READ_CALL_LOG
鏉冮檺锛屽垯 PHONE_STATE_CHANGED
骞挎挱鍜?PhoneStateListener
鎻愪緵鐨勭數璇濆彿鐮佸瓧娈典负绌恒€?/p>
PHONE_STATE
Intent 鎿嶄綔璇诲彇鐢佃瘽鍙风爜锛屽悓鏃堕渶瑕?READ_CALL_LOG
鏉冮檺鍜?READ_PHONE_STATE
鏉冮檺銆?/li> onCallStateChanged()
涓鍙栫數璇濆彿鐮侊紝鍙渶瑕?READ_CALL_LOG
鏉冮檺銆?涓嶉渶瑕?READ_PHONE_STATE
鏉冮檺銆?/li> getConnectionInfo()
鍑芥暟锛岃鍑芥暟杩斿洖鎻忚堪褰撳墠 Wi-Fi 杩炴帴鐨?WifiInfo
瀵硅薄銆?濡傛灉璋冪敤搴旂敤鍏锋湁浠ヤ笅鏉冮檺锛屽垯鍙兘浣跨敤璇ュ璞$殑鍑芥暟鏉ユ绱?SSID 鍜?BSSID 鍊硷細
WifiManager
涓殑 getScanResults()
鍜?getConnectionInfo()
鍑芥暟銆?/li> WifiP2pManager
涓殑 discoverServices()
鍜?addServiceRequest()
鍑芥暟銆?/li> NETWORK_STATE_CHANGED_ACTION
骞挎挱銆?/li> NETWORK_STATE_CHANGED_ACTION
绯荤粺骞挎挱涓嶅啀鍖呭惈 SSID锛堜箣鍓嶄负 EXTRA_SSID锛夈€丅SSID锛堜箣鍓嶄负 EXTRA_BSSID锛夋垨杩炴帴淇℃伅锛堜箣鍓嶄负 EXTRA_NETWORK_INFO锛夈€?濡傛灉搴旂敤闇€瑕佹淇℃伅锛岃鏀逛负璋冪敤 getConnectionInfo()
銆?/p>
getAllCellInfo()
listen()
getCellLocation()
getNeighboringCellInfo()
瀵逛娇鐢ㄩ潪 SDK 鎺ュ彛鐨勯檺鍒?/h2>
瀹夊叏琛屼负鍙樻洿
璁惧瀹夊叏鎬у彉鏇?/h3>
SSLSocket
鐨勫疄渚嬪湪鍒涘缓鏃惰繛鎺ュけ璐ワ紝绯荤粺浼氬紩鍙?IOException
鑰岄潪 NullPointerException
銆?/li> SSLEngine
绫诲彲姝e父澶勭悊鍑虹幇鐨勪换浣?close_notify
鎻愰啋銆?/li> 鍔犲瘑鍙樻洿
NoSuchAlgorithmException
銆?/p>
SecureRandom.getInstance("SHA1PRNG", "Crypto")
锛屽皢浼氬彂鐢?NoSuchProviderException
銆?/li> 涓嶅啀鏀寔 Android 瀹夊叏鍔犲瘑鏂囦欢
ICU 搴撴洿鏂?/h2>
android.icu package
涓嬬殑鍏紑 API锛?渚?Android 骞冲彴鍐呴儴鐢ㄦ潵鎻愪緵鍥介檯鍖栨敮鎸併€?渚嬪锛屽畠鐢ㄤ簬瀹炵幇 java.util
銆?code>java.text 鍜?android.text.format
鏍煎紡鐨?Android 绫汇€?/p>
android.icu
鏍煎紡鍜岃В鏋愯涓恒€?/p> java.text.SimpleDateFormat
鐜板湪浣跨敤 ICU 鎻愪緵 UTC /GMT 鐨勬樉绀哄悕绉帮紝杩欐剰鍛崇潃锛?
zzzz
鐨勬牸寮忓皢浼氱敓鎴愬緢闀跨殑鏈湴鍖栧瓧绗︿覆銆備箣鍓嶏紝瀵逛簬 UTC 鏃跺尯锛屽畠浼氱敓鎴愨€淯TC鈥濓紝鑰屽浜?GMT锛屽垯浼氱敓鎴愨€淕MT+00:00鈥濅箣绫荤殑瀛楃涓层€?/li> zzzz
鍙瘑鍒€淯niversal Coordinated Time鈥濆拰鈥淕reenwich Mean Time鈥濅箣绫荤殑瀛楃涓层€?/li> zzzz
鐨勮緭鍑猴紝鍒欏彲鑳戒細閬囧埌鍏煎鎬ч棶棰樸€?/li> java.text.DateFormatSymbols.getZoneStrings()
鐨勮涓哄凡鍙樻洿锛?
SimpleDateFormat
绫讳技锛岀幇鍦紝UTC 鍜?GMT 涔熸湁闀垮悕绉般€傚浜?UTC 鏃跺尯锛孌ST 绫诲瀷鐨勬椂鍖哄悕绉帮紙渚嬪鈥淯TC鈥濄€佲€淓tc/UTC鈥濆拰鈥淶ulu鈥濓級鍙樹负 GMT+00:00锛堣€屼笉鏄‖缂栫爜瀛楃涓?UTC
锛夛紝杩欐槸鍦ㄦ病鏈夊叾浠栧悕绉板彲鐢ㄦ椂鐨勬爣鍑嗗洖閫€銆?/li> Eire
锛夊搴旂殑瀛楃涓诧紝鑰屼箣鍓嶆棤娉曡В鍐虫闂銆?/li> java.util.TimeZone.getTimeZone()
涔熶笉鍐嶈瘑鍒畠銆傛琛屼负涓庣幇鏈夌殑 android.icu
琛屼负鐩哥銆?/li> android.icu.text.NumberFormat.getInstance(ULocale, PLURALCURRENCYSTYLE).parse(String)
鍑芥暟鐢氳嚦鍦ㄨВ鏋愬悎娉曠浉搴斿竵绉嶆枃鏈椂涔熶細寮曞彂 ParseException
銆?閫氳繃瀵?PLURALCURRENCYSTYLE
绫诲瀷鐨勭浉搴斿竵绉嶆枃鏈娇鐢ㄨ嚜 Android 7.0锛圓PI 绾у埆 24锛変互鏉ユ墍鎻愪緵鐨?code>NumberFormat.parseCurrency锛屽彲閬垮厤姝ら棶棰樸€?/li> Android Test 鍙樻洿
android.jar
鎻愪緵鐨勭増鏈€?/p> TestSuiteBuilder
绫讳腑鐨?addRequirements()
鍑芥暟锛?code>TestSuiteBuilder 绫绘湰韬篃宸插純鐢ㄣ€?addRequirements()
鍑芥暟瑕佹眰寮€鍙戣€呮彁渚涚被鍨嬩负闅愯棌 API 鐨勫弬鏁帮紝缁撴灉浠?API 澶辨晥銆?/p> Java UTF 瑙g爜鍣?/h2>
String(byte[] bytes)
涔嬬被鐨?String
鏋勯€犲嚱鏁拌В鐮併€?/p>
锛夎瑙嗕负鏍煎紡涓嶆纭€?/li> U+D800
..U+DFFF
锛夎瑙嗕负鏍煎紡涓嶆纭€?/li> U+FFFD
鍙栦唬銆?渚嬪锛屽湪瀛楄妭搴忓垪鈥?code>41 C0 AF 41 F4 80 80 41鈥濅腑锛屾渶澶у瓙閮ㄥ垎涓衡€?code>C0鈥濄€佲€?code>AF鈥濆拰鈥?code>F4 80 80鈥濄€傚叾涓€?code>F4 80 80鈥濆彲浠ユ槸鈥?code>F4 80 80 80鈥濈殑鍒濆瀛愬簭鍒楋紝浣嗏€?code>C0鈥濅笉鑳芥槸浠讳綍褰㈠紡姝g‘鐨勪唬鐮佸崟浣嶅簭鍒楃殑鍒濆瀛愬簭鍒椼€?鍥犳锛岃緭鍑哄簲涓衡€?code>A\ufffd\ufffdA\ufffdA鈥濄€?/li> DataInputStream.readUTF()
鍑芥暟鎴?NewStringUTF()
JNI 鍑芥暟銆?/li> 浣跨敤璇佷功鐨勪富鏈哄悕楠岃瘉
subjectAltName
(SAN
) 鎵╁睍绋嬪簭涓殑鍙敤鍚嶇О锛屾垨鑰呭湪娌℃湁 SAN
鎵╁睍绋嬪簭鐨勬儏鍐典笅锛屽洖閫€鍒?commonName
(CN
)銆?/p> CN
宸茶寮冪敤銆傚洜姝わ紝Android 涓嶅啀鍥為€€鍒颁娇鐢?CN
銆?瑕侀獙璇佷富鏈哄悕锛屾湇鍔″櫒蹇呴』鍑虹ず鍏锋湁鍖归厤 SAN
鐨勮瘉涔︺€?涓嶅寘鍚笌涓绘満鍚嶅尮閰嶇殑 SAN
鐨勮瘉涔︿笉鍐嶈淇′换銆?/p> 缃戠粶鍦板潃鏌ヨ鍙兘浼氬鑷寸綉缁滆繚瑙?/h2>
StrictMode
绫绘槸涓€涓湁鍔╀簬寮€鍙戣€呮娴嬩唬鐮侀棶棰樼殑寮€鍙戝伐鍏枫€?/p> StrictMode
銆?鍚﹀垯锛屾偍鐨勫簲鐢ㄥ彲鑳戒細閬亣寮傚父锛屼緥濡傦紝鍦ㄤ娇鐢?detectNetwork()
鎴?detectAll()
鍑芥暟鑾峰彇鐢ㄤ簬妫€娴嬬綉缁滆繚瑙勭殑鏀跨瓥鏃讹紝浼氬嚭鐜?code>NetworkOnMainThreadException銆?/p> 濂楁帴瀛楁爣璁?/h2>
setThreadStatsTag()
鍑芥暟鏍囪鏌愪釜濂楁帴瀛楋紝鍒欏綋浣跨敤甯?ParcelFileDescriptor
瀹瑰櫒鐨?binder 杩涚▼闂撮€氫俊灏嗗叾鍙戦€佺粰鍏朵粬杩涚▼鏃讹紝濂楁帴瀛椾細琚彇娑堟爣璁般€?/p> queryDetailsForUidTag()
鍑芥暟鏃躲€?/p> untagSocket()
銆?/p> 鎶ュ憡鐨勫鎺ュ瓧涓彲鐢ㄥ瓧鑺傛暟
shutdownInput()
鍑芥暟鍚庯紝available()
鍑芥暟浼氬湪璋冪敤鏃惰繑鍥?0
銆?/p> 鏇磋灏界殑 VPN 缃戠粶鍔熻兘鎶ュ憡
NetworkCapabilities
绫讳粎鎶ュ憡 VPN 鐨勬湁闄愪俊鎭紝渚嬪 TRANSPORT_VPN
锛屼絾浼氱渷鐣?NET_CAPABILITY_NOT_VPN
銆?淇℃伅鏈夐檺瀵艰嚧闅句互纭畾浣跨敤 VPN 鏄惁浼氬鑷村搴旂敤鐨勭敤鎴锋敹璐广€?渚嬪锛屾鏌?NET_CAPABILITY_NOT_METERED
骞朵笉鑳界‘瀹氬簳灞傜綉缁滄槸鍚︽寜娴侀噺璁¤垂銆?/p> setUnderlyingNetworks()
鍑芥暟鏃讹紝Android 绯荤粺灏嗕細鍚堝苟浠讳綍搴曞眰缃戠粶鐨勪紶杈撳拰鑳藉姏骞惰繑鍥?VPN 缃戠粶鐨勬湁鏁堢綉缁滆兘鍔涗綔涓虹粨鏋溿€?/p> 搴旂敤涓嶅啀鑳借闂?xt_qtaguid 鏂囦欢澶逛腑鐨勬枃浠?/h2>
/proc/net/xt_qtaguid
鏂囦欢澶逛腑鐨勬枃浠躲€?杩欐牱鍋氭槸涓轰簡纭繚涓庢煇浜涙牴鏈笉鎻愪緵杩欎簺鏂囦欢鐨勮澶囦繚鎸佷竴鑷淬€?/p> TrafficStats
鍜?NetworkStatsManager
缁х画鎸夌収棰勬湡鏂瑰紡杩愯銆?鐒惰€岋紝涓嶅彈鏀寔鐨?cutils 鍑芥暟锛堜緥濡?qtaguid_tagSocket()
锛夊湪涓嶅悓璁惧涓婂彲鑳戒笉浼氭寜鐓ч鏈熸柟寮忚繍琛?鈥?鐢氳嚦鏍规湰涓嶈繍琛屻€?/p> 鐜板湪寮哄埗鎵ц FLAG_ACTIVITY_NEW_TASK 瑕佹眰
FLAG_ACTIVITY_NEW_TASK
銆?濡傛灉鎮ㄥ皾璇曞湪涓嶄紶閫掓鏍囧織鐨勬儏鍐典笅鍚姩 Activity锛屽垯璇?Activity 涓嶄細鍚姩锛岀郴缁熶細鍦ㄦ棩蹇椾腑杈撳嚭涓€鍒欐秷鎭€?/p> 灞忓箷鏃嬭浆鍙樻洿
screenOrientation
璁剧疆锛屽厑璁稿瓨鍦ㄤ竴浜涗緥澶栨儏鍐碉紙瑙佷笅琛級銆?/p> screenOrientation=landscape
锛夌殑 Activity 浼氬拷鐣ョ敤鎴烽攣瀹氶閫夐」锛屽苟涓旇涓轰笌 Android 8.0 涓殑琛屼负鐩稿悓銆?/p>
灞忓箷鏂瑰悜 琛屼负 鏈寚瀹氥€乽ser 鍦ㄨ嚜鍔ㄥ睆骞曟棆杞拰鏃嬭浆閿佸畾涓嬶紝Activity 鍙互绾靛悜鎴栨í鍚戯紙浠ュ強棰犲€掔旱鍚戞垨妯悜锛夊憟鐜般€?棰勬湡鍚屾椂鏀寔绾靛悜鍜屾í鍚戝竷灞€銆?/td> userLandscape 鍦ㄨ嚜鍔ㄥ睆骞曟棆杞拰鏃嬭浆閿佸畾涓嬶紝Activity 鍙互妯悜鎴栭鍊掓í鍚戝憟鐜般€?棰勬湡鍙敮鎸佹í鍚戝竷灞€銆?/td> userPortrait 鍦ㄨ嚜鍔ㄥ睆骞曟棆杞拰鏃嬭浆閿佸畾涓嬶紝Activity 鍙互绾靛悜鎴栭鍊掔旱鍚戝憟鐜般€?棰勬湡鍙敮鎸佺旱鍚戝竷灞€銆?/td> fullUser 鍦ㄨ嚜鍔ㄥ睆骞曟棆杞拰鏃嬭浆閿佸畾涓嬶紝Activity 鍙互绾靛悜鎴栨í鍚戯紙浠ュ強棰犲€掔旱鍚戞垨妯悜锛夊憟鐜般€?棰勬湡鍚屾椂鏀寔绾靛悜鍜屾í鍚戝竷灞€銆?br>
鏃嬭浆閿佸畾鐢ㄦ埛灏嗗彲閫夋嫨閿佸畾鍒伴鍊掔旱鍚戯紝閫氬父涓?180潞銆?/td> sensor銆乫ullSensor銆乻ensorPortrait銆乻ensorLandscape 蹇界暐鏃嬭浆閿佸畾妯″紡棣栭€夐」锛岃涓鸿嚜鍔ㄥ睆骞曟棆杞凡鍚敤銆?璇蜂粎鍦ㄤ緥澶栨儏鍐典笅骞剁粡杩囦粩缁嗙殑鐢ㄦ埛浣撻獙鑰冮噺鍚庡啀浣跨敤姝ら」銆?/td> Apache HTTP 瀹㈡埛绔純鐢ㄥ奖鍝嶉噰鐢ㄩ潪鏍囧噯 ClassLoader 鐨勫簲鐢?/h2>
ClassLoader
缁撴瀯鐨勬煇浜涘簲鐢紝鍗充娇杩欎簺搴旂敤涓嶄互 Android 9 鎴栨洿楂樼増鏈负鐩爣骞冲彴銆?/p> ClassLoader
鐨勯潪鏍囧噯 ClassLoader
锛屽垯搴旂敤浼氬彈鍒板奖鍝嶃€?鍦?org.apache.http.*
涓煡鎵剧被鏃讹紝杩欎簺搴旂敤闇€瑕佸鎵樼粰搴旂敤 ClassLoader
銆?濡傛灉瀹冧滑濮旀墭缁欑郴缁?ClassLoader
锛屽垯搴旂敤鍦?Android 9 鎴栨洿楂樼増鏈笂灏嗗け璐ュ苟鏄剧ず NoClassDefFoundError
锛屽洜涓虹郴缁?ClassLoader
涓嶅啀璇嗗埆杩欎簺绫汇€?涓洪槻姝㈠皢鏉ュ嚭鐜扮被浼奸棶棰橈紝涓€鑸儏鍐典笅锛屽簲鐢ㄥ簲閫氳繃搴旂敤 ClassLoader
鍔犺浇绫伙紝鑰屼笉鏄洿鎺ヨ闂郴缁?ClassLoader
銆?/p> 鏋氫妇鐩告満
getCameraIdList()
鍙戠幇姣忎釜鍙敤鐨勬憚鍍忓ご銆?搴旂敤涓嶅簲鍋囧畾璁惧鍙湁涓€涓悗缃憚鍍忓ご鎴栧彧鏈変竴涓墠缃憚鍍忓ご銆?/p> 灏嗗簲鐢ㄨ縼绉诲埌 Android 9
targetSdkVersion
锛屼絾鍙兘闇€瑕佽繘琛屼竴浜涚粏寰殑鏇存敼銆?/p> targetSdkVersion
鏇存柊鑷斥€?code>28鈥濓紝楠岃瘉搴旂敤鏄惁浠嶅彲鎸夐鏈熸柟寮忚繍琛岋紝鐒跺悗寮€濮嬩娇鐢ㄦ柊鐨?API銆?/p> 鍑嗗涓€鍙拌繍琛?Android 9 鐨勮澶?/h2>
纭繚涓?Android 9 鍏煎
targetSdkVersion
銆?/p> 鎵ц鍏煎鎬ф祴璇?/h3>
targetSdkVersion
鍋氫换浣曞彉鍔紝浠嶅彲鑳藉奖鍝嶅簲鐢ㄧ殑琛屼负鎴栦护鍏舵牴鏈棤娉曡繍琛屻€傚洜姝わ紝鎮ㄥ繀椤诲洖椤捐〃 1 涓殑鍏抽敭鍙樺寲锛屽苟瀵逛换浣曚负閫傚簲杩欎簺鍙樺寲鑰屽疄鐜扮殑淇杩涜娴嬭瘯銆?/p>
鍙樺寲 鎽樿 瀵归潪 SDK 鎺ュ彛鐨勯檺鍒?/td> 鐜板凡绂佹璁块棶鐗瑰畾鐨勯潪 SDK 鎺ュ彛锛屾棤璁烘槸鐩存帴璁块棶锛岃繕鏄€氳繃 JNI 鎴栧弽灏勮繘琛岄棿鎺ヨ闂€傚皾璇曡闂彈闄愬埗鐨勬帴鍙f椂锛屼細鐢熸垚 NoSuchFieldException
鍜?NoSuchMethodException
涔嬬被鐨勯敊璇€傝鎯呰鍙傞槄瀵归潪 SDK 鎺ュ彛鐨勯檺鍒躲€?/td> 绉婚櫎鍔犲瘑鎻愪緵绋嬪簭 浠?Android 9 寮€濮嬶紝Crypto JCA 鎻愪緵绋嬪簭宸茶绉婚櫎銆傝皟鐢? SecureRandom.getInstance("SHA1PRNG", "Crypto")
灏嗕細寮曞彂 NoSuchProviderException
銆?/td> 鏇翠弗鏍肩殑 UTF-8 瑙g爜鍣?/td> 鍦?Android 9 涓紝閽堝 Java 璇█鐨?UTF-8 瑙g爜鍣ㄦ瘮浠ュ線鏇翠弗鏍硷紝骞朵笖閬靛惊 Unicode 鏍囧噯銆?/td> 绂佹绌洪棽搴旂敤璁块棶鐩告満銆侀害鍏嬮鍜屼紶鎰熷櫒 鍦ㄥ簲鐢ㄥ浜庣┖闂茬姸鎬佹椂锛屼笉鑳藉啀璁块棶鐩告満銆侀害鍏嬮鎴?SensorManager 浼犳劅鍣ㄣ€?/td> 鏇存柊鎮ㄧ殑鐩爣鐗堟湰骞朵娇鐢?Android聽P 鍔熻兘
targetSdkVersion
鏇存柊涓?28 骞跺鍔?Android 9 涓彁渚涚殑鏂板姛鑳芥潵瀹炵幇瀵?Android 9 鐨勫叏闈㈡敮鎸併€?/p> targetSdkVersion
鏇存柊涓?28 鏃讹紝鎮ㄤ細娉ㄦ剰鍒?Android 9 杩樺紩鍏ヤ簡涓€浜涜涓哄彉鏇淬€傜敱浜庢煇浜涜涓哄彉鏇村彲鑳借姹傛洿鏀逛唬鐮佷互閬垮厤鍐茬獊锛屽洜姝わ紝鎮ㄥ簲鍏堟煡闃呮墍鏈変互 Android 9 涓虹洰鏍囩殑搴旂敤鐨勮涓哄彉鏇达紝浜嗚В鍦ㄦ偍鏇存敼 targetSdkVersion
鍚庢偍鐨勫簲鐢ㄤ細鍙楀埌鍝簺褰卞搷銆?/p> 鑾峰彇 Android 9 SDK
娴嬭瘯 Android 9 搴旂敤
targetSdkVersion
璁剧疆涓?P锛屽簲璇ユ敞鎰忕壒瀹氱殑骞冲彴鍙樺寲銆傚嵆渚挎偍涓嶅疄鐜?Android 9 涓殑鏂板姛鑳斤紝鍏朵腑鐨勪竴浜涘彉鍖栦粛鍙兘涓ラ噸褰卞搷搴旂敤鐨勮涓烘垨浠ゅ叾鏍规湰鏃犳硶杩愯銆?/p> targetSdkVersion
璁剧疆涓?28 鏃跺奖鍝嶅簲鐢ㄧ殑鍏抽敭鍙樺寲銆?/p>
鍙樺寲 鎽樿 鍓嶅彴鏈嶅姟鏉冮檺 鐜板湪锛屾兂瑕佷娇鐢ㄥ墠鍙版湇鍔$殑搴旂敤蹇呴』棣栧厛璇锋眰 FOREGROUND_SERVICE 鏉冮檺銆傝繖鏄櫘閫氭潈闄愶紝鍥犳锛岀郴缁熶細鑷姩涓鸿姹傛潈闄愮殑搴旂敤鎺堜簣姝ゆ潈闄愩€傚湪鏈幏寰楁鏉冮檺鐨勬儏鍐典笅鍚姩鍓嶅彴鏈嶅姟灏嗕細寮曞彂 SecurityException銆?/td> 寮冪敤 Bouncy Castle 鍔犲瘑 Android 9 寮冪敤浜嗗嚑涓潵鑷?Bouncy Castle 鎻愪緵绋嬪簭涓殑鍔犲瘑鎶€鏈紝浠d箣浠ョ敱 Conscrypt 鎻愪緵绋嬪簭鎻愪緵鐨勫姞瀵嗘妧鏈€傝皟鐢ㄨ姹?Bouncy Castle 鎻愪緵绋嬪簭鐨? getInstance()
鏃讹紝浼氱敓鎴?NoSuchAlgorithmException
閿欒銆傝瑙e喅杩欎簺閿欒锛岃涓嶈鍦?getInstance() 涓寚瀹氭彁渚涚▼搴忥紙涔熷氨鏄姹傞粯璁ゅ疄鐜帮級銆?/td> 绉婚櫎瀵? Build.serial
鐨勭洿鎺ヨ闂?/td> 鐜板湪锛岄渶瑕?Build.serial 鏍囪瘑绗︾殑搴旂敤蹇呴』璇锋眰 READ_PHONE_STATE
鏉冮檺锛岀劧鍚庝娇鐢?Android 9 涓柊澧炵殑鏂?Build.getSerial()
鍑芥暟銆?/td> 涓嶅厑璁稿叡浜?WebView 鏁版嵁鐩綍 鐜板湪锛屼笉鍏佽搴旂敤鍦ㄤ笉鍚岃繘绋嬩箣闂村叡浜竴涓?WebView 鏁版嵁鐩綍銆傚鏋滄偍鐨勫簲鐢ㄦ湁澶氫釜杩涚▼浣跨敤 WebView銆丆ookieManager 鎴?android.webkit 杞欢鍖呬腑鐨勪换浣曞叾浠?API锛屽垯鍦ㄧ浜屼釜杩涚▼璋冪敤 WebView 鍑芥暟鏃讹紝鎮ㄧ殑搴旂敤灏嗕細宕╂簝銆?/td> SELinux 绂佹璁块棶搴旂敤鐨勬暟鎹洰褰?/td> 绯荤粺寮哄埗姣忎釜搴旂敤鐨?SELinux 娌欑洅瀵规瘡涓簲鐢ㄧ殑绉佹湁鏁版嵁鐩綍寮哄埗鎵ц閫愪釜搴旂敤鐨?SELinux 闄愬埗銆傜幇鍦紝涓嶅厑璁哥洿鎺ラ€氳繃璺緞璁块棶鍏朵粬搴旂敤鐨勬暟鎹洰褰曘€傚簲鐢ㄥ彲浠ョ户缁娇鐢ㄨ繘绋嬮棿閫氫俊 (IPC) 鏈哄埗锛堝寘鎷€氳繃浼犻€?FD锛夊叡浜暟鎹€?/td> 鐢垫簮绠$悊
搴旂敤寰呮満缇ょ粍
UsageStatsManager.getAppStandbyBucket()
鏌ユ壘褰撳墠灞炰簬鍝釜缇ょ粍銆?/p> 鏈€浣冲疄璺?/h3>
鐪佺數妯″紡鏀硅繘
娴嬭瘯鍜岄棶棰樻帓鏌?/h2>
Android 璋冭瘯妗ュ懡浠?/h3>
UsageStatsManager.getAppStandbyBucket()
锛屽湪杩愯鏃舵煡鎵炬墍灞炵殑缇ょ粍銆?/p> 瀵归潪 SDK 鎺ュ彛鐨勯檺鍒?/h1>
鍖哄垎 SDK 鎺ュ彛鍜岄潪 SDK 鎺ュ彛
娴嬭瘯闈?SDK 鎺ュ彛
adb logcat
璁块棶杩欎簺鏃ュ織娑堟伅锛屾秷鎭皢鏄剧ず鍦ㄦ鍦ㄨ繍琛岀殑搴旂敤鐨?PID 涓嬨€?渚嬪锛屾棩蹇椾腑鐨勬潯鐩湅涓婂幓鍙兘绫讳技涓嬮潰杩欐牱锛?/p> StrictMode
锛堢О涓?detectNonSdkApiUsage
锛夛紝鍥犳褰撴偍鐨勫簲鐢ㄨ皟鐢ㄥ垪鍏ョ伆鍚嶅崟鐨勫簲鐢ㄦ椂锛屽爢鍙犺拷韪皢鏄剧ず涓婁笅鏂囥€?/p> 淇濈暀闈?SDK 鎺ュ彛鐨勭粨鏋?/h2>
璁块棶鏂瑰紡 缁撴灉 Dalvik 鎸囦护寮曠敤瀛楁 寮曞彂 NoSuchFieldError Dalvik 鎸囦护寮曠敤鍑芥暟 寮曞彂 NoSuchMethodError 閫氳繃 Class.getDeclaredField() 鎴?Class.getField() 鍙嶅皠 寮曞彂 NoSuchFieldException 閫氳繃 Class.getDeclaredMethod() 鎴?Class.getMethod() 鍙嶅皠 寮曞彂 NoSuchMethodException 閫氳繃 Class.getDeclaredFields() 鎴?Class.getFields() 鍙嶅皠 缁撴灉涓湭鍑虹幇闈?SDK 鎴愬憳 閫氳繃 Class.getDeclaredMethods() 鎴?Class.getMethods() 鍙嶅皠 缁撴灉涓湭鍑虹幇闈?SDK 鎴愬憳 閫氳繃 env->GetFieldID() 璋冪敤 JNI 杩斿洖 NULL锛屽紩鍙?NoSuchFieldError 閫氳繃 env->GetMethodID() 璋冪敤 JNI 杩斿洖 NULL锛屽紩鍙?NoSuchMethodError 甯歌闂瑙g瓟
涓€鑸棶棰?/h3>
NoSuchMethodError
/NoSuchFieldException
锛屽嵆浣垮簲鐢ㄦ兂瑕佷簡瑙f煇涓壒娈婄被鍒殑瀛楁/鍑芥暟鍚嶅崟锛屽钩鍙颁篃涓嶄細鍖呭惈鎺ュ彛銆?/li> Accessing hidden field|method ...
褰㈠紡鐨?logcat 璀﹀憡銆?姝ゅ锛屽皢涓哄彲璋冭瘯搴旂敤鏄剧ず toast 娑堟伅锛屽苟涓洪伃鍒版嫆缁濈殑浠讳綍闈?SDK 鎺ュ彛鎵撳嵃 logcat 娑堟伅銆?/p>
聽 adb shell settings put global hidden_api_policy_pre_p_apps 聽1
聽 adb shell settings put global hidden_api_policy_p_apps 1聽 adb shell settings delete global hidden_api_policy_pre_p_apps
聽 adb shell settings delete global hidden_api_policy_p_apps
鍏充簬 API 鍚嶅崟
聽 make hiddenapi-aosp-blacklist
聽 out/target/common/obj/PACKAGING/hiddenapi-aosp-blacklist.txt
鐩稿叧鐨勫簲鐢ㄥ吋瀹规€ч棶棰?/h3>
LOCAL_PRIVATE_PLATFORM_APIS := true
锛夋瀯寤虹殑搴旂敤銆?/p> 更多相关文章
随机推荐