備戰(zhàn)2022偷遗,Android中高級面試必知必會

參考來源:字節(jié)跳動技術(shù)團隊圈盔、郭霖、鴻洋罚拟、玉剛台诗、掘金博主 xiangzhihong、Focusing赐俗、simpleeeeee拉队、DevYK、簡書博主 huangLearn阻逮、騰訊享學(xué)課堂粱快、慕課網(wǎng)、極客時間叔扼、尚學(xué)堂…

Android內(nèi)含:Activity事哭、Fragment、service瓜富、布局優(yōu)化鳍咱、AsyncTask相關(guān)、Android 事件分發(fā)機制与柑、 Binder流炕、Android 高級必備 :AMS,WMS,PMS澎现、Glide、 Android 組件化與插件化等面試題和技術(shù)棧每辟!

Java內(nèi)含:HashMap剑辫、ArrayList、LinkedList 渠欺、Hashset 源碼分析妹蔽、內(nèi)存模型、垃圾回收算法(JVM)挠将、多線程胳岂、注解、反射舔稀、泛型乳丰、設(shè)計模式等面試題和技術(shù)棧!

由于文章內(nèi)容比較多内贮,篇幅有限产园,資料已經(jīng)被整理成目錄,歡迎大家學(xué)習(xí)交流夜郁。

1.Activity

說下Activity生命周期

Activity A 啟動另一個Activity B 會調(diào)用哪些方法什燕?如果B是透明主題的又或則是個DialogActivity呢

說下onSaveInstanceState()方法的作用 ? 何時會被調(diào)用?

Activity的啟動流程

onSaveInstanceState(),onRestoreInstanceState的掉用時機

activity的啟動模式和使用場景

Activity A跳轉(zhuǎn)Activity B竞端,再按返回鍵屎即,生命周期執(zhí)行的順序

橫豎屏切換,按home鍵,按返回鍵,鎖屏與解鎖屏幕,跳轉(zhuǎn)透明Activity界面,啟動一個 Theme 為 Dialog 的 Activity,彈出Dialog時Activity的生命周期

onStart 和 onResume事富、onPause 和 onStop 的區(qū)別

Activity之間傳遞數(shù)據(jù)的方式Intent是否有大小限制技俐,如果傳遞的數(shù)據(jù)量偏大,有哪些方案

Activity的onNewIntent()方法什么時候會執(zhí)行

顯示啟動和隱式啟動

scheme使用場景,協(xié)議格式,如何使用

ANR 的四種場景

onCreate和onRestoreInstance方法中恢復(fù)數(shù)據(jù)時的區(qū)別

activty間傳遞數(shù)據(jù)的方式

跨App啟動Activity的方式,注意事項

Activity任務(wù)棧是什么

有哪些Activity常用的標(biāo)記位Flags

Activity的數(shù)據(jù)是怎么保存的,進程被Kill后,保存的數(shù)據(jù)怎么恢復(fù)的

2.Service

service 的生命周期统台,兩種啟動方式的區(qū)別

Service的兩種啟動方式雕擂?區(qū)別在哪

如何保證Service不被殺死 ?

Service與Activity怎么實現(xiàn)通信

IntentService是什么,IntentService原理饺谬,應(yīng)用場景及其與Service的區(qū)別

Service 的 onStartCommand 方法有幾種返回值?各代表什么意思?

bindService和startService混合使用的生命周期以及怎么關(guān)閉

用過哪些系統(tǒng)Service ?

了解ActivityManagerService嗎谣拣?發(fā)揮什么作用

3.BroadcastReceiver

廣播的分類和使用場景

廣播的兩種注冊方式的區(qū)別

廣播發(fā)送和接收的原理

本地廣播和全局廣播的區(qū)別

4.ContentProvider

什么是ContentProvider及其使用

ContentProvider的權(quán)限管理

ContentProvider,ContentResolver,ContentObserver之間的關(guān)系

ContentProvider的實現(xiàn)原理

ContentProvider的優(yōu)點

Uri 是什么

5.Handler

Handler的實現(xiàn)原理

子線程中能不能直接new一個Handler,為什么主線程可以主線程的Looper第一次調(diào)用loop方法,什么時候,哪個類

Handler導(dǎo)致的內(nèi)存泄露原因及其解決方案

一個線程可以有幾個Handler,幾個Looper,幾個MessageQueue對象

Message對象創(chuàng)建的方式有哪些 & 區(qū)別募寨?

Message.obtain()怎么維護消息池的

