
2016-05-27 |&nb ↔sp; 發布者:梁國(•₩≤≈guó)芳 |"γ¥♠ 查看(kàn):332≠δ0次
app開(kāi)發分(fēn)辨率:整個(gè)屏幕的(de)像素數(shù)目,為(wèi)了(l∞∏™εe)表示方便一(yī)般用(yòng)屏幕的(de)像素寬δπ'&度(水(shuǐ)平像素數(shù)目)乘以★♥φ像素高(gāo)度表示,形如(rú)1280720,反之分(fēn)辨率為(wèi)1280720的(de)屏幕,像素寬度不(bù)一(yī)定為(wèi)β∑∏1280
屏幕密度:表示單位面積內(nèi)的(de)像素個(gè)數(shù),通(tōα☆α♣ng)常用(yòng)dpi為(wèi)單位,即每英寸多(duō)少(shǎo)個(gè)"↑像素點
px:長(cháng)度單位,以具體(tǐ)像β ×∑素為(wèi)單位
dp:長(cháng)度單位,與具體(tǐ)屏幕密§¶度無關,顯示的(de)時(shí)候根據具體(tǐ)平台屏幕密度的(de∞£)不(bù)同最終轉換為(wèi)相(xiàng)應的(☆©de)像素長(cháng)度,具體(tǐ)轉§♠換規則是(shì): 1dp = (目标屏幕密度/标準密度)*px,标準密度為(wèi)160dpi,例如(rú),1dp長(cháng)度在密度為(wèi)160dpi的(de)平台表示一(yī)個(gè)像素的(de)長(cháng)度,而在240dpi的(de)平台則表示1.5個(gè)像素的(de)長(cháng)度
屏幕尺寸:屏幕的(de)大(dà)小(xiǎo),通(₩∑γ tōng)常用(yòng)屏幕對(duì)角線的(de)長(→≠cháng)度表示
UI界面在不(bù)同平台的(de)适配受屏幕≤♣&尺寸和(hé)屏幕密度影(yǐng)響,Android适配機(jī)制(zhì)就(jiù)是(shì λ™§)在資源後面添加對(duì)這(zhè)兩種因素☆βδ的(de)限定,通(tōng)過不(bù)同的(de)限定區(¶¥∞qū)分(fēn)不(bù)同的(de)平台資源,Android在使用(yòng)資源的(de)時(shí)候會(huì<α★₽)優先選擇滿足本平台限定的(de)資源,再找最接近(jìn)條× ÷♥件(jiàn)的(de),再找默認(即不(bù)加限定)Ω♥,通(tōng)過選擇适合當前平台的(de)資源來(lái)完成不(bù)同 λ平台的(de)适配。
屏幕尺寸分(fēn)為(wèi):small,normal,large,xlarge分(fēn)别表示小(xiǎo),中,大(dà),超大(dà)屏
屏幕密度分(fēn)為(wèi):ldpi,mdpi,hdpi,xhdpi,它們的(de)标準值分(fēn)别是(shì):120dpi,160dpi,240dpi,320dpi
以上(shàng)劃分(fēn)均表示的(de)是(shì)一(y≥φε ī)個(gè)範圍:

在資源目錄後面加上(shàng)上(shàng)面的(de)限定就(☆♣∏jiù)能(néng)為(wèi)資源指定特定的(de)适用(yòn ¥g)平台,如(rú)下(xià)所示

表示大(dà)屏,中密度布局會(huì)選α™&擇上(shàng)面那(nà)個(gè)main.xml,超大(dà)屏,中密度會(huì)選擇下(xi ≠≤à)面那(nà)個(gè)main.xml
在實際開(kāi)發過程中屏幕尺寸不(bù)夠₹ 直觀,android将其轉換為(wèi)分(fēn)辨率表示,根據屏幕具體€♥γ(tǐ)分(fēn)辨率可(kě)選擇相(xiàng)應的↑§(de)限定符

