Android8.0初識(shí)

每次看見(jiàn)谷歌發(fā)布新的android系統(tǒng)時(shí),心里總有有一些小激動(dòng)刁品。對(duì)你沒(méi)聽(tīng)錯(cuò)浩姥,小激動(dòng);想想看我們對(duì)應(yīng)用究竟會(huì)不會(huì)崩潰呢镀裤?那些功能失效了缴饭?會(huì)有多少用戶(hù)投訴骆莹? 驚不驚喜幕垦,意不意外?不過(guò)都是玩笑話了疚察,只有谷歌不斷對(duì)升級(jí)仇奶,android才能更加進(jìn)步,作為一個(gè)android程序員岛抄,我是支持他的别惦!

首先整體看一下8.0 : 官網(wǎng)的英文描述是smarter、faster;Android8.0是全新版本夫椭,它優(yōu)化了電源及性能掸掸,并提供了多種全新的方式來(lái)擴(kuò)展您的應(yīng)用,針對(duì) Android 8.0 開(kāi)發(fā)應(yīng)用,并在您的應(yīng)用中利用最新的平臺(tái)功能蹭秋。規(guī)劃對(duì)新的后臺(tái)限制模型的支持扰付,并嘗試諸如自動(dòng)填充、XML 中的字體資源仁讨、自動(dòng)調(diào)整 TextView 的大小悯周、WebView 增強(qiáng)功能等一些全新 API。

想嘗嘗鮮陪竿?沒(méi)問(wèn)題。打開(kāi)您的AndroidStudio更新構(gòu)建配置將?compileSdkVersion族跛、buildToolsVersion闰挡、targetSdkVersion?和 Support Library 版本更新為下列版本:

android {? compileSdkVersion 'android-O'? buildToolsVersion '26.0.0-rc2'? defaultConfig {? ? targetSdkVersion 'O'? }? ...}dependencies {? compile 'com.android.support:appcompat-v7:26.0.0-beta1'}// REQUIRED:Google's new Maven repois required for the latest// support library that is compatible with Android 8.0repositories {? ? maven {? ? ? ? url 'https://maven.google.com'? ? }}

注意啦,注意啦礁哄,這是谷歌大大的原話——您不能在此配置下發(fā)布應(yīng)用长酗。“O”版本是一個(gè)臨時(shí) API 級(jí)別桐绒,只能用于 Android 8.0 期間的開(kāi)發(fā)和測(cè)試夺脾。您必須等到最終 API 級(jí)別發(fā)布時(shí)再發(fā)布 Android 8.0 變更,屆時(shí)再次更新配置茉继。

于是我就想說(shuō)咧叭,市場(chǎng)上涌現(xiàn)出來(lái)的那些8.0系統(tǒng),你們是想鬧哪樣烁竭?先挖點(diǎn)坑給大家嘗嘗鮮菲茬?

來(lái)來(lái)來(lái),我們先一起愉快的填填坑吧派撕!

坑1——后臺(tái)執(zhí)行限制:

如果針對(duì) Android 8.0 的應(yīng)用嘗試在不允許其創(chuàng)建后臺(tái)服務(wù)的情況下使用?startService()?函數(shù)婉弹,則該函數(shù)將引發(fā)一個(gè)?IllegalStateException。

坑2——后臺(tái)位置限制:

Fused Location Provider (FLP)

Geofencing

GNSS Measurements

Location Manager

Wi-Fi Manager

為確保您的應(yīng)用按預(yù)期方式運(yùn)行终吼,請(qǐng)完成以下步驟:

查看您的應(yīng)用的邏輯镀赌,并確保您使用的是最新的位置 API。

測(cè)試您的應(yīng)用是否在每個(gè)用例中都表現(xiàn)出預(yù)期行為际跪。

考慮使用Fused Location Provider (FLP)或地理圍欄來(lái)處理依賴(lài)于用戶(hù)當(dāng)前位置的用例商佛。

說(shuō)多了都是淚呀蛙粘,每次升級(jí)都要整一些幺蛾子出來(lái),測(cè)試您使用的用例是否表現(xiàn)出預(yù)期行為威彰。出牧。。歇盼。心中某些動(dòng)物一直在奔騰舔痕。。豹缀。

坑3——記錄未捕獲的異常

