Android 14適配指南

一、應(yīng)用行為變更

1.1记餐、進(jìn)程只能殺死自己的后臺(tái)進(jìn)程

??說(shuō)明:從Android 14開(kāi)始驮樊,當(dāng)應(yīng)用調(diào)用 killBackgroundProcesses() 時(shí),該API只能殺死應(yīng)用自己的后臺(tái)進(jìn)程片酝。如果傳入其他應(yīng)用的包名囚衔,該方法對(duì)其他應(yīng)用的后臺(tái)進(jìn)程沒(méi)有影響。

??應(yīng)用不應(yīng)使用 killBackgroundProcesses() 或以其他方式嘗試影響其他應(yīng)用的進(jìn)程生命周期雕沿。如果應(yīng)用不必要地殺死其他應(yīng)用练湿,會(huì)降低系統(tǒng)性能并增加電池消耗,因?yàn)樯院笮枰耆貑⑦@些應(yīng)用审轮,這比恢復(fù)現(xiàn)有的緩存應(yīng)用占用的資源要多得多肥哎。

1.2、默認(rèn)情況下拒絕使用精準(zhǔn)鬧鐘

??說(shuō)明:Android 12中引入的精準(zhǔn)鬧鐘權(quán)限SCHEDULE_EXACT_ALARM疾渣,不再預(yù)先授予大多數(shù)針對(duì)Android 13及更高版本的新安裝應(yīng)用篡诽,將默認(rèn)設(shè)置為拒絕。如果用戶(hù)通過(guò)備份還原操作將應(yīng)用數(shù)據(jù)傳輸?shù)紸ndroid14的設(shè)備上榴捡,權(quán)限仍然會(huì)被拒絕杈女。如果現(xiàn)有的應(yīng)用已經(jīng)擁有此權(quán)限,它將在設(shè)備升級(jí)到Android 14 時(shí)預(yù)先授予吊圾。

始終允許以下類(lèi)型的應(yīng)用程序調(diào)用setExact()或setExactAndAllowWhileIdle()方法:

  • 使用平臺(tái)證書(shū)簽名的應(yīng)用程序达椰;
  • 特權(quán)應(yīng)用程序;
  • 電源許可名單上的應(yīng)用程序(如果應(yīng)用符合要求项乒,可以使用intent操作請(qǐng)求ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)

影響范圍:

  • targetSdkVersion為33或更高版本的應(yīng)用啰劲;
  • 在 manifest中聲明SCHEDULE_EXACT_ALARM權(quán)限;
  • 不屬于豁免或者授權(quán)前擁有權(quán)限檀何;
  • 不是日歷或者鬧鐘應(yīng)用蝇裤。
1.3趁尼、前臺(tái)服務(wù)類(lèi)型是必填項(xiàng)

??說(shuō)明:Android 14 為目標(biāo)平臺(tái),則必須指定適當(dāng)?shù)那芭_(tái)服務(wù)類(lèi)型猖辫。與以前的 Android 版本一樣,可組合使用多個(gè)類(lèi)型砚殿。

下面列出了可供選擇的前臺(tái)服務(wù)類(lèi)型:

  • camera
  • connectedDevice
  • dataSync
  • health
  • location
  • mediaPlayback
  • mediaProjection
  • microphone
  • phoneCall
  • remoteMessaging
  • shortService
  • specialUse
  • systemExempted
// 示例
<manifest ...>
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
  <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
    <application ...>
      <service
          android:name=".MyMediaPlaybackService"
          android:foregroundServiceType="mediaPlayback"
          android:exported="false">
      </service>
    </application>
</manifest>

??如果應(yīng)用中的用例與這些類(lèi)型均不相關(guān)啃憎,強(qiáng)烈建議您遷移邏輯以使用 WorkManager用戶(hù)發(fā)起的數(shù)據(jù)傳輸作業(yè)

1.4似炎、將前臺(tái)服務(wù)遷移到用戶(hù)啟動(dòng)的數(shù)據(jù)傳輸作業(yè)類(lèi)型中

