ADB命令和ADB命令面試常見的問題

ADB命令常見的問題

連接模擬器端口: adb connect 127.0.0.1:7555(7555為mumu的端口)
列出已連接的設(shè)備:adb devices
啟動 adb 服務(wù):adb start-server
停止 adb 服務(wù):adb kill-server
指定設(shè)備:adb -s <設(shè)備序列號> <命令>
普通安裝:adb install <apk路徑>
覆蓋安裝:adb install -r <apk路徑>
完全卸載:adb uninstall <包名>
保留配置文件:adb uninstall -k <包名>
顯示所有應(yīng)用:adb shell pm list packages
只顯示系統(tǒng)應(yīng)用:adb shell pm list packages -s
只顯示第三方應(yīng)用:adb shell pm list packages -3
獲取前臺包名/activity名
mac:adb shell dumpsys activity | grep mFocusedActivity
win:adb shell dumpsys activity | findstr mFocusedActivity
啟動應(yīng)用:adb shell am start -n <包名>/<Activity名>
清除應(yīng)用數(shù)據(jù)與緩存:adb shell pm clear <包名>
強制停止應(yīng)用:adb shell am force-stop <包名>
從電腦上傳文件至設(shè)備:adb push <電腦路徑> <設(shè)備路徑>
從設(shè)備復(fù)制文件至電腦:adb pull <設(shè)備路徑> <電腦路徑>
將模擬器當(dāng)前顯示截圖:adb shell screencap <設(shè)備路徑>
清除舊日志信息:adb logcat -c
開始抓取日志:adb logcat -v time > .\logcat.log
查看系統(tǒng)資源:adb shell top | grep 包名
查看 CPU 信息:adb shell dumpsys cpuinfo
看內(nèi)存信息:adb shell dumpsys meminfo

ADB簡介:

ADB,即 Android Debug Bridge,它是 Android 開發(fā)/測試人員不可替代的強大工具,也是 Android 設(shè)備玩家的好玩具府框。安卓調(diào)試橋 (Android Debug Bridge, adb),是一種可以用來操作手機設(shè)備或模擬器的命令行工具窄潭。它存在于 sdk/platform-tools 目錄下。雖然現(xiàn)在 Android Studio 已經(jīng)將大部分 ADB 命令以圖形化的形式實現(xiàn)了,但是了解一下還是有必要的送矩。
注: 有部分命令的支持情況可能與 Android 系統(tǒng)版本及定制 ROM 的實現(xiàn)有關(guān)。

查看當(dāng)前連接設(shè)備

--查看當(dāng)前連接設(shè)備
adb devices
--如果發(fā)現(xiàn)設(shè)備
adb -s 設(shè)備號 其他指令

查看頂部Activity:

--Windows環(huán)境下:
adb shell dumpsys activity | findstr "mFocusedActivity"
--Linux哪替、Mac環(huán)境下
adb shell dumpsys activity | grep "mFocusedActivity"

查看日志

adb logcat

安裝apk文件

adb install xxx.apk
--次安裝方式栋荸,如果已存在,無法安裝凭舶;
--推薦使用覆蓋安裝
adb install -r xxx.apk
--比分直接RUN出來的是包test-onlu的無法安裝晌块,推薦使用****-t****
adb install -r -t xxx.apk

卸載App:

adb uninstall com.zhy.app
--如果想要保留數(shù)據(jù),則:
adb uninstall -k com.zhy.app

傳遞文件:

--往手機SDCard傳遞文件:
adb push 文件名 手機端SDCard路徑
--例如:
adb push 帥照.jpg /sdcard/

--從手機端下載文件:
adb pull /sdcard/xxx.txt

查看手機端安裝的所有app包名:

adb shell pm list packages

啟動Activity:

adb shell am start 包名/完整Activity路徑
--例如:
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity

--如果需要攜帶參數(shù)(攜帶一個Intent,Key 為name):
adb shell am start com.zhy.aaa/com.zhy.aaa.MainActivity -e name zhy
--啟動一個隱式的Intent:
adb shell am start -a "android.intent.action,VIEW" -d "https://www.google.com"

發(fā)送廣播:

adb shell am broadcast -a "broadcastactionfilter"
--如果需要攜帶參數(shù)(攜帶一個Intent,key為name):

adb shell am broadcast -a "broadcastactionfilter" -e name zhy

啟動服務(wù):