Handler 有哪些發(fā)送消息的方法

Handler的post與sendMessage的區(qū)別和應(yīng)用場景

handler postDealy后消息隊列有什么變化,假設(shè)先 postDelay 10s, 再postDelay 1s, 怎么處理這2條消息

MessageQueue是什么數(shù)據(jù)結(jié)構(gòu)

Handler怎么做到的一個線程對應(yīng)一個Looper森缠,如何保證只有一個MessageQueue ThreadLocal在Handler機制中的作用

HandlerThread是什么 & 好處 &原理 & 使用場景

IdleHandler及其使用場景

消息屏障,同步屏障機制

子線程能不能更新UI

為什么Android系統(tǒng)不建議子線程訪問UI

Android中為什么主線程不會因為Looper.loop()里的死循環(huán)卡死

MessageQueue#next 在沒有消息的時候會阻塞拔鹰,如何恢復(fù)?

Handler消息機制中贵涵,一個looper是如何區(qū)分多個Handler的

當(dāng)Activity有多個Handler的時候列肢,怎么樣區(qū)分當(dāng)前消息由哪個Handler處理

處理message的時候怎么知道是去哪個callback處理的

Looper.quit/quitSafely的區(qū)別

通過Handler如何實現(xiàn)線程的切換

Handler 如何與 Looper 關(guān)聯(lián)的

Looper 如何與 Thread 關(guān)聯(lián)的

Looper.loop()源碼

MessageQueue的enqueueMessage()方法如何進行線程同步的

MessageQueue的next()方法內(nèi)部原理

子線程中是否可以用MainLooper去創(chuàng)建Handler恰画,Looper和Handler是否一定處于一個線程

ANR和Handler的聯(lián)系

6.View繪制

View繪制流程

MeasureSpec是什么

子View創(chuàng)建MeasureSpec創(chuàng)建規(guī)則是什么

自定義Viewwrap_content不起作用的原因

在Activity中獲取某個View的寬高有幾種方法

為什么onCreate獲取不到View的寬高

View#post與Handler#post的區(qū)別

Android繪制和屏幕刷新機制原理

Choreography原理

什么是雙緩沖

為什么使用SurfaceView

什么是SurfaceView

View和SurfaceView的區(qū)別

SurfaceView為什么可以直接子線程繪制

SurfaceView、TextureView瓷马、SurfaceTexture拴还、GLSurfaceView

getWidth()方法和getMeasureWidth()區(qū)別

invalidate() 和 postInvalidate() 的區(qū)別

Requestlayout,onlayout欧聘,onDraw片林,DrawChild區(qū)別與聯(lián)系

LinearLayout、FrameLayout 和 RelativeLayout 哪個效率高

LinearLayout的繪制流程

自定義 View 的流程和注意事項

自定義View如何考慮機型適配

自定義控件優(yōu)化方案

invalidate怎么局部刷新

View加載流程(setContentView)

7.View事件分發(fā)

View事件分發(fā)機制

view的onTouchEvent怀骤,OnClickListerner和OnTouchListener的onTouch方法 三者優(yōu)先級

onTouch 和onTouchEvent 的區(qū)別

ACTION_CANCEL什么時候觸發(fā)

事件是先到DecorView還是先到Window

點擊事件被攔截费封,但是想傳到下面的View,如何操作

如何解決View的事件沖突

在 ViewGroup 中的 onTouchEvent 中消費 ACTION_DOWN 事件蒋伦,ACTION_UP事件是怎么傳遞

Activity ViewGroup和View都不消費ACTION_DOWN,那么ACTION_UP事件是怎么傳遞的

同時對父 View 和子 View 設(shè)置點擊方法弓摘,優(yōu)先響應(yīng)哪個

requestDisallowInterceptTouchEvent的調(diào)用時機

8.RecycleView

RecyclerView的多級緩存機制,每一級緩存具體作用是什么,分別在什么場景下會用到哪些緩存

RecyclerView的滑動回收復(fù)用機制

RecyclerView的刷新回收復(fù)用機制

RecyclerView 為什么要預(yù)布局

ListView 與 RecyclerView區(qū)別

RecyclerView性能優(yōu)化

9.Viewpager&Fragment

Fragment的生命周期 & 結(jié)合Activity的生命周期

Activity和Fragment的通信方式, Fragment之間如何進行通信

getFragmentManager痕届、getSupportFragmentManager 韧献、getChildFragmentManager之間的區(qū)別?

為什么使用Fragment.setArguments(Bundle)傳遞參數(shù)