??說(shuō)明:由于Android 14對(duì)應(yīng)用使用前臺(tái)服務(wù)應(yīng)用了嚴(yán)格的規(guī)則辛萍,所以在Android 14中,我們引入了一種新的API羡藐,用于指定作業(yè)是由用戶(hù)啟動(dòng)的數(shù)據(jù)傳輸作業(yè)贩毕。該API 有助于需要持續(xù)時(shí)間更長(zhǎng)、用戶(hù)啟動(dòng)的數(shù)據(jù)傳輸?shù)挠美袜拢鐝倪h(yuǎn)程服務(wù)器下載文件辉阶。

??用戶(hù)啟動(dòng)的數(shù)據(jù)傳輸作業(yè)由用戶(hù)啟動(dòng)。這些作業(yè)需要通知瘩扼,立即啟動(dòng)谆甜,并且可能會(huì)在系統(tǒng)條件允許的情況下運(yùn)行更長(zhǎng)的時(shí)間。

??用戶(hù)啟動(dòng)的數(shù)據(jù)傳輸作業(yè)需要新的運(yùn)行權(quán)限: RUN_USER_INITIATED_JOBS集绰。系統(tǒng)將會(huì)自動(dòng)授予此權(quán)限规辱。如果未在應(yīng)用manifest中聲明權(quán)限,系統(tǒng)將拋出SecurityException栽燕。

??影響范圍:targetSdkVersion為34的應(yīng)用罕袋。

1.5、語(yǔ)法性別

Android 14 推出了針對(duì)語(yǔ)法性別的 API:GrammaticalInflectionManager碍岔,其提供了針對(duì)單個(gè) App 獲取浴讯、設(shè)置性別偏好的入口。

getApplicationGrammaticalGender():獲取語(yǔ)法性別偏好付秕,返回的是 Configuration 類(lèi)中的 int 常量兰珍,有這么幾種類(lèi)型:

  • GRAMMATICAL_GENDER_NOT_SPECIFIED, 0:尚未指定性別偏好,將用默認(rèn)的資源文本
  • GRAMMATICAL_GENDER_NEUTRAL, 1:指定中性询吴、客觀的資源文本
  • GRAMMATICAL_GENDER_FEMININE, 2:指定針對(duì)女性的資源文本
  • GRAMMATICAL_GENDER_MASCULINE, 3:指定針對(duì)男性的資源文本

setRequestedApplicationGrammaticalGender():相對(duì)應(yīng)的將上述常量類(lèi)型動(dòng)態(tài)設(shè)置到性別偏好掠河。

這樣可以針對(duì)不同的性別,加載不同的資源目錄:

  • 女性 —— res/values-fr-feminine
  • 男性 —— res/values-fr-masculine
  • 中性 —— res/values-fr

二猛计、用戶(hù)體驗(yàn)

2.1唠摹、授予對(duì)照片和視頻的部分訪問(wèn)權(quán)限

??新增權(quán)限:READ_MEDIA_VISUAL_USER_SELECTED

??說(shuō)明: 在Android14上與應(yīng)用交互的用戶(hù)現(xiàn)在可以授予對(duì)其媒體庫(kù)的部分訪問(wèn)權(quán)限(READ_MEDIA_IMAGES和READ_MEDIA_VIDEO)。

新對(duì)話框包含以下選項(xiàng):

  • 選擇照片和視頻: Android14中的新功能奉瘤。用戶(hù)選擇想要提供給應(yīng)用的特定照片和視頻勾拉;
  • 全部允許:用戶(hù)授予對(duì)設(shè)備上所有照片和視頻的完整庫(kù)訪問(wèn)權(quán)限煮甥;
  • 不允許:用戶(hù)拒絕所有訪問(wèn)。

??如果用戶(hù)選擇了“選擇照片和視頻”并且應(yīng)用稍后再次請(qǐng)求READ_MEDIA_IMAGES 或者 READ_MEDIA_VIDEO權(quán)限藕赞,系統(tǒng)會(huì)顯示不同的對(duì)話框成肘,讓用戶(hù)有機(jī)會(huì)授予完全訪問(wèn)的權(quán)限,維持現(xiàn)狀斧蜕,或者授予對(duì)其他照片和視頻的訪問(wèn)權(quán)限双霍。為了幫助應(yīng)用支持新的變化,系統(tǒng)引入了一個(gè)新的權(quán)限READ_MEDIA_VISUAL_USER_SELECTED批销。