如果某個(gè)應(yīng)用安裝的?Thread.UncaughtExceptionHandler?未移交給默認(rèn)的?Thread.UncaughtExceptionHandler伯复,則當(dāng)出現(xiàn)未捕獲的異常時(shí),系統(tǒng)不會(huì)終止應(yīng)用邢笙。從 Android 8.0 開(kāi)始啸如,在此情況下系統(tǒng)將記錄異常堆棧跟蹤情況;在之前的平臺(tái)版本中氮惯,系統(tǒng)不會(huì)記錄異常堆棧跟蹤情況叮雳。我們建議,自定義?Thread.UncaughtExceptionHandler?實(shí)現(xiàn)始終移交給默認(rèn)處理程序處理妇汗;遵循此建議的應(yīng)用不受 Android 8.0 此項(xiàng)變更的影響帘不。

這個(gè)就牛逼了,谷歌大大發(fā)話了杨箭,你捕捉了老子的異常寞焙,老子就不干活了!應(yīng)用不會(huì)掛了互婿,系不系很牛逼捣郊,你會(huì)讓用戶(hù)玩一個(gè)僵尸應(yīng)用吧。

坑4——提醒窗口

如果應(yīng)用使用SYSTEM_ALERT_WINDOW權(quán)限并且嘗試使用以下窗口類(lèi)型之一來(lái)在其他應(yīng)用和系統(tǒng)窗口上方顯示提醒窗口:

TYPE_PHONE

TYPE_PRIORITY_PHONE

TYPE_SYSTEM_ALERT

TYPE_SYSTEM_OVERLAY

TYPE_SYSTEM_ERROR

...那么慈参,這些窗口將始終顯示在使用TYPE_APPLICATION_OVERLAY窗口類(lèi)型的窗口下方呛牲。如果應(yīng)用針對(duì)的是 Android 8.0,則應(yīng)用會(huì)使用TYPE_APPLICATION_OVERLAY窗口類(lèi)型來(lái)顯示提醒窗口懂牧。

如需了解詳細(xì)信息侈净,請(qǐng)參閱針對(duì) Android 8.0 的應(yīng)用的行為變更內(nèi)的提醒窗口的常用窗口類(lèi)型部分。

坑5——硬件序列號(hào)

Build.SERIAL 已棄用僧凤。需要知道硬件序列號(hào)的應(yīng)用應(yīng)改為使用新的Build.getSerial()函數(shù),該函數(shù)要求具有READ_PHONE_STATE權(quán)限元扔。

坑6——隱私升級(jí)

LauncherAppsAPI 不再允許工作資料應(yīng)用獲取有關(guān)主個(gè)人資料的信息躯保。當(dāng)某個(gè)用戶(hù)在托管配置文件中時(shí),LauncherAppsAPI 的行為就像同一配置文件組的其他配置文件中未安裝任何應(yīng)用一樣澎语。和之前一樣途事,嘗試訪問(wèn)無(wú)關(guān)聯(lián)的個(gè)人資料會(huì)引發(fā) SecurityExceptions验懊。

對(duì)于這個(gè)坑,我只想說(shuō)谷歌大大干得漂亮尸变!

采完坑的感覺(jué)有沒(méi)有很爽义图?來(lái)點(diǎn)其他的刺激一下?不得不說(shuō)安全和隱私召烂,每個(gè)版本谷歌都在下功夫去做(對(duì)碱工,沒(méi)錯(cuò),如果你被面試問(wèn)到android的最近幾個(gè)版本的區(qū)別奏夫,你就大聲喊出來(lái)安全和隱私都在逐步提升)怕篷。

簡(jiǎn)單的看一下吧,畢竟是好東西:

1酗昼、如果您的應(yīng)用的網(wǎng)絡(luò)安全性配置選擇退出對(duì)明文流量的支持廊谓,那么您的應(yīng)用的WebView對(duì)象無(wú)法通過(guò) HTTP 訪問(wèn)網(wǎng)站。每個(gè)WebView對(duì)象必須轉(zhuǎn)而使用 HTTPS麻削。

2蒸痹、除非身份驗(yàn)證器擁有用戶(hù)帳號(hào)或用戶(hù)授予訪問(wèn)權(quán)限,否則呛哟,應(yīng)用將無(wú)法再訪問(wèn)用戶(hù)帳號(hào)电抚。僅擁有GET_ACCOUNTS權(quán)限尚不足以訪問(wèn)用戶(hù)帳號(hào)。要獲得帳號(hào)訪問(wèn)權(quán)限竖共,應(yīng)用應(yīng)使用AccountManager.newChooseAccountIntent()或特定于身份驗(yàn)證器的函數(shù)蝙叛。獲得帳號(hào)訪問(wèn)權(quán)限后,應(yīng)用可以調(diào)用AccountManager.getAccounts()來(lái)訪問(wèn)帳號(hào)公给。Android 8.0 已棄用LOGIN_ACCOUNTS_CHANGED_ACTION借帘。相反,應(yīng)用在運(yùn)行時(shí)應(yīng)使用addOnAccountsUpdatedListener()獲取帳號(hào)更新信息