小(xiǎo)結:通(tōng)過加上(shàng)上(¥ shàng)述限定可(kě)以實現(xiàn)一(yī)個(gè)apk适配幾種主流的(de)屏幕尺寸和(hé)屏幕密度,這(zhè•♣✔≈)種限定方式比較适用(yòng)于對(duì)外(wài)<®&發布應用(yòng),不(bù)知(zhī)道(dào)終端✔©具體(tǐ)參數(shù)的(de)情況,但(dàn)是(shì)不(bù)↕&能(néng)做(zuò)到(dào)精确适配,對(d↔uì)于屏幕尺寸和(hé)密度相(xiàng)差不(b >ù)大(dà)的(de)兩種平台不(bù)能(néng)很(hěn)好(h☆£ ǎo)的(de)區(qū)分(fēn)。
為(wèi)了(le)解決上(shàng)述問(wèn)題,↑≠自(zì)Android3.2開(kāi)始,引入了(le)精确适配,理(lǐ)論上(sh࣠'♣ng)可(kě)以适配任意像素寬度,高(gāα≥o)度,屏幕密度的(de)平台,需用(yòng)≤ <以下(xià)方式添加限定符

其中w1280dp表示屏幕寬度為(wèi)1280dp,h752dp表示屏幕高(gāo)度為(wèi)752dp,160dpi表示屏幕密度,其中屏幕寬,高(gāo)必↔× 須以dp為(wèi)單位,在知(zhī)道(dào)屏幕像素寬高(gā$§≤o)度的(de)情況下(xià)可(kě)以通(tα ōng)過公式:1dp = (目标屏幕密度/标準密度)*px 轉換成dp單位。
例如(rú):某平台屏幕寬,高(gāo)分(fēn)别為(wèi)1920px,720px,屏幕密度為(wèi)240dpi
适配該平台的(de)限定為(wèi):

或者

根據公式1dp=(240/160)px=1.5px,寬度,高(gāo)度轉為(wèi)dp單位分(fēn)别是(shì)1280dp和(hé)480dp.
Android自(zì)适應不(bù)同分(fēn)γ$辨率或不(bù)同屏幕大(dà)小(xiǎo≈γ↕₩)的(de)layout布局(橫屏|豎屏)
一(yī):不(bù)同的(de)layout→™∞
Android手機(jī)屏幕大(dà)小(xiǎ∑λo)不(bù)一(yī),有(yǒu)4♠•≤>80320, 640360, 800480.'☆ε怎樣才能(néng)讓App自(zì)動适應不(bù)同的(de)屏幕≤¥↔呢(ne)?
其實很(hěn)簡單,隻需要(yào)在res©♦∏目錄下(xià)創建不(bù)同的(de)layout文(wén)件λ↑♦(jiàn)夾,比如(rú)layout-640360,£₽∑©layout-800480,所有(yǒu λ™)的(de)layout文(wén)件(jiàn)在編譯之後都₹ ←÷(dōu)會(huì)寫入R.java裡(lǐ),而γφ系統會(huì)根據屏幕的(de)大(dà)小(xiǎo)©λ≠λ自(zì)己選擇合适的(de)layout進行(xíng₩)使用(yòng)。
二:hdpi、mdpi、ldpi
在之前的(de)版本中,隻有(yǒu)一(yī)個(gè)drawβ≤ able,而2.1版本中有(yǒu)drawable-mdpi、d•®✔rawable-ldpi、drawable-hdpi三個(gè)←απ,這(zhè)三個(gè)主要(yào)是(shì)為(wèi)了(le)支持€€多(duō)分(fēn)辨率。
drawable- hdpi、drawable×∞- mdpi、drawable-ldpi的(de)區→☆♦(qū)别:
(1)drawable-hdpi裡(lǐ)面存放(fàng)高(gāα↕∑✘o)分(fēn)辨率的(de)圖片,如(rú)WVGA (480800),Fλ€WVGA (480854)
(2)drawable-mdpi裡(lǐ)面存 ≠•放(fàng)中等分(fēn)辨率的(de)圖片,如(rú)HVGA ±♥♣'(320480)
(3)drawable-ldpi裡(lǐ)面存放(fàng)低(dī)分(f¶¶ ēn)辨率的(de)圖片,如(rú)QVGA (2403§20)
系統會(huì)根據機(jī)器(qì)的(de)分(★★< fēn)辨率來(lái)分(fēn)别到(d ≥ào)這(zhè)幾個(gè)文(wén)件(jiàn)夾裡(♦Ω£lǐ)面去(qù)找對(duì)應的(de)圖片。
更正:應該是(shì)對(duì)應不(bù)同density ≠<≥的(de)圖片
在開(kāi)發程序時(shí)為(wèi)了(le)兼容不(bù)§₩βγ同平台不(bù)同屏幕,建議(yì)各自(zì)文(wén)件(j ₩> iàn)夾根據需求均存放(fàng)不(bù)同版本δδ圖片。
[i]備注:三者的(de)解析度不(bù)一(yī)樣,就(ji≥₩₽∞ù)像你(nǐ)把電(diàn)腦(nǎo)的(de£π ✔)分(fēn)辨率調低(dī),圖片會(huì)變大(dà)一(yī)Ω 樣,反之分(fēn)辨率高(gāo),圖片縮小✔σ(xiǎo)。 [/i]
屏幕方向:
橫屏豎屏自(zì)動切換:
可(kě)以在res目錄下(xià)建立layout-port-8006©♣↓00和(hé)layout-land兩個€©(gè)目錄,裡(lǐ)面分(fēn)别放(fàng)置豎屏£λ和(hé)橫屏兩種布局文(wén)件(jià£←n),這(zhè)樣在手機(jī)屏幕方向₹✔≤$變化(huà)的(de)時(shí)候系統會(huì)自(zì)£©₹¶動調用(yòng)相(xiàng)應的(de)布局文(wén)件(jiàn♠" γ),避免一(yī)種布局文(wén)件(∏↔δjiàn)無法滿足兩種屏幕顯示的(de)問(®¥→wèn)題。
不(bù)同分(fēn)辨率橫屏豎屏自(z✔δì)動切換:
以800600為(wèi)例
可(kě)以在res目錄下(xià)建立layout-po↓rt-800600和(hé)layout-<♣land-800600兩個(gè)目錄
不(bù)切換:
以下(xià)步驟是(shì)網上(shàng) ∑流傳的(de),不(bù)過我自(zì)己之前是(sh<&ì)通(tōng)過圖形化(huà)界面實現(xiàn)₩這(zhè)個(gè)配置,算(suàn)是(shì)殊& ♦途同歸,有(yǒu)空(kōng)我會(huì)把圖片貼上(← ≠shàng)來(lái)。
還(hái)要(yào)說(shuō)明(míng)一(yī)♠✔∑點:每個(gè)activity都(dōu)有(yǒu ✘δ)這(zhè)個(gè)屬性screenOrienta≈α∏tion,每個(gè)activity都(dōu)需要(yào)設置,可(kě)以設置為(wèi)豎屏(portrait),也(yě)可(kě)✔®以設置為(wèi)無重力感應(nosensor)。
要(yào)讓程序界面保持一(yī)個(gè)方向,不(bù)随手機(j♣£λ→ī)方向轉動而變化(huà)的(de)處理(lǐ)辦法±♦♠¥:
在AndroidManifest.xml裡(lǐ)面配置£"一(yī)下(xià)就(jiù)可(kě →λ)以了(le)。加入這(zhè)一(yī)行(xíng)android☆↔:screenOrientation="l•♠€∏andscape"。
例如(rú)(landscape是(shì)橫向,por₩φΩ≤trait是(shì)縱向):
Java代碼:
<?xml version="1.0" ≤ε ∏encoding="utf-8"?>
<manifestxmlns:androiΩ§¥★d="http://schemas.android.com/a•↔pk/res/android"
package="com.ray.≈∑linkit"
android:versionCode="1"
android:versionName="1.0">
<application android:icon=&qu ∑ ot;@drawable/icon"android:labelλ≤↕="@string/app_na↓ 'me">
<activity android:nam∏γ •e=".Main"
android:label="@string/✔'≈✔app_name"
android:screenOrientation="po§←₽↔rtrait">
<intent-filter>✔
<action android:name>πφ€="android.intent.action™∏™.MAIN" />
<category android:name=&qλ•uot;android.intent.category.LAUNCHER&qu₽®♠ot; />
</intent-filter>&nbsσ₽p;
</activity> β≈<;
<activity android:name=&>δquot;.GamePlay"&§βnbsp;
android:screenOrientati✔₩on="portrait"></acti♦☆vity>
<activity androidσ×ε≈:name=".OptionView"
android:screenOrientation="portrβ₽×™ait"></activityπ™>
</application>&n&σbsp;
<uses-sdk android:minSdkVe★δrsion="3" /> €ε;
</manifest>
另外(wài),android中每次屏幕的(de)切換動會(huì)重啓σ≥αActivity,所以應該在Activity銷毀≥前保存當前活動的(de)狀态,在Activity再次Crδ<eate的(de)時(shí)候載入配置,那(nà)樣,進行(xíng←↕¶Ω)中的(de)遊戲就(jiù)不(bù)會(huì)自(zì)動重啓 <€了(le)!
有(yǒu)的(de)程序适合從(cóng)豎屏切換到(dào)橫屏,或者×↓↔♠反過來(lái),這(zhè)個(gè)時(shí)候怎麽辦呢(n€¥€e)?可(kě)以在配置Activity的(de)地(d✘®≠ì)方進行(xíng)如(rú)下(xià)的(de)配置a•₩✔ndroid:screenOrientation="portrait←↑←✘"。這(zhè)樣就(jiù)可(kě)以保證是(shì)豎屏總δλ是(shì)豎屏了(le),或者landscap₽≠↓e橫向。
而 有(yǒu)的(de)程序是(shì)适合橫豎屏切換的(de↓✘α)。如(rú)何處理(lǐ)呢(ne)?首先要(yào)€≈在配置Activity的(de)時(shí)候進行(xíng)如(rú)下(x&↕↔ià)的(de)配 置:android:configChanges="keyboardHidden|orienε↑><tation",另外(wài)需要(yào&<∏∞)重寫Activity的(de) onCo₩nfigurationChanged方法。實現(xiàn✘✔≤)方式如(rú)下(xià),不(bù)需要(yào)做(z∏±uò)太多(duō)的(de)內(nèi)容:
@Override
public void onConfigurationChanged(Configuration newConfig) {'™
super.onConfigurationChanged(newCon<σ←§fig);
if (this.getResources().getConfiguration().orientation ==Confiφ guration.ORIENTATION_LANDSCAPE)₽λ {
// land do nothing is ok
} else if (this.getResource• ε↔s().getConfiguration().orientation ==Configuraγ≈₽&tion.ORIENTATION_PORTRAIT) {&n↕±εbsp;
// port do nothing is ok
}
}
寫 一(yī)個(gè)支持多(duō)分(fēn)辨的(de)程序,<®Ω基于1.6開(kāi)發的(de),建立了(le)三✔個(gè)資源文(wén)件(jiàn)夾drawa®←≥ble-hdpi drawable-mdpidrawable-ldpi,♠★裡(lǐ)面分(fēn)别存放(fàng)72*72 48*48 36*36的♣€(de)icon圖标文(wén)件(jiàn)。當我在Gδ₽1(1.5的(de)系統)上(shàng)測試時(shí),圖标應該自(z↑≈'♥ì)适應為(wèi)48*48才對(duì)啊,但(dàn)實際顯示的±→(de)是(shì)36*36。怎麽才能(néng)讓其自(zì)适₹≤α應 48*48的(de)icon圖标呢(ne)
解決辦法 drawable-hdpi drawa∏₩ble-mdpi drawable-ldpi改成←βdrawable-480320 drawable-8↔≥≥±00480的(de)多(duō)分(fēn)辨¥±×€支持的(de)文(wén)件(jiàn)夾
對(duì) 于Android遊戲開(kāi)發我們不(bù)得(de×£)不(bù)像iPhone那(nà)樣思考兼容 A $ndroid平闆電(diàn)腦(nǎo),對(duì÷₩©)于蘋果要(yào)考慮iPad、iPhon↔£•e 3GS和(hé)iPhone 4等屏幕之間(jiān)的(de)兼☆¶容性,對(duì)于幾乎所有(yǒu)的(de)分 λ(fēn)辨率總結了(le)大(dà)約♥ ♠超過20中粉筆(bǐ)阿女(nǚ)郎的(d→±σe)大(dà)小(xiǎo)和(hé)對(d♣<uì)應關系,對(duì)于開(kāi)發Android♣ 遊戲而言可(kě)以考慮到(dào)未來(l$σ®ái)的(de)3.0以 及很(hěn)多(duō)平闆電(diàn)腦(nǎα o)的(de)需要(yào)。
常規的(de)我們可(kě)能(néng)隻考慮QVGA,HVG§§A,WVGA,FWVGA和(hé)DVGA,但(dàn)是β¥(shì)抛去(qù)了(le)手機(jī)不₩<÷(bù)談,可(kě)能(néng)平闆使用(yòng)類似WSV≥€ GA的(de)1024×576以及WXGA的(de)12≥ ♣®80×768等等。
QVGA = 320 * 240;
WQVGA = 320 * 480;
WQVGA2 = 400 * 240;
WQVGA3 = 432 * 240;
HVGA = 480 * 320;
VGA = 640 * 480;
WVGA = 800 * 480;
WVGA2 = 768 * 480;
FWVGA = 854 * 480;
DVGA = 960 * 640;
PAL = 576 * 520;
NTSC = 486 * 440;
SVGA = 800 * 600;
WSVGA [...]
這(zhè)是(shì)一(yī)個(gè)比較有(yǒu)代表性的(de)>εβλAndroid軟件(jiàn)資源包,dra↓$∑↔wable裡(lǐ)面存放(fàng)的÷ε±>(de)是(shì)應用(yòng)的(¶₽de)圖标文(wén)件(jiàn),la♥✔>yout存放(fàng)的(de)是(shì)布局,簡單說(shuō)就✔↕(jiù)是(shì)這(zhè)些(xiē)圖标如(rú)επ<何擺放(fàng)。為(wèi)什(shén)麽Andro €♥id上(shàng)需要(yào)這(zhè)麽多(d€uō)資源包文(wén)件(jiàn)和(hé)布局文(wé₹β∞n)件(jiàn)是(shì)我們接下(xià)來(l♣φ≈ái)需要(yào)討(tǎo)論的(de)問(wèn)題。
Android 設備屏幕的(de)尺寸是(shì)各式各樣的(Ωδφde),如(rú)小(xiǎo)米是(shì)4英寸的(de),Xoo> m平闆是(shì)10英寸;分(fēn)辨率也&π(yě)千奇百怪,800×480,960×5λ₹40等;Android版本的(de)碎 片化(huà)問(wèn)題± 更是(shì)萦繞于心,不(bù)過在設計(jì)應用(yòng)∏≈時(shí)可(kě)以分(fēn)為(wèi)兩大(dà)塊:3.0之前∏≠的(de)版本和(hé)3.0之後的(de)版本。這(z→₹∑↕hè)種情況會(huì)帶來(lái)什(shén)麽問(wαèn)題我們用(yòng)三個(gè)假設來(lái )說(shuō)明(míng)一(yī)下(xià)。 ε≈™
1. 假設你(nǐ)的(de)手上(shàng)有(yǒu)兩個(gè)4₹↑©英寸的(de)設備,設備A的(de)分(fēnγ)辨率是(shì)800×480,設備B的(dε✘>e)分(fēn)辨率是(shì)1600×₽™₹;960。你(nǐ)在設備A上(shàng)設計(>♠jì)了(le)一(yī)個(gè)64&t×σ§imes;64像素的(de)圖标,感覺它大(dà)小(xiǎo)正合适,但(σ♥dàn)放(fàng)到(dào)設備B上(s∞ δhàng)的(de)時(shí)候,這(zhè)個(gè)♣♣圖标看(kàn)上(shàng)去(qù)就(jiù)隻有(yǒu)之前↓$ 一(yī)半大(dà)小(xiǎo)了(le)。
2. 假設你(nǐ)手上(shàng)的(de)兩個(gè)設備,設備A是(s®₩ hì)4英寸,設備B是(shì)10英寸。在設備A上(shàng)方放(fàn± φ↓g)了(le)一(yī)個(gè)tab控件(jiàn§φ®σ),有(yǒu)三個(gè)頁簽。放(fàng)到(dào)設備B上(≤λ¶↓shàng)看(kàn)時(shí)tab控件(jiàn)的(de♦•©™)三個(gè)頁簽被拉得(de)很(hěn)長(cháng§∏),本來(lái)放(fàng)6個(gè)頁簽的(d¥ e)空(kōng)間(jiān)隻放(fàng)了(le α®♦)三個(gè)頁簽。
3. 假設你(nǐ)手上(shàng)的(de)兩個(gè)設備,設備A€π裝的(de)是(shì)Android2.3φΩ←β,設備B裝的(de)是(shì)Androi★×≥ d4.0,而設備B沒有(yǒu)menu建,風(fēng)格也(yě)$λ↕≈不(bù)一(yī)樣。你(nǐ)發現(xiàn)兩個(gè)設備上(♣≈★shàng)用(yòng)同一(yī)套風(fēng)≤π格的(de)皮膚并不(bù)合适。
Google 提供了(le)一(yī)套體(tφγ↓₹ǐ)系去(qù)解決這(zhè)些(xiē)問(wèn)題。我們再回到(dào→∞)上(shàng)面的(de)那(nà)張圖,drawable文(wén)₩±件(jiàn)夾有(yǒu)ldpi、mdpi、hdpi、xhdpi四≠₩♣π種。dpi指像素/英寸, 而ldpi指120,m€¥dpi指160,hdpi指240,xhdpi指320。小(xiǎo)↑λ×σ米手機(jī)是(shì)4英寸、854&÷→¶→times;480的(de)分(fēn)辨率,那(nà)麽小(xiǎo₽ε✔)米手機(jī)的(de)dpi就(jiù)是♣♠£(shì) 854的(de)平方加480的(de)平方和(hé™≈)開(kāi)2次方後除以4,結果大(dà)約是(shì)24Ω✔5。如(rú)果應用(yòng)安裝在小(xiǎo)米手機(jī)上(shàn≈₩★g),那(nà)麽系統會(huì)調用(yòng)圖中dra↓•÷wable-hdpi裡(lǐ)面的(de)資 源。這(zhγε§è)樣,你(nǐ)隻要(yào)做(zuò)♥ ♠>4套資源分(fēn)别放(fàng)在drawable-ldpi、dra₩₹wable-mdpi、drawable-hdpi以及drawa♠♠ble- xdpi下(xià)(圖标可(k↓↓™ě)以按照(zhào)3:4:6:8的(de)比例制(z★± ♥hì)作(zuò)圖片資源),那(nà)麽就(jiù)可(kě)以解決上(s♦→εhàng)面假設1當中提到(dào)的(de)問(wèn)題。
對(duì)于相(xiàng)同 dpi、但(dàn)尺寸不(bù)一(yī)↔§↓樣的(de)設備,可(kě)以通(tōng)過layout文(wén)件(j↕™♦≤iàn)控制(zhì)各種資源的(de)布局。G♦ ≥oogle将設備分(fēn)為(wèi)small(2~3英寸)、norm™→al(4英寸左 右)、large(5~7 'δα英寸)、xlarge(7英寸以上(shàn✘₩δ≥g))。在上(shàng)面的(de)假設2種,我們可(kě)以在la∞←πyout-normal裡(lǐ)配置3個(gè)頁簽的(β♥♦₽de)tab欄,在 layout-xlarge↔ γγ裡(lǐ)配置6個(gè)頁簽的(de)tab欄。如(rú)果應用(yòng)≠↓在所有(yǒu)設備上(shàng)布局都(dα≠'✘ōu)一(yī)樣,那(nà)麽就(jiù)不(π ∏εbù)用(yòng)考慮針對(duì)不(bù)同尺寸的(de)l€↕←γayout。從(cóng)圖中那(nà)些(xiē) la₩↑>yout*文(wén)件(jiàn)夾可(kě)以₹©看(kàn)出,該應用(yòng)在hdpi及xhdpi上§♠(shàng)支持橫豎屏,而且橫豎屏的(de)布局✔←不(bù)一(yī)緻,但(dàn)沒有(yǒu)考慮不(bù)同™β≤×尺寸的(de)設備使用(yòng)不(bù)同布局的(de)情況。
Android3.0 之前的(de)風(fēnφ₽♦αg)格與Android3.0(包含3.0)之後的(de)風(fēng)格區(§ qū)别很(hěn)大(dà),圖中那(nà)個(gè)應用(yò≥ng)就(jiù)使用(yòng)了(le)兩種風(fēng)格的(de)資÷↕π源及布局。Android2.3的(de)小(xiǎo)米會(huì)↔$使用(yòng) drawable-hdpi及layout₹↑φ÷-hdpi當中的(de)文(wén)件(<≥÷jiàn),而Android4.0的(de)小(xiǎo₩₩∑)米就(jiù)會(huì)使用(yòng)draα→ →wable-hdpi-v11及 layou±↓<αt-hdpi-v11裡(lǐ)面的(de)文(wén)件(jiàn≈±≥)。