如果應(yīng)用不聲明READ_MEDIA_VISUAL_USER_SELECTED權(quán)限洒闸,則會(huì)發(fā)生以下行為:

  • 在用戶(hù)與應(yīng)用會(huì)話期間,將會(huì)授予對(duì)用戶(hù)選擇的照片和視頻的READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO 臨時(shí)訪問(wèn)權(quán)限均芽。當(dāng)應(yīng)用移到后臺(tái)或者當(dāng)用戶(hù)主動(dòng)殺死應(yīng)用時(shí)丘逸,系統(tǒng)最終會(huì)拒絕這些權(quán)限。此行為就像其他一次性權(quán)限一樣;

??如果應(yīng)用稍后需要訪問(wèn)其他照片和視頻掀宋,必須手動(dòng)請(qǐng)求權(quán)限重新獲得權(quán)限深纲。

2.2、改變不可關(guān)閉通知的方式

??說(shuō)明:對(duì)于應(yīng)用向用戶(hù)顯示不可關(guān)閉的前臺(tái)通知布朦,從Android14開(kāi)始允許用戶(hù)關(guān)閉此類(lèi)通知囤萤。

??這項(xiàng)變更適用于通過(guò) Notification.Builder#setOngoing(true)NotificationCompat.Builder#setOngoing(true)設(shè)置 Notification.FLAG_ONGOING_EVENT 來(lái)阻止用戶(hù)關(guān)閉前臺(tái)通知的應(yīng)用。FLAG_ONGOING_EVENT 的行為已發(fā)生變化是趴,使用戶(hù)實(shí)際上能夠關(guān)閉此類(lèi)通知涛舍。

在以下情況下,此類(lèi)通知仍不可關(guān)閉:

  • 當(dāng)手機(jī)處于鎖定狀態(tài)時(shí)
  • 如果用戶(hù)選擇全部清除通知操作(有助于防止意外關(guān)閉)

此外唆途,這一新行為不適用于以下用例中的不可關(guān)閉通知:

  • 使用 MediaStyle 創(chuàng)建的通知
  • 安全和隱私用例的政策限制使用
  • 企業(yè)設(shè)備政策控制器 (DPC) 和支持軟件包
2.3富雅、非線性字體放大至 200%

??說(shuō)明:從Android14開(kāi)始,系統(tǒng)支持高達(dá)200%的字體縮放肛搬,為弱視用戶(hù)提供了符合網(wǎng)絡(luò)內(nèi)容無(wú)障礙指南 (WCAG) 的其他無(wú)障礙功能選項(xiàng)没佑。

2.4、區(qū)域偏好

??說(shuō)明:區(qū)域偏好使用戶(hù)能夠自定義溫度單位温赔、一周的第一天蛤奢、數(shù)字系統(tǒng)。新 Android設(shè)置菜單為用戶(hù)提供了一個(gè)集中位置來(lái)更改應(yīng)用程序區(qū)域偏好陶贼,應(yīng)用可通過(guò)API例如getTemperatureUnit和getFirstDayOfWeek獲取用戶(hù)設(shè)置啤贩,以便調(diào)整應(yīng)用內(nèi)顯示信息的方式。

2.5拜秧、數(shù)據(jù)安全信息更顯眼

??說(shuō)明:為了加強(qiáng)用戶(hù)隱私保護(hù)痹屹,Android 14 增加了系統(tǒng)顯示您在 Play 管理中心表單中聲明的信息的位置數(shù)量。目前枉氮,用戶(hù)可以在 Google Play 中的應(yīng)用詳情的數(shù)據(jù)安全部分查看此信息志衍。

2.6暖庄、安全的全屏 intent 通知

??說(shuō)明: 在 Android 11(API 級(jí)別 30)中,任何應(yīng)用都可以在手機(jī)處于鎖定狀態(tài)時(shí)使用 Notification.Builder.setFullScreenIntent 發(fā)送全屏 intent楼肪。您可以通過(guò)在 AndroidManifest 中聲明 USE_FULL_SCREEN_INTENT 權(quán)限培廓,在應(yīng)用安裝時(shí)自動(dòng)授予此權(quán)限。