3淌铐、系統(tǒng)屬性?net.dns1肺然、net.dns2、net.dns3?和?net.dns4?不再可用腿准,此項(xiàng)變更可加強(qiáng)平臺(tái)的隱私性际起。

4、修正的權(quán)限授予的bug

5吐葱、此平臺(tái)不再支持 SSLv3街望。

6、在與未正確實(shí)現(xiàn) TLS 協(xié)議版本協(xié)商的服務(wù)器建立 HTTPS 連接時(shí)弟跑,HttpsURLConnection不再?lài)L試回退到之前的 TLS 協(xié)議版本并重試的權(quán)宜方法灾前。

7、Android 8.0 將使用安全計(jì)算 (SECCOMP) 過(guò)濾器來(lái)過(guò)濾所有應(yīng)用孟辑。允許的系統(tǒng)調(diào)用列表僅限于通過(guò) bionic 公開(kāi)的系統(tǒng)調(diào)用哎甲。此外蔫敲,還提供了其他幾個(gè)后向兼容的系統(tǒng)調(diào)用,但我們不建議使用這些系統(tǒng)調(diào)用炭玫。

8奈嘿、現(xiàn)在,您的應(yīng)用的WebView對(duì)象將在多進(jìn)程模式下運(yùn)行吞加。網(wǎng)頁(yè)內(nèi)容在獨(dú)立的進(jìn)程中處理裙犹,此進(jìn)程與包含應(yīng)用的進(jìn)程相隔離,以提高安全性榴鼎。

9伯诬、您無(wú)法再假定 APK 駐留在名稱(chēng)以 -1 或 -2 結(jié)尾的目錄中。應(yīng)用應(yīng)使用sourceDir獲取此目錄巫财,而不能直接使用目錄格式盗似。

10、對(duì)于ota升級(jí)方面優(yōu)化了ANDROID_ID

我家娃要醒了平项,就這樣吧赫舒,還有很多精彩大家自己去探索吧!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末闽瓢,一起剝皮案震驚了整個(gè)濱河市接癌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扣讼,老刑警劉巖缺猛,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異椭符,居然都是意外死亡荔燎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)销钝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)有咨,“玉大人,你說(shuō)我怎么就攤上這事蒸健∽恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵似忧,是天一觀的道長(zhǎng)渣叛。 經(jīng)常有香客問(wèn)我,道長(zhǎng)橡娄,這世上最難降的妖魔是什么诗箍? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮挽唉,結(jié)果婚禮上滤祖,老公的妹妹穿的比我還像新娘。我一直安慰自己瓶籽,他們只是感情好匠童,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著塑顺,像睡著了一般汤求。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上严拒,一...
    開(kāi)封第一講書(shū)人閱讀 49,071評(píng)論 1 285
  • 那天扬绪,我揣著相機(jī)與錄音,去河邊找鬼裤唠。 笑死挤牛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的种蘸。 我是一名探鬼主播墓赴,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼航瞭!你這毒婦竟也來(lái)了诫硕?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤刊侯,失蹤者是張志新(化名)和其女友劉穎章办,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體滨彻,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藕届,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疮绷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翰舌。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖冬骚,靈堂內(nèi)的尸體忽然破棺而出椅贱,到底是詐尸還是另有隱情,我是刑警寧澤只冻,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布庇麦,位于F島的核電站,受9級(jí)特大地震影響喜德,放射性物質(zhì)發(fā)生泄漏山橄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一舍悯、第九天 我趴在偏房一處隱蔽的房頂上張望航棱。 院中可真熱鬧睡雇,春花似錦、人聲如沸饮醇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)朴艰。三九已至观蓄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祠墅,已是汗流浹背侮穿。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留毁嗦,地道東北人亲茅。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像金矛,于是被迫代替她去往敵國(guó)和親芯急。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,513評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理驶俊,服務(wù)發(fā)現(xiàn)娶耍,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程饼酿,因...
    小菜c閱讀 6,358評(píng)論 0 17
  • 今天開(kāi)始進(jìn)入自我修煉的美妙旅程榕酒。 之所以叫“潔解結(jié)”,是想通過(guò)這個(gè)來(lái)記錄自己在NLP及其他心靈學(xué)科里的成果故俐,通透自...
    趙一桐咨詢(xún)師閱讀 217評(píng)論 0 1
  • 一個(gè)人無(wú)法感受到自己是還活著想鹰,一個(gè)人知道自己還有沒(méi)有感情。
    儀和閱讀 107評(píng)論 0 1