精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為移動應用提供離線支持

移動開發
對移動應用的離線支持可以理解為應用在網絡連接不穩定的情況下能夠做出優雅的反應的能力。在移動設備這一相對較新的技術背景中,新的問題也隨之產生,例如網絡連接的正常或異常、高延遲以及低帶寬等情況。這些問題出現的時間并不算長,剛剛上手進行移動開發的工程師對此并不十分了解。

對移動應用的離線支持可以理解為應用在網絡連接不穩定的情況下能夠做出優雅的反應的能力。在移動設備這一相對較新的技術背景中,新的問題也隨之產生,例如網絡連接的正常或異常、高延遲以及低帶寬等情況。這些問題出現的時間并不算長,剛剛上手進行移動開發的工程師對此并不十分了解。除此之外,創建一個能夠適應不同網絡情況的移動應用可能還包括以下需求:

  • 在網絡調用失敗的情況下顯示適當的錯誤信息。
  • 允許在“訪客模式”下使用該應用,而某些特性只在用戶登錄之后才可以使用。
  • 在UI上明確地顯示出網絡連接斷開的信息(連接模式/離線模式)。
  • 在網絡連接斷開的情況下禁用某些控件。
  • 在沒有網絡連接的情況下也允許用戶進行數據查詢與操作(離線數據訪問)。
  • 在不同的網絡連接條件下對應用進行測試!

雖然以上這幾點從使用性的角度來看都是非常重要的,但其中某一點的復雜性尤為突出,即“離線數據訪問”。應用程序或許需要支持多種不同的離線數據訪問場景或是級別,在下文中我將一一進行講解。

本地緩存

應用程序在沒有網絡連接的情況下依然能夠顯示信息,而在連上網絡的情況下需要刷新數據。要實現這一點,需要在移動設備上對數據進行一定程度的持久化,并且通常需要保留一段時間。

 

對緩存中的數據進行刷新有三種不同的“策略”,接下來我將逐一進行分析。

網絡優先

總是嘗試從服務器上獲取數據,如果無法從服務器上獲取,再轉而從本地緩存中獲取數據。如果你特別希望總是顯示最近的、經過更新的信息,那么這種策略對你非常有幫助。

本地優先

在一段指定的時間之內完全不會從網絡上獲取數據,而是通過本地緩存進行獲取。如果你的應用能夠接受顯示被緩存的數據而不存在什么風險,那么這種方式非常適合你。另一方面,這種方式的用戶體驗更好,因為通常來說不會產生任何延遲。

混合 / 智能

這種方式在從服務端獲取數據之前先從本地緩存中返回結果。可以選擇等待服務端的通知,或是在后臺對服務進行輪詢的方式,對本地的緩存數據進行刷新。這種機制能夠在性能與用戶體驗之間取得一種良好的平衡,而它仍然會對本地緩存進行定期刷新,避免了為用戶顯示“過期”數據的風險。

此外,通過某種服務端緩存的支持,可以有效地彌補本地緩存的不足之處。正如HTTP緩存一樣,當需要從服務器獲取數據的時候,客戶端可以通過發送一個“修訂號”以確認該數據是否已經被更新了。服務端將檢查客戶端所發送的修訂號是否與服務器上的數據一致,根據結果不同,或者通知客戶端不必更新數據,或者將***的數據返回。

示例場景

對于性能與用戶體驗的改進使得本地緩存在許多場景中非常實用,這種實用性的關鍵條件在于數據無需進行實時顯示。能夠將數據在本地緩存中保留的時間越長,這種方式的優點就越突出。

這方面的例子包括用戶所感興趣的地區或聯系人,這種信息具有很高的實用性,同時又不太會非常頻繁地更新,因此是使用本地緩存理想的應用場景。

本地隊列

一旦應用程序失去了網絡連接,可以將服務器請求放入本地隊列,以便之后的處理。這種方式讓用戶能夠發起即發即棄(fire and forget)的操作,等到這些操作由服務器成功處理之后(如果確實經過處理的話)收到操作完成的通知信息。