adb shell am startservice "com.zhy.aaa/com.zhy.aaa.MyService"

屏幕截圖:

--可以使用screencap命令來進行手機屏幕截圖帅霜,例如:
adb shell screencap /sdcard/screen.png

錄制視頻:

--可以使用screenrecord[options] filename命令來錄制屏幕視頻匆背,例如:

adb shell screenrecord /sdcard/demo.mp4

針對Android小白的常用ADB細致講解操作:

一.鏈接ADB:

啟動ADB的2種方式:

1.直接進入sdk/platform-tools目錄:
然后在命令行中輸入adb devices來驗證設(shè)備是否連接。
缺點:每次進入platform-tools目錄很麻煩身冀。
2.將adb地址寫入環(huán)境變量(即配置adb為環(huán)境變量)
--沒有配置環(huán)境變量之前:

1.png

解決上述圖片中的問題靠汁,請看下方針對MacOS和Windows系統(tǒng)的解決方案:
--對于macOS蜂大,可以這樣配置:

export PATH=$PATH:<path to Android SDK>/platform-tools

--然后在命令行中輸入source ~/.bash_profile或者source ~/.zshrc來更新配置文件。

--對于windows蝶怔,可以這樣配置:
1.先進入環(huán)境變量:


2.png

3.png

2.選擇系統(tǒng)變量下的Path再選擇編輯(你也可以選擇新建,注意添加分號;)

5.png

7.png

--然后去尋找你的Android SDK文件夾下的platform-tools,進入該文件夾并在地址欄復(fù)制當(dāng)前路徑兄墅。


8.png
9.png
10.png

--最后踢星,新建并添加復(fù)制好的路徑即可。


11.png

--驗證:配置環(huán)境變量成功后隙咸,關(guān)閉當(dāng)前cmd沐悦,再次進入cmd中,輸入adb信息五督,可以看到如下圖所示藏否,那么就OK了:


12.png

注意:Android SDK,你可在安卓官網(wǎng)去下載,或者如果你擁有AndroidStudio也會下載過它充包,它可存放在資源管理器下的任意位置副签。你知曉它的存放位置即可。

--手機打開“開發(fā)人員選項:(此處以華為暢玩7x手機為例)
進入手機設(shè)備的設(shè)置基矮,選擇關(guān)于手機

13.png

14.png

--找到版本號淆储,并連續(xù)點擊它7次及以上,直到出現(xiàn)“已打開開發(fā)者人員選項“字樣時停止家浇。 然后再回到設(shè)置 ->系統(tǒng)本砰,這時可以看見開發(fā)人員選項并按照圖示進行勾選。

15.png

--驗證ADB連接設(shè)備成功:
前面的步驟完成后(即環(huán)境配置成功钢悲、開發(fā)者選擇中開啟了USB調(diào)試模式)点额,打開cmd(快捷鍵windows鍵+R鍵盤,在框中輸入cmd)莺琳。在任意路徑進入cmd后还棱,輸入adb device:
--如果沒有連接手機或因為數(shù)據(jù)線問題等其他原因,則會出現(xiàn)下圖:(失敗原因請自己排查)

16.png

--成功后芦昔,如下圖所示:(下方一串字母是我的手機序列號)
17.png

上方的A5R7N18202000063是我的手機設(shè)備序列號(手機不同诱贿,設(shè)備序列號也就不同),device是設(shè)備狀態(tài)咕缎。
設(shè)備的3種狀態(tài):
offline ———設(shè)備未連接到adb或者沒有響應(yīng)
device———設(shè)備已連接到ADB
no device ———未連接到模擬器/設(shè)備

二. 安裝和卸載

1.安裝:
我們可以使用adb install [option] <path> 命令來將電腦上的一個APP安裝到手機上珠十,例如:
adb install crime.apk
注意:有時候apk文件不在你的啟動cmd的路徑下,記得添加apk文件在你電腦上的path路徑凭豪。
--如果當(dāng)前連接的設(shè)備個數(shù)超過一個(比如開啟多個模擬器)焙蹭。
那么在安裝操作之前,我們需要現(xiàn)在cmd中輸入
adb devices
查看當(dāng)前連接的設(shè)備的序列號嫂伞,并復(fù)制你想要給哪個設(shè)備安裝apk文件的設(shè)備序列號孔厉。然后指定要操作的設(shè)備的序列號拯钻,執(zhí)行adb -s [serial_number] command 命令。
比如現(xiàn)在有多個設(shè)備連接了電腦并都打開了開發(fā)者模式撰豺,那么我如果直到了我當(dāng)前華為設(shè)備的序列號后粪般,輸入下列命令:

adb -s A5R7N18202000063 install crime.apk

即可安裝成功crime.apk文件了。

2.覆蓋安裝:
如果你當(dāng)前要操作的手機設(shè)備已經(jīng)安裝了你想要安裝的APP污桦,你再去執(zhí)行安裝命令(即重復(fù)安裝)亩歹,就會報錯:Failure [INSTALL_FAILED_ALREADY_EXISTS].解決方案為:覆蓋安裝:加上-r(replace)來替換當(dāng)前已安裝的應(yīng)用。
adb install -r crime.apk
3.卸載:
卸載一個當(dāng)前設(shè)備上的某個APP的命令為:adb uninstall [option]<packagename>凡橱,前提是你得直到你想要卸載的APP的包名小作。
注意:卸載APP知道它的包名;從電腦上安裝APP到手機上只需要知道電腦中APK 的存放路徑和APK文件名稼钩。

APP卸載后顾稀,其緩存文件一般也會被清除。
如果要想保留緩存文件坝撑,添加 -k,即:
adb uninstall -k 包名

三.文件操作

1.Android 手機中的文件路徑:
以前手機容量較小静秆,一般會有可拔插的SD卡擴展內(nèi)存,然后把資源數(shù)據(jù)存放到SD卡目錄下∩茉兀現(xiàn)在诡宗,手機取消了SD卡,外部存儲空間很大了击儡,但是Android仍稱之為SD塔沃。為了做兼容,也會mock一個假的SD卡路徑阳谍。因此蛀柴,很多開發(fā)者將APP數(shù)據(jù)保存在/sdcard目錄下。現(xiàn)在已經(jīng)不推薦將文件存儲在/sdcard目錄下了矫夯。
--音視頻文件還是應(yīng)該放在SD卡目錄下鸽疾。 SD卡的路徑是/mnt/sdcard/或者/sdcard,/sdcard是/mnt/sdcard的軟鏈接训貌。其中制肮,/mnt/sdcard/DCIM一般用于存放照片,DCIM——Digital Camera Images递沪。但是截圖及APP保存圖片的位置豺鼻,一般是在/mnt/sdcard/Pictures。以此類推款慨,視頻文件存放在/mnt/sdcard/Movies等儒飒。

--當(dāng)我們手機上安裝完成了一個APP后,相關(guān)的文件存放在下面2個地方:
1):APP本身被存放在/data/app 目錄下檩奠。
2):文件目錄存放在/data/data/<package name>目錄下桩了,該目錄下存放有數(shù)據(jù)庫附帽、SharedPreference和其他緩存數(shù)據(jù)。

--如果想把手機中的文件拷貝到電腦中井誉,使用adb pull <remote> [local]命令蕉扮。其中,local地址為空送悔,則會拷貝到電腦當(dāng)前目錄下:
例如:

adb pull /sdcard/crime.apk

--如果想要把電腦中的文件拷貝到手機里面慢显,使用**adb push <local> <remote> **命令:
adb push crime.apk /sdcard/data/data

2.清除APP數(shù)據(jù):
在開發(fā)中,經(jīng)常會遇到:清空APP緩存數(shù)據(jù)欠啤,然后進行一系列請求。如屋灌,清空APP緩存數(shù)據(jù)洁段,可使用adb shell pm clear com.example.packagename 命令。注:該命令清除掉APP的緩存共郭,還能把APP的數(shù)據(jù)給清空祠丝。

3.查看所有App的名稱:
使用如下命令:

adb shell pm list packages

注意:該命令可以查看手機上的APP名稱〕冢可以在后面加上 -f 写半,這樣還能顯示該APP的路徑。
即:

adb shell pm list packages -f

四.事件輸入:

1.input:
使用adb shell input命令向屏幕輸入一些信息尉咕,
例如:
adb shell input text "insert%stext%shere"

注意:%s表示空格叠蝇。

--使用adb shell input tap命令來模擬屏幕點擊事件,例如:
adb shell input tap 500 1450

表示在屏幕上(500年缎,1450)的坐標(biāo)點上進行一次點擊悔捶。

--使用adb shell input swipe命令來模擬手勢滑動事件,例如:
adb shell input swipe 100 500 100 1450 100