??全屏 intent 通知適用于需要用戶(hù)立即注意的極高優(yōu)先級(jí)通知春叫,例如用戶(hù)來(lái)電或用戶(hù)配置的鬧鐘設(shè)置医舆。從 Android 14 開(kāi)始,獲準(zhǔn)使用此權(quán)限的應(yīng)用僅限于提供通話和鬧鐘的應(yīng)用象缀。對(duì)于不適合此情況的任何應(yīng)用,Google Play 商店會(huì)撤消其默認(rèn)的 USE_FULL_SCREEN_INTENT 權(quán)限爷速。

??在用戶(hù)更新到 Android 14 之前央星,在手機(jī)上安裝的應(yīng)用仍擁有此權(quán)限。用戶(hù)可以開(kāi)啟和關(guān)閉此權(quán)限惫东。

??您可以使用新 API NotificationManager.canUseFullScreenIntent 檢查應(yīng)用是否具有該權(quán)限莉给;如果沒(méi)有,應(yīng)用可以使用新 intent ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT 啟動(dòng)設(shè)置頁(yè)面廉沮,在該頁(yè)面中颓遏,用戶(hù)可以授予權(quán)限。

三滞时、圖形

3.1叁幢、Path可查詢(xún)和可插值

??說(shuō)明:Android的Path API是一種用于創(chuàng)建和渲染矢量圖形的強(qiáng)大而靈活的機(jī)制,具有描邊或填充路徑坪稽、從線段或二次或三次曲線構(gòu)建路徑曼玩、執(zhí)行布爾運(yùn)算以獲得更復(fù)雜的形狀。但是對(duì)象的內(nèi)部在創(chuàng)建后對(duì)調(diào)用者是不透明的窒百。

??可以調(diào)用moveTo()黍判、lineTo()和cubicTo() 添加路徑段等方法創(chuàng)建Path,但是沒(méi)有辦法詢(xún)問(wèn)該路徑的段是什么篙梢,因此必須在創(chuàng)建時(shí)保留該信息顷帖。從 Android 14 開(kāi)始,可以查詢(xún)路徑里面有些什么渤滞,同時(shí)支持路徑內(nèi)部插值返回新路徑贬墩。

四、安全

4.1蔼水、限制隱式intent

??說(shuō)明: Android 通過(guò)以下方式限制應(yīng)用向內(nèi)部應(yīng)用組件發(fā)送隱式intent:

  • 隱式intent僅傳遞給exported的組件震糖。應(yīng)用程序必須使用明確的intent傳遞給unexported的組件,或者將組件標(biāo)記為exported趴腋。
  • 如果應(yīng)用創(chuàng)建一個(gè)pending intent吊说,但intent未指定組件或包论咏,系統(tǒng)現(xiàn)在會(huì)拋出異常。

??這些更改可防止惡意應(yīng)用攔截用在供應(yīng)用內(nèi)部組件使用的隱式intent颁井。

4.2 更安全的動(dòng)態(tài)代碼加載

??說(shuō)明: 如果應(yīng)用使用動(dòng)態(tài)代碼加載 (DCL)丈挟,則所有動(dòng)態(tài)加載的文件都必須標(biāo)記為只讀榛臼,否則系統(tǒng)會(huì)拋出異常。建議應(yīng)用盡可能避免動(dòng)態(tài)加載代碼,因?yàn)檫@樣做會(huì)大大增加應(yīng)用程序因代碼注入或代碼篡改而受到危害的風(fēng)險(xiǎn)趣钱。

??為防止現(xiàn)有動(dòng)態(tài)加載文件拋出異常,建議嘗試在應(yīng)用中再次動(dòng)態(tài)加載文件之前刪除并重新創(chuàng)建這些文件唐责。重新創(chuàng)建文件時(shí)瞒爬,請(qǐng)按照前面的指導(dǎo)在寫(xiě)入時(shí)將文件標(biāo)記為只讀∈癖洌或者將現(xiàn)有文件重新標(biāo)記為只讀悄谐,但在這種情況下,強(qiáng)烈建議首先驗(yàn)證文件的完整性(例如库北,通過(guò)根據(jù)可信值檢查文件的簽名)爬舰,來(lái)保護(hù)你的app避免被惡意篡改。

4.3 Zip路徑遍歷

??說(shuō)明:對(duì)于以 Android 14 為目標(biāo)平臺(tái)的應(yīng)用寒瓦,Android 會(huì)通過(guò)以下方式防止 Zip 路徑遍歷漏洞:如果 Zip 文件條目名稱(chēng)包含“..”或以“/”開(kāi)頭情屹,ZipFile(String)ZipInputStream.getNextEntry() 會(huì)拋出 ZipException