在本地隊列處理多個操作時,你需要考慮以下問題:

  • 用戶應當收到該操作已加入隊列的通知。
  • 用戶很可能想要了解隊列的實際狀態,哪些操作已經完成了,還有哪些操作還在等待中?
  • 對于仍處于隊列中的操作來說,手動撤消或重試的能力或許是十分重要的。
  • 一旦這些操作被發送到服務器,用戶希望了解最終的處理結果(成功或失敗)。
  • 當操作進入隊列之后,用戶有可能需要重新啟動整個流程,因而需要中斷這個操作。

在使用者進行審核或測量等現場工作,以及發送報告時,本地隊列是一個很好的主意。如果這些操作不需要更新記錄,只是插入新記錄而已,那么整個實現會變得更加簡單,無需進行并發管理或沖突處理。

示例場景

本地隊列能夠幫助你在進行操作時無需等待其結果,這對于庫存檢查或審核等操作來說是非常重要的,讓使用者無需等待網絡連接也能夠使用該應用,或發送報告 。

數據同步

通過使用本地緩存與隊列,你就能夠保持設備與服務器數據的更新,這就是我們熟知的“同步”。有以下幾種方式可以實現數據同步。

保持移動端數據的更新

在這種場景下,你需要讓你的移動應用數據保持同步。有兩種方式可以實現這一需求:如上文所描述的方式一樣使用本地緩存、或者向服務器請求***的變更。這些***的變更也被稱為“增量”,能夠讓移動應用對服務器的當前狀態進行重建。為了能夠對***的更新進行查詢,你需要使用一些審核字段,例如‘UpdatedOn’、 ‘CreatedOn’和‘DeletedOn’。

在第二種場景中,數據在設備中并未修改,因此也無需處理任何沖突,因此服務器上的數據總是正確的。

保持服務器數據的更新

這一點可以通過使用本地隊列實現,但僅僅使用隊列本身是不夠的。如果在我的請求發送到服務器時,服務器上的數據狀態與我嘗試進行修改的時候已經有所變化,這時該如何處理?如果請求的執行被延遲,例如出現網絡連接斷開的情況,就有可能造成并發沖突的增長。在這種情況下,開發者(或用戶)必須決定如何對服務器與應用中的變更進行“合并”。對于每一次數據沖突來說,有以下幾種合并方式:

  • 保留設備上的版本
  • 保留服務器上的版本
  • 同時保留兩個版本

合并記錄的操作往往是由移動開發者通過自動化實現的。至于具體使用哪一種算法,要由應用程序的業務規則來確定。一旦出現無法完全自動化的情況,將提示用戶做出決定。

同時保持移動端與服務器的數據更新

這種方式也被稱為雙向同步。你很可能已經猜到了,這種策略是對以上兩種技術的一個結合,它是目前所描述的場景中最完整,也是***大的。但請注意,雖然創建一種可以支持雙向同步的應用很有誘惑性,但它也是目前為止最為復雜的一種場景。而且問題不僅僅在于它的復雜性,正如我在本文中已經提到的,雙向同步并不總是必要的。

示例場景

雙向同步為移動應用帶來了一個全新級別的用戶體驗,而必須使用雙向同步方式的關鍵條件之一是讓一個團隊或小組里的所有用戶都能夠及時了解其它人的活動情況。這方面的一個例子是協作應用,需要顯示更新、注釋或狀態變更的***狀態。可以想象如果有一個協作式的地址簿,那么團隊中的每位成員都能夠在任何時間更新其中的聯系人信息。

思考

為你創建的移動應用加入對離線場景的支持能夠極大地提高用戶體驗,但如何選擇合適的支持級別,并隨后實現這一功能,這并不是一件簡單的任務。我在下文中列舉了一些當你計劃為應用加入離線功能時應當考慮的問題。

數據大小

在進行數據本地緩存時,對于存儲的數據大小要有所警覺。盡量爭取在緩存的數據量與得到的用戶體驗改善之間達到一種良好的平衡,這一點十分重要。如果數據量十分龐大(例如保存一個完整的Sharepoint網站內容),你可能必須考慮為用戶提供一個選項,讓他選擇要將哪些數據進行緩存,以用于離線閱讀。

數據存儲