表示從屏幕坐標(biāo)(100单芜,500)開始蜕该,滑動到(100,1450)結(jié)束,整個過程耗時100ms.

--使用上面的命令還可以模擬”****長按(long press)****操作洲鸠,也就是2個坐標(biāo)點相同堂淡,耗時超過500ms.
adb shell input swipe 100 500 100 500 500
--使用adb shell input keyevent命令來模擬點按實體按鈕的命令,例如:
adb shell input keyevent 25

該命令表示調(diào)低音量扒腕。數(shù)字25是在AOSP源碼中的KeyEvent類里賣弄定義的一個事件常量绢淀。該類定義了將近300個事件常量。

2.am:
am(Activity Manager)命令來啟動一個APP袜匿、啟動Activity更啄、啟動廣播和服務(wù)等等。
啟動一個activity居灯,最簡單的命令可以使用**adb shell am start **com.package.name/com.package.name.ActivityName祭务,例如:
adb shell am start com.example.crime/com.example.crime.MainActivity

--如果啟動帶有參數(shù)内狗,則使用-e標(biāo)簽,比如有一個SecondActivity义锥,如:

class SecondActivity : AppCompatActivity() {

    companion object {
        private val ARGUS_NAME = "argus_name"
        fun launch(activity: Activity, content: String): Intent {
            val intent = Intent(activity, SecondActivity::class.java)
            intent.putExtra(ARGUS_NAME, content)
            return intent
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_second)

        val name = intent.getStringExtra(ARGUS_NAME)
        nameTv.text = "Hello, $name"
    }
}

即啟動SecondActivity的話需要傳入一個agrus_name參數(shù)柳沙,那么在命令行中可以執(zhí)行:

adb shell am start com.example.crime/com.example.crime.SecondActivity -e argus_name QiuShui

--啟動帶的參數(shù)一般是Key-value形式,這里的key是argus_name,Value是QiuShui.
除了默認啟動的activity外拌倍,打開其他的activity時赂鲤,需要在清單文件中添加android:exported="true"屬性。
--要啟動一個隱式的Intent柱恤,也就是說需要傳入action等參數(shù)数初,在ADB調(diào)試橋中可以得知Intent的參數(shù)規(guī)范,比如-a表示action,-c表示category,-d表示data_uri,-e表示添加額外Key-Value信息梗顺。例如:
adb shell am start -a "android.intent.action.VIEW" -d "https://www.google.com"

上面這個命令會啟動瀏覽器打開谷歌網(wǎng)址頁面泡孩。

--am 也能發(fā)送廣播和啟動服務(wù)。比如啟動一個廣播寺谤,一般要添加一個-a
adb shell am broadcast -a "our.specified.action"
還可以在上述命令后面添加-e來添加額外的信息仑鸥。

--使用下面的命令可以直接讓手機重啟:
adb shell am broadcast -a android.intent.action.BOOT_COMPILETED

--啟動一個服務(wù)也是類似,例如:
adb shell am startservice "com.example.crime/com.example.crime.MyService"

五.事件輸出:

1.日志信息:
使用adb logcat可以顯示日志信息变屁,使用command +c (Windows下:ctrl+c)來停止日志輸出眼俊。
比起原生的adb logcat,JakeWharton大神的pidcat顯示效果更好:

18.png

但我還是更喜歡AndroidStudio的日志功能粟关,非常完善疮胖。

2.dumpsys:
dumpsys命令可以提供非常多的系統(tǒng)信息√芤郏可以通過adb shell service list來查看dumpsys能提供查詢信息的服務(wù)获列,常用的有:


19.png

例如,要查看電池信息蛔垢,命令行輸入adb shell dumpsys battery击孩,可以看到如下圖:

20.png

--使用**adb shell dumpsys activity **查看信息,會有很長的代碼鹏漆,分析其結(jié)構(gòu)巩梢,可以把上述命令得到的信息拆分為:

dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity permissions
dumpsys activity services
dumpsys activity recents
dumpsys activity activities
dumpsys activity processes

我們可以選擇這幾個中的一個命令進行查詢。例如查看界面相關(guān)的艺玲,使用adb shell dumpsys activity activities命令括蝠。
上述幾種信息類型可以用縮寫來表示,即adb shell dumpsys activity a等價于adb shell dumpsys activity activities命令等饭聚。注意:providers的縮寫是prov忌警、permissions的縮寫是perm。