FragmentPagerAdapter與FragmentStatePagerAdapter的區(qū)別與使用場景

FragmentPageAdapter和FragmentStatePageAdapter區(qū)別及使用場景

Fragment懶加載

ViewPager2與ViewPager區(qū)別

Fragment嵌套問題

10.WebView

如何提高WebView加載速度

WebView與 js的交互

WebView的漏洞

JsBridge原理

11.動畫

動畫的類型

補間動畫和屬性動畫的區(qū)別

ObjectAnimator爷抓,ValueAnimator及其區(qū)別

TimeInterpolator插值器势决,自定義插值器

TypeEvaluator估值器

12.Bitmap

Bitmap 內(nèi)存占用的計算

getByteCount() & getAllocationByteCount()的區(qū)別

Bitmap的壓縮方式

LruCache & DiskLruCache原理

如何設(shè)計一個圖片加載庫

有一張非常大的圖片,如何去加載這張大圖片

如果把drawable-xxhdpi下的圖片移動到drawable-xhdpi下,圖片內(nèi)存是如何變的蓝撇。

如果在hdpi果复、xxhdpi下放置了圖片,加載的優(yōu)先級渤昌。如果是400_800虽抄,1080_1920,加載的優(yōu)先級独柑。

13.mvc&mvp&mvvm

MVC及其優(yōu)缺點

MVP及其優(yōu)缺點

MVVM及其優(yōu)缺點

MVP如何管理Presenter的生命周期迈窟,何時取消網(wǎng)絡(luò)請求

14.Binder

Android中進程和線程的關(guān)系,區(qū)別

為何需要進行IPC,多進程通信可能會出現(xiàn)什么問題

Android中IPC方式有幾種、各種方式優(yōu)缺點

為何新增Binder來作為主要的IPC方式

什么是Binder

Binder的原理

Binder Driver 如何在內(nèi)核空間中做到一次拷貝的忌栅?

使用Binder進行數(shù)據(jù)傳輸?shù)木唧w過程

Binder框架中ServiceManager的作用

什么是AIDL

AIDL使用的步驟

AIDL支持哪些數(shù)據(jù)類型

AIDL的關(guān)鍵類车酣,方法和工作流程

如何優(yōu)化多模塊都使用AIDL的情況

使用 Binder 傳輸數(shù)據(jù)的最大限制是多少,被占滿后會導(dǎo)致什么問題

Binder 驅(qū)動加載過程中有哪些重要的步驟

系統(tǒng)服務(wù)與bindService啟動的服務(wù)的區(qū)別

Activity的bindService流程

不通過AIDL索绪,手動編碼來實現(xiàn)Binder的通信

15.內(nèi)存泄漏&內(nèi)存溢出

什么是OOM & 什么是內(nèi)存泄漏以及原因

Thread是如何造成內(nèi)存泄露的湖员,如何解決?

Handler導(dǎo)致的內(nèi)存泄露的原因以及如何解決

如何加載Bitmap防止內(nèi)存溢出

MVP中如何處理Presenter層以防止內(nèi)存泄漏的

16.性能優(yōu)化

內(nèi)存優(yōu)化

啟動優(yōu)化

布局加載和繪制優(yōu)化

卡頓優(yōu)化

網(wǎng)絡(luò)優(yōu)化

17.Window&WindowManager

什么是Window

什么是WindowManager

什么是ViewRootImpl

什么是DecorView

Activity瑞驱,View娘摔,Window三者之間的關(guān)系

DecorView什么時候被WindowManager添加到Window中

18.WMS

什么是WMS

WMS是如何管理Window的

IWindowSession是什么,WindowSession的創(chuàng)建過程是怎樣的

WindowToken是什么

WindowState是什么

Android窗口大概分為幾種唤反?分組原理是什么

Dialog的Context只能是Activity的Context凳寺,不能是Application的Context

App應(yīng)用程序如何與SurfaceFlinger通信的

View 的繪制是如何把數(shù)據(jù)傳遞給 SurfaceFlinger 的

共享內(nèi)存的具體實現(xiàn)是什么

relayout是如何向SurfaceFlinger申請Surface

什么是Surface

19.AMS

ActivityManagerService是什么鸭津?什么時候初始化的?有什么作用肠缨?

ActivityThread是什么?ApplicationThread是什么?他們的區(qū)別

Instrumentation是什么逆趋?和ActivityThread是什么關(guān)系?

ActivityManagerService和zygote進程通信是如何實現(xiàn)的