一定要對于如何進行數據存儲,以及存儲在何處作出明智的抉擇。這些數據是否包含敏感信息?如果是的話,就需要在保存數據時進行加密。而一旦你選擇了對數據進行加密,請確保將解密數據所用的密鑰保存在一個安全的地方,可以考慮使用操作系統的功能實現這一點。還要注意一點,在某些平臺上你的應用程序代碼是可以被閱讀(或反射)的,因此可以考慮對代碼進行混淆。***,但并非無關緊要的是,確保你能夠通過某種機制遠程地消除設備上的數據。像移動設備管理(MDM)平臺等工具能夠幫助你實現這一功能,但也可以由應用程序本身完成這一點。

電池使用

如果你計劃使用輪詢機制或是后臺作業(job),請確保你仔細考慮電池用量的情況。某些操作和網絡功能會很快耗光你的電量,并損害你的用戶體驗。你可以在開始啟動一個耗電量很大的操作之前先檢測電池電量的狀態,以及該設備是否正在充電等等。

數據的應用

你或許需要對數據進行查詢與操作(新增、修改、刪除),這取決于你的應用程序的需求。在具有一定復雜性的場景中,使用數據庫作為持久化機制是一個不錯的選擇。要選擇一個合適的數據庫,需要考慮以下一些問題:

  • 對平臺的支持:我能夠在應用的每個版本上都使用這個數據庫嗎?? (iOS、Android、Web、混合應用等等……)
  • 選擇關系型數據庫還是NoSQL數據庫技術
  • 通過ORM的支持,將對象模型方便地映射到數據庫中
  • 數據大小
  • 對于同步協議的支持(例如CouchDB)

下面我們將逐個分析一些類庫及數據庫,這對于我們實現離線功能非常實用。

使用類庫及數據庫

SQLite

SQLite是一個開源的關系型數據庫,非常適合于在移動設備上使用。它使用一個單一的文件用于保存數據,因此對于持久化的管理非常簡單。對于同步及解決沖突來說,它起不到太大的作用,但對于信息的緩存及隊列操作來說,它是一個簡單易用的選擇。它能夠支持主要的移動平臺,例如iOS、Android、Xamarin和Windows Phone。

SQLCypher

正如上文所說,如果你所緩存或加入隊列中的數據十分敏感,那么在保存數據的同時需要對其加密。SQLCypher是一種對SQLite數據庫進行加密的一種十分健壯的選擇。它支持每種主流的移動平臺,但這個類庫是需要付費的。根據安全級別和支持功能的不同,它有多個版本可以提供。

Couchbase Mobile

Couchbase最初的名稱是Membase,它是一個開源的分布式NoSQL數據庫。它特別適合用于離線應用的場景,因為它能夠通過Couchbase Mobile和一個額外的同步網關對數據進行雙向同步。它支持主流的移動平臺,包括Xamarin和PhoneGap,并且提供了本地文件加密的功能。

Meteor

Meteor是一個用于創建web應用的開源平臺,內置了實時更新的能力。Meteor是基于開源的Node.js平臺和MongoDB所創建的,它提供了一種發布-訂閱機制,能夠將數據的變化實時傳遞給每個連接中的客戶端。

它通過PhoneGap和Cordova等混合工具支持所有移動平臺。

結語

一旦用戶開始期望他們的個人應用能夠實現與企業級應用同等級別的用戶體驗,就無法忽視對離線功能的支持。能夠為用戶提供離線場景的良好支持,將極大地改善移動應用的用戶體驗,對于員工的生產力也是至關重要的。

請留意在設備上進行數據本地存儲時的安全問題,并且請盡量不要低估你的應用對于用戶的電池電量消耗可能造成的影響。

責任編輯:倪明 來源: infoq
相關推薦

2011-11-11 10:26:24

2014-06-04 09:22:34

2011-05-18 09:51:42

創新工場李開復Android

2015-03-11 10:10:37

惠普VMware

2011-11-18 10:20:16

紅帽Java開源

2010-10-25 09:32:44

Windows Ser

2012-06-27 10:57:10

Nimsoft紅帽CA

2012-09-06 15:09:32

CA TechnoloWindows Ser

2022-06-29 10:12:33

開源

2023-08-31 22:53:33

IDE工具窗口

2022-04-08 18:05:59

微軟Arm

2013-11-25 17:38:58

英特爾創新HTML5

2010-02-25 14:03:40

VxWorks 6.8

2009-09-22 11:55:53

ibmdwDojo