--如果上述輸出內(nèi)容太多秒梳,只想關(guān)注運行的Activity結(jié)構(gòu)層次其他的無所謂法绵,可以使用grep命令來過濾:
adb shell dumpsys activity | grep -i 'run'

我這里會得到這樣的輸出:

  * ContentProviderRecord{978680e u0 qiushui.me.test/com.android.tools.fd.runtime.InstantRunContentProvider}
    authority=qiushui.me.test.com.android.tools.fd.runtime.InstantRunContentProvider
    Running activities (most recent first):
        Run #1: ActivityRecord{304ded1 u0 qiushui.me.test/.SecondActivity t14}
        Run #0: ActivityRecord{19b9e16 u0 qiushui.me.test/.MainActivity t14}
    Running activities (most recent first):
        Run #0: ActivityRecord{f9bafb7 u0 com.google.android.apps.nexuslauncher/.NexusLauncherActivity t13}
ACTIVITY MANAGER RUNNING PROCESSES (dumpsys activity processes)
    User #0: state=RUNNING_UNLOCKED

信息中:屏幕正在顯示的界面是SecondActivity箕速,然后是MainActivity.NexusLauncherActivity是處于最底層,就是Launcher.

--查看APP有那些進程朋譬,使用adb shell dumpsys activity p <packagename> | grep -i ‘ProcessRecord’ | grep -i 'PID’
盐茎,然后程序會輸出信息,你可以數(shù)一下有多少個PID開頭徙赢,有多少個就表示有幾個進程字柠。還可以知道分別的進程名和PID等等。
--查看APP使用了那些服務(wù)狡赐,使用** adb shell dumpsys activity s <package name> | grep -i ‘ServiceRecord’ 命令窑业,顯示結(jié)果中可以看出是誰推送的服務(wù)。
--查看當(dāng)前APP的內(nèi)存使用情況枕屉,使用
adb shell dumpsys meminfo <package name>命令数冬,顯示結(jié)果可以知道當(dāng)前APP內(nèi)存使用情況。
3.屏幕截圖:
使用
screencap<filename>** 命令來進行手機屏幕截圖搀庶,例如:
adb shell screencap /sdcard/screen.png

4.錄制視頻:
使用screenrecord [options] filename命令來錄制屏幕視頻,例如:
adb shell screenrecord /sdcard/demo.mp4

注:此命令適用于Android 4.4及以上的設(shè)備中铜异。
錄制視頻也有參數(shù)選項哥倔,比如 --size 設(shè)置視頻大小, --time-limit設(shè)置最大錄制時長等揍庄。

六.系統(tǒng)命令:

--查看進程信息:
使用adb shell ps命令查看進程信息咆蒿。可以在該命令后加包名蚂子,來查看某個應(yīng)用程序的進程信息沃测。
--查看CPU使用情況:
使用**adb shell top **命令來查看系統(tǒng)CPU使用情況。(ctrl+c結(jié)束)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末食茎,一起剝皮案震驚了整個濱河市蒂破,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌别渔,老刑警劉巖附迷,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哎媚,居然都是意外死亡喇伯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門拨与,熙熙樓的掌柜王于貴愁眉苦臉地迎上來稻据,“玉大人,你說我怎么就攤上這事买喧∧砻酰” “怎么了匆赃?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長秋度。 經(jīng)常有香客問我炸庞,道長,這世上最難降的妖魔是什么荚斯? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任埠居,我火速辦了婚禮,結(jié)果婚禮上事期,老公的妹妹穿的比我還像新娘滥壕。我一直安慰自己,他們只是感情好兽泣,可當(dāng)我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布绎橘。 她就那樣靜靜地躺著,像睡著了一般唠倦。 火紅的嫁衣襯著肌膚如雪称鳞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天稠鼻,我揣著相機與錄音冈止,去河邊找鬼。 笑死候齿,一個胖子當(dāng)著我的面吹牛熙暴,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播慌盯,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼周霉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亚皂?” 一聲冷哼從身側(cè)響起俱箱,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎孕讳,沒想到半個月后匠楚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡厂财,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年芋簿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片璃饱。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡与斤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撩穿,我是刑警寧澤磷支,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站食寡,受9級特大地震影響雾狈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抵皱,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一善榛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呻畸,春花似錦移盆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绞愚,卻和暖如春叙甸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背位衩。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工蚁署, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像近顷,于是被迫代替她去往敵國和親桐罕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,611評論 2 353

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