??應(yīng)用可以通過(guò)調(diào)用 dalvik.system.ZipPathValidator.clearCallback() 選擇停用此驗(yàn)證杂腰。

4.4 額外的后臺(tái)啟動(dòng)activity限制

??說(shuō)明:系統(tǒng)進(jìn)一步限制了應(yīng)用在后臺(tái)啟動(dòng) Activity 的時(shí)機(jī):

  • 當(dāng)應(yīng)用發(fā)送PendingIntent使用PendingIntent.send()或類(lèi)似方法時(shí)垃你,如果應(yīng)用想要授予自己的后臺(tái)activity啟動(dòng)權(quán)限以啟動(dòng)intent,則該應(yīng)用現(xiàn)在必須調(diào)用setPendingIntentBackgroundActivityStartMode(MODE_BACKGROUND_ACTIVITY_START_ALLOWED)來(lái)明確的表達(dá)意圖喂很。
  • 當(dāng)一個(gè)可見(jiàn)應(yīng)用使用bindService()方法綁定另一個(gè)在后臺(tái)運(yùn)行的應(yīng)用的服務(wù)時(shí) 蜡镶,如果該可見(jiàn)應(yīng)用想要將其自己的后臺(tái)活動(dòng)啟動(dòng)權(quán)限授予綁定服務(wù),則它現(xiàn)在必須添加BIND_ALLOW_ACTIVITY_STARTS標(biāo)志恤筛。

??通過(guò)這樣的限制可以防止惡意應(yīng)用程序?yàn)E用API從后臺(tái)啟動(dòng)破壞性activity以便保護(hù)用戶(hù)官还。

4.5、廣播接收器必須指定導(dǎo)出行為

??說(shuō)明: 以 Android 14 為目標(biāo)平臺(tái)并使用 上下文注冊(cè) 的接收器的應(yīng)用和服務(wù)指定以下標(biāo)志毒坛,以指定接收器是否應(yīng)導(dǎo)出到設(shè)備上的所有其他應(yīng)用:RECEIVER_EXPORTEDRECEIVER_NOT_EXPORTED望伦。此要求有助于使用Android 13 中引入的這些接收器的功能,來(lái)保護(hù)應(yīng)用主板安全漏洞的影響煎殷。

五屯伞、可升級(jí)Android 14的機(jī)子

以下只列出部份品牌:

  • 小米13Pro、小米13豪直、小米12T
  • vivo X90 Pro劣摇、iQOO 11
  • Pixel 4a (5G)、Pixel 5弓乙、Pixel 5a末融、Pixel 6勾习、Pixel 6 Pro......
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末英岭,一起剝皮案震驚了整個(gè)濱河市诅需,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖邀桑,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捏萍,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)芥挣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)驱闷,“玉大人,你說(shuō)我怎么就攤上這事空免】樟恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蹋砚,是天一觀的道長(zhǎng)扼菠。 經(jīng)常有香客問(wèn)我,道長(zhǎng)坝咐,這世上最難降的妖魔是什么循榆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮墨坚,結(jié)果婚禮上秧饮,老公的妹妹穿的比我還像新娘。我一直安慰自己泽篮,他們只是感情好盗尸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著帽撑,像睡著了一般泼各。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上亏拉,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天历恐,我揣著相機(jī)與錄音,去河邊找鬼专筷。 笑死弱贼,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的磷蛹。 我是一名探鬼主播吮旅,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了庇勃?” 一聲冷哼從身側(cè)響起檬嘀,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎责嚷,沒(méi)想到半個(gè)月后鸳兽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罕拂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年揍异,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爆班。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衷掷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柿菩,到底是詐尸還是另有隱情戚嗅,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布枢舶,位于F島的核電站懦胞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏凉泄。R本人自食惡果不足惜躏尉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旧困。 院中可真熱鬧,春花似錦稼锅、人聲如沸吼具。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拗盒。三九已至,卻和暖如春锥债,著一層夾襖步出監(jiān)牢的瞬間陡蝇,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工哮肚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留登夫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓允趟,卻偏偏與公主長(zhǎng)得像恼策,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子潮剪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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