2012-09-26 14:28:19

CAIBM管理軟件

2013-11-18 09:03:22

2021-05-26 10:35:02

VMware

2012-04-25 11:39:05

Aspect馬自達平板電腦

2013-10-29 09:15:10

FirefoxXP

2013-04-18 09:33:06

微軟Windows AzuIaaS
點贊
收藏

51CTO技術棧公眾號

日韩国产高清在线| 免费萌白酱国产一区二区三区| 中文一区在线播放| 成人免费黄色网| 久久精品www人人爽人人| 国产三级精品三级在线观看国产| 福利视频第一区| 一区二区三区在线视频看| 免费精品99久久国产综合精品应用| 亚洲天堂中文在线| 欧美日韩国产一二| 欧美激情一区二区在线| 日本护士...精品国| 黄页在线观看免费| va亚洲va日韩不卡在线观看| 日韩免费av在线| 日本黄色免费片| 精品午夜电影| 欧美男人的天堂一二区| 国产二区视频在线| www黄在线观看| 成人性色生活片| 国产精品流白浆视频| 久久久久国产精品夜夜夜夜夜| 午夜精品福利影院| 91精品国产福利| 国产极品美女高潮无套久久久 | 欧美成人a视频| 精品久久久久久久免费人妻| 亚洲卡一卡二| 国产精品久99| 日韩成人在线资源| 亚欧在线观看视频| 成人中文字幕合集| 成人av在线天堂| 成人a v视频| 亚洲一区二区动漫| 欧美高清第一页| 国产喷水在线观看| 成人同人动漫免费观看| 亚洲精品第一页| 精品国产一二区| 国产精品一区免费在线| 欧美日韩一区二区三区高清| 国产第一页视频| 手机在线观看av| 午夜影视日本亚洲欧洲精品| 欧洲金发美女大战黑人| 日日夜夜精品一区| 国产精品人成在线观看免费| 欧美午夜欧美| 免费福利在线观看| 久久天天做天天爱综合色| 国产一区二区无遮挡| www.香蕉视频| 高清不卡一二三区| 91麻豆蜜桃| 国产青青草视频| 国产精品自在在线| av免费观看久久| 亚洲国产精品国自产拍久久| 国产盗摄精品一区二区三区在线| 亚洲一区二区三区香蕉| 国产成人久久精品77777综合| 国产一区在线精品| 亚洲自拍在线观看| 亚洲精品国产一区二| 福利电影一区二区三区| 国产欧美韩日| 你懂的在线看| 欧美国产日韩亚洲一区| 亚洲精品中文综合第一页| 91视频在线观看| 亚洲日本丝袜连裤袜办公室| 青青草视频在线视频| 国产美女情趣调教h一区二区| 亚洲第一综合色| a√天堂在线观看| 婷婷六月国产精品久久不卡| 欧美三级欧美一级| 色偷偷中文字幕| 99久久人爽人人添人人澡| 欧美精品一区二区高清在线观看 | 久久日韩精品一区二区五区| 欧美日韩一区在线播放| 日本高清视频在线播放| 亚洲精品日产精品乱码不卡| 欧美 国产 综合| 国产麻豆久久| 日韩一区二区三区在线观看| 欧美日韩精品不卡| 国产精品四虎| 亚洲精品写真福利| 精品国产免费av| 四虎影视国产精品| 亚洲第一黄色网| 国产123在线| 欧美精品国产一区二区| 欧美在线亚洲在线| 国产情侣在线播放| 久久久久久亚洲综合影院红桃 | 色悠悠在线视频| 蜜乳av综合| 久久精品男人天堂| 国产性猛交╳xxx乱大交| 久久国产视频网| 精品国产一区二区三区麻豆小说 | 久久婷婷五月综合色国产香蕉| 国产成人久久精品麻豆二区| 精品国产a毛片| 免费91在线观看| av成人国产| 成人黄色在线播放| 蜜桃成人在线视频| 一区二区在线观看视频在线观看| 日日摸日日碰夜夜爽av| 免费精品一区二区三区在线观看| 国产午夜精品久久久 | 欧美一区国产在线| 日韩av手机在线看| 好吊色视频一区二区| 国产精品网曝门| 日本电影一区二区| 精品福利视频一区二区三区| 国产破处视频在线观看| 亚洲高清极品| 91日韩在线专区| 四虎影院一区二区三区| 成人一级福利| 日韩精品一区二区三区四区视频 | 成人免费小视频| 亚洲爆乳无码专区| 欧美交a欧美精品喷水| 萌白酱国产一区二区| 中文字幕永久免费视频| 久久亚洲综合av| 色欲色香天天天综合网www| 日韩一区免费| 欧美成人免费观看| 艳妇乳肉豪妇荡乳av| 中文成人av在线| 男女无套免费视频网站动漫| 婷婷成人综合| 欧美主播福利视频| 天天色综合久久| 亚洲成人精品一区二区| 黄色国产在线视频| 亚洲黄色影片| 国产在线精品日韩| 欧美aaaaa性bbbbb小妇| 亚洲激情视频在线播放| 国产精品成人av久久| 成人免费的视频| 成年人看的毛片| 国产一区二区av在线| 久久婷婷国产麻豆91天堂 | 亚洲精品一区二区三区香蕉| 精品欧美一区二区久久久久| 国产麻豆视频一区| www.国产二区| 国产伦乱精品| 91精品国产免费久久久久久| 亚洲 欧美 自拍偷拍| 欧美日韩一区二区在线| 在线 丝袜 欧美 日韩 制服| 久久精品综合| 先锋在线资源一区二区三区| 日本久久久久| 欧美久久精品一级黑人c片 | 欧美精品久久天天躁| 自拍偷拍视频亚洲| 日韩成人av影视| 亚洲一区二区精品在线观看| 日日夜夜精品| 欧美超级乱淫片喷水| 日本久久一级片| 欧美性生交xxxxx久久久| 欧美激情视频一区二区三区不卡| 国产成人在线亚洲欧美| 中文字幕一区二区久久人妻| 国产女主播在线一区二区| 中文字幕国产免费| 中文字幕av亚洲精品一部二部| 亚洲专区在线视频| 华人av在线| 中文字幕少妇一区二区三区| 中文字幕丰满孑伦无码专区| 久久国产欧美| 中文字幕一区二区三区四区五区六区| 国产精品美女久久久久| 国内成人精品一区| 国产粉嫩一区二区三区在线观看| 51午夜精品国产| 日韩精品一区二区三| 欧美激情一区二区| 国产日韩视频一区| 日本va欧美va欧美va精品| 久操手机在线视频| 成人免费在线播放| 国产一区二区三区色淫影院| 日韩深夜福利网站| 8090成年在线看片午夜| 久久99精品久久| 日韩激情av在线播放| 91丨porny丨在线中文| 成人妖精视频yjsp地址| 国产精品久久久一本精品| 欧美午夜丰满在线18影院| 麻豆av一区二区三区久久| 全部免费毛片在线播放一个| 色天天综合色天天久久| 欧美人妻精品一区二区三区| 久久精品一区二区三区av| 亚洲性图第一页| 久国产精品韩国三级视频| av在线播放亚洲| 91精品国产视频| 日韩电影大全在线观看| 免费成人蒂法| 97se视频在线观看| 日韩福利影视| 日韩免费av在线| 国产精品电影| 欧美www在线| 日韩免费网站| 亚洲一级黄色av| 三级国产在线观看| 亚洲福利小视频| 日韩免费三级| 中文精品无码中文字幕无码专区| 国产不卡网站| 欧美激情视频网站| 国产人成网在线播放va免费| 亚洲人午夜精品| 亚洲区小说区图片区| 日韩精品资源二区在线| 国产孕妇孕交大片孕| 91久久精品一区二区三区| 少妇高潮大叫好爽喷水| 日韩成人免费av| 国产精品福利网站| 欧美成人a交片免费看| 久久久这里只有精品视频| 怡红院av在线| 久久国产精品久久精品| 欧美黑人激情| 色偷偷888欧美精品久久久| 成人性生交大片免费看午夜 | 欧美一级免费片| 精品国产一区二区三区忘忧草 | 吉吉日韩欧美| 欧美一级大胆视频| 欧美xxx视频| 国产91久久婷婷一区二区| 9999精品成人免费毛片在线看| 成年无码av片在线| 亚洲91av| 久久久在线视频| 在线视频超级| 欧美在线视频一区| 三上悠亚亚洲一区| 国产精品免费久久久久久| 99热播精品免费| 成人免费黄色网| 天堂精品久久久久| 国产精品亚洲不卡a| 伊人久久亚洲| 精品国产一二| 成人6969www免费视频| 亚洲精品一区二区三| 亚洲综合婷婷| 国产妇女馒头高清泬20p多| 欧美亚洲一区二区三区| 欧美性猛交久久久乱大交小说| 美女www一区二区| 4438x全国最大成人| 91在线码无精品| 四季av中文字幕| 亚洲最大成人网4388xx| 亚洲黄色三级视频| 免费亚洲视频| 一区二区视频在线观看| 欧美激情成人在线| 女人天堂av手机在线| 日韩在线一区二区三区| 91免费视频污| av一二三不卡影片| 九一在线免费观看| 亚洲一二三四久久| 中文无码精品一区二区三区| 欧美一区二区三区精品| 青青色在线视频| 久久人人爽人人爽爽久久 | 欧美在线性爱视频| 亚洲人成网站在线在线观看| 国产精品污www一区二区三区| 欧美视频网址| 18禁裸男晨勃露j毛免费观看 | 欧美中文在线视频| 国产高清视频一区二区| 激情视频在线观看一区二区三区| 亚洲区小说区图片区qvod| 国产精品无码乱伦| 久久精品123| 日本成人在线免费| 日本一区免费视频| 国产乡下妇女做爰| 欧美片在线播放| 日色在线视频| 欧美黄色性视频| 精品久久在线| 欧美videos中文字幕| 97精品人妻一区二区三区在线| 亚洲电影在线观看| 国产色在线观看| 国产97在线播放| 乱中年女人伦av一区二区| 手机福利在线视频| 久久久夜精品| 91丝袜在线观看| 亚洲精品乱码久久久久久| 天堂av免费在线观看| 日韩精品久久久久| 搞黄网站在线看| 成人有码视频在线播放| 成人在线亚洲| 国模杨依粉嫩蝴蝶150p| 99re这里只有精品6| 九九热视频精品| 欧美一区二区视频在线观看2022 | 成人av免费在线播放| 麻豆网址在线观看| 欧美日韩精品欧美日韩精品一| 日本福利在线观看| 91国产精品视频在线| 国产厕拍一区| 免费网站永久免费观看| 国产美女av一区二区三区| 五月天免费网站| 欧美三级日韩三级| 97电影在线| 国产精品美女免费| 欧美日韩伦理在线免费| 97公开免费视频| 欧美激情一区二区在线| 女性女同性aⅴ免费观女性恋| 精品国产黄色片| 欧美福利视频| 欧美精品丝袜久久久中文字幕| 国产在线一区二| 综合中文字幕| 亚洲av首页在线| 国产在线精品一区二区三区不卡| 欧美福利在线视频| 欧美日韩免费观看一区二区三区| 成人在线观看网站| 国产日韩av在线播放| 久久国产电影| 一区二区三区国产好的精华液| 亚洲婷婷在线视频| www.成人免费视频| 久久久久久久国产精品| 国产一区二区三区亚洲| 欧美视频在线播放一区| 久久美女艺术照精彩视频福利播放| 黄色片视频免费| 亚洲人成电影网站色| 国产精品伦一区二区| 在线免费观看一区二区三区| 国产一区二区按摩在线观看| 九九精品在线观看视频| 日韩av在线最新| 97成人超碰| 国产一区二区三区播放| av电影天堂一区二区在线| 久久精品无码av| 中文字幕在线精品| 免费一区二区三区在线视频| 精品视频在线观看一区| 久久免费国产| 欧美专区在线视频| 樱花视频在线免费观看| 精品国产成人在线影院| 女生影院久久| 在线不卡日本| 成人午夜av电影| 成人免费一级片| 欧美老女人xx| 国内黄色精品| 日韩av影视大全| 欧美日韩一区二区三区| 国产成人高清精品| 久久精品一二三区| 欧美a级成人淫片免费看| 国产精品一区二区三区在线| 在线视频日韩| 91嫩草|国产丨精品入口| 日韩乱码在线视频| 国内精品视频| 熟妇人妻va精品中文字幕|