ActivityRecord怜瞒、TaskRecord父泳、ActivityStack,ActivityStackSupervisor吴汪,ProcessRecord

ActivityManager惠窄、ActivityManagerService、ActivityManagerNative漾橙、ActivityManagerProxy的關(guān)系

手寫實現(xiàn)簡化版AMS

20.系統(tǒng)啟動

android系統(tǒng)啟動流程

SystemServer杆融,ServiceManager,SystemServiceManager的關(guān)系

孵化應(yīng)用進程這種事為什么不交給SystemServer來做霜运,而專門設(shè)計一個Zygote

Zygote的IPC通信機制為什么使用socket而不采用binder

21.App啟動&打包&安裝

應(yīng)用啟動流程

apk組成和Android的打包流程

Android的簽名機制脾歇,簽名如何實現(xiàn)的,v2相比于v1簽名機制的改變

APK的安裝流程

22.序列化

什么是序列化

為什么需要使用序列化和反序列化

序列化的有哪些好處

Serializable 和 Parcelable 的區(qū)別

什么是serialVersionUID

為什么還要顯示指定serialVersionUID的值?

23.模塊化&組件化

什么是模塊化

什么是組件化

組件化優(yōu)點和方案

組件獨立調(diào)試

組件間通信

Aplication動態(tài)加載

ARouter原理

24.熱修復(fù)&插件化

插件化的定義

插件化的優(yōu)勢

插件化框架對比

插件化流程

插件化類加載原理

插件化資源加載原理

插件化Activity加載原理

熱修復(fù)和插件化區(qū)別

熱修復(fù)原理

25.AOP

AOP是什么

AOP的優(yōu)點

AOP的實現(xiàn)方式,APT,AspectJ,ASM,epic,hook

26.Jectpack

Navigation

DataBinding

Viewmodel

livedata

liferecycle

27.開源框架

Okhttp源碼流程,線程池

Okhttp攔截器,addInterceptor 和 addNetworkdInterceptor區(qū)別

Okhttp責(zé)任鏈模式

Okhttp緩存怎么處理

Okhttp連接池和socket復(fù)用

Glide怎么綁定生命周期

Glide緩存機制,內(nèi)存緩存,磁盤緩存

Glide與Picasso的區(qū)別

LruCache原理

Retrofit源碼流程,動態(tài)代理

LeakCanary弱引用,源碼流程

Eventbus

Rxjava

二. Java面試相關(guān)

1.HashMap

HashMap原理

HashMap 有用過嗎淘捡?您能給我說說他的主要用途嗎藕各?

您能說說 HashMap 常用操作的底層實現(xiàn)原理嗎?如存儲 put(K key, V value)焦除,查找 get(Object key)激况,刪除 remove(Object key),修改 replace(K key, V value)等操作

hash 沖突(或者叫 hash 碰撞)是什么膘魄?為什么會出現(xiàn)這種現(xiàn)象乌逐,如何解 決 hash 沖突?

HashMap 的容量為什么一定要是 2 的 n 次方创葡?

您能說說 HashMap 和 HashTable 的區(qū)別嗎浙踢?

HashMap中put()如何實現(xiàn)的

HashMap中g(shù)et()如何實現(xiàn)的

為什么HashMap線程不安全

HashMap1.7和1.8有哪些區(qū)別

解決hash沖突的時候,為什么用紅黑樹

紅黑樹的效率高灿渴,為什么一開始不用紅黑樹存儲

不用紅黑樹洛波,用二叉查找樹可以不

為什么閥值是8才轉(zhuǎn)為紅黑樹

為什么退化為鏈表的閾值是6

hash沖突有哪些解決辦法

HashMap在什么條件下擴容

HashMap中hash函數(shù)怎么實現(xiàn)的,還有哪些hash函數(shù)的實現(xiàn)方式

為什么不直接將hashcode作為哈希值去做取模,而是要先高16位異或低16位

為什么擴容是2的次冪

鏈表的查找的時間復(fù)雜度是多少

紅黑樹

2.ArrayList

ArrayList定義

ArrayList 的構(gòu)造器

add 方法源碼分析

get 方法源碼分析

set 方法源碼分析

ArrayList和LinkedList的區(qū)別骚露,以及應(yīng)用場景

3. LinkedList

LinkedList 定義

LinkedList 支持的操作

Node 類

addFirst 源碼分析

getFirst 方法源碼分析

removeFirst 方法源碼分析

add(int index, E e)方法源碼分析

4. Hashset 源碼

屬性

構(gòu)造方法

添加元素

刪除元素

查詢元素

遍歷元素

全部源碼

5. 內(nèi)存模型

內(nèi)存模型產(chǎn)生背景

物理機的并發(fā)問題

Java 內(nèi)存模型的組成分析

Java 內(nèi)存間的交互操作

Java 內(nèi)存模型運行規(guī)則

6. 垃圾回收算法(JVM)

Jvm的內(nèi)存模型,每個里面都保存的什么

類加載機制的幾個階段加載蹬挤、驗證、準(zhǔn)備荸百、解析闻伶、初始化滨攻、使用够话、卸載

對象實例化時的順序

類加載器,雙親委派及其優(yōu)勢

垃圾回收機制

談?wù)剬?JVM 的理解?

JVM 內(nèi)存區(qū)域蓝翰,開線程影響哪塊區(qū)域內(nèi)存?

對 Dalvik女嘲、ART 虛擬機有什么了解畜份?對比

7.多線程

談一談java線程模型

Java中創(chuàng)建線程的方式,Callable,Runnable,Future,FutureTask

線程的幾種狀態(tài)

談?wù)劸€程死鎖,如何有效的避免線程死鎖欣尼?

如何實現(xiàn)多線程中的同步

synchronized和Lock的使用爆雹、區(qū)別,原理;

volatile愕鼓,synchronized和volatile的區(qū)別钙态?為何不用volatile替代synchronized?

鎖的分類菇晃,鎖的幾種狀態(tài)册倒,CAS原理

為什么會有線程安全?如何保證線程安全

sleep()與wait()區(qū)別,run和start的區(qū)別,notify和notifyall區(qū)別,鎖池,等待池

Java多線程通信

為什么Java用線程池

Java中的線程池參數(shù),共有幾種

說下 Java 中的線程創(chuàng)建方式磺送,線程池的工作原理

8.注解

注解的分類和底層實現(xiàn)原理

自定義注解

9.反射

什么是反射

反射機制的相關(guān)類

反射中如何獲取Class類的實例

如何獲取一個類的屬性對象 & 構(gòu)造器對象 & 方法對象

Class.getField和getDeclaredField的區(qū)別驻子,getDeclaredMethod和getMethod的區(qū)別

反射機制的優(yōu)缺點

10.泛型

泛型概念的提出(為什么需要泛型)?

什么是泛型估灿?

自定義泛型接口崇呵、泛型類和泛型方法

類型通配符

11.設(shè)計模式

你所知道的設(shè)計模式有哪些

單例設(shè)計模式

工廠設(shè)計模式

建造者模式(Builder)

適配器設(shè)計模式

裝飾模式(Decorator)

策略模式(strategy)

觀察者模式(Observer)

由于文章內(nèi)容比較多,篇幅有限馅袁,資料已經(jīng)被整理成目錄域慷,歡迎大家學(xué)習(xí)交流。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末司顿,一起剝皮案震驚了整個濱河市芒粹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌大溜,老刑警劉巖化漆,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钦奋,居然都是意外死亡座云,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門付材,熙熙樓的掌柜王于貴愁眉苦臉地迎上來朦拖,“玉大人,你說我怎么就攤上這事厌衔¤档郏” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵富寿,是天一觀的道長睬隶。 經(jīng)常有香客問我锣夹,道長,這世上最難降的妖魔是什么苏潜? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任银萍,我火速辦了婚禮,結(jié)果婚禮上恤左,老公的妹妹穿的比我還像新娘贴唇。我一直安慰自己,他們只是感情好飞袋,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布戳气。 她就那樣靜靜地躺著,像睡著了一般巧鸭。 火紅的嫁衣襯著肌膚如雪物咳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天蹄皱,我揣著相機與錄音览闰,去河邊找鬼。 笑死巷折,一個胖子當(dāng)著我的面吹牛压鉴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锻拘,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼油吭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了署拟?” 一聲冷哼從身側(cè)響起婉宰,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎推穷,沒想到半個月后心包,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡馒铃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年蟹腾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片区宇。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡娃殖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出议谷,到底是詐尸還是另有隱情炉爆,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站芬首,受9級特大地震影響鲫凶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜衩辟,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望波附。 院中可真熱鬧艺晴,春花似錦、人聲如沸掸屡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仅财。三九已至狈究,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盏求,已是汗流浹背抖锥。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留碎罚,地道東北人磅废。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像荆烈,于是被迫代替她去往敵國和親拯勉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

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