Guru
部落格 / Anki on iOS

我在iPhone應用中匯入了5個真實的Anki牌組。結果如下

重點摘要 (TL;DR) 在 2026-09-07,我將五個熱門的公開 Anki 牌組匯入到 iPhone 上的 Guru 中,並逐卡進行了檢查:Zanki Physiology & Pathology(125 MB,16,966 張卡片,約 15 秒),USMLE Step 2(68 MB,5,647 張卡片,23 種筆記類型,14 種克漏字變化),MileDown's MCAT(238 MB,2,888 張卡片),一個包含 10,107 個音訊檔的 JLPT N1–N5 牌組(121 MB,10,147 張卡片,89 秒),以及 First Aid 2017 Pharmacology(1,232 張卡片)。克漏字提示 (Cloze hints)、彩色強調、圖片、振假名 (furigana) 和音訊皆能正常顯示與播放。這次測試也抓到了一個真實的 bug:當父牌組本身包含卡片時,整個子牌組樹會被重複匯入兩次,因此 USMLE Step 2 顯示了 11,199 張卡片,而不是正確的 5,647 張。這個問題已經在 Guru 1.5.1 中修復。每個牌組的螢幕截圖都在下方。
插圖:一排五個檔案盒,一個放大鏡放在顯示圖片卡片的 iPhone 上,測試台上還有一個碼表
五個真實牌組,一支手機,一個碼表,並用放大鏡檢視每一張卡片。

為什麼我要進行這個測試

「我的牌組能順利匯入嗎?」這是我們收到幾乎所有 Anki 使用者訊息背後的疑問。僅僅是卡片數量與電腦版 Anki 一致是不夠的:一個克漏字牌組可能匯入了正確數量的卡片,但卻顯示出原始的 {{c1::…}} 標記、遺失提示、圖片空白或音訊按鈕失效。因此,與其完全信任解析器,我挑選了醫學、MCAT 和日語學習者實際在使用的真實公開牌組,在 iPhone 上逐一匯入,並開始複習,拍下前 6 到 10 張卡片的正反面。

測試環境:Guru 1.5.1(組建號 76),iPhone 16 Pro Max,iOS 18。每個 .apkg 檔案都是直接從「檔案」App 開啟,這會觸發與 AirDrop 或分享選單相同的匯入流程。時間是從點擊「匯入」到牌組出現在「資料庫」的實際經過時間。

這五個牌組

牌組檔案大小Anki 中的卡片數匯入後的卡片數匯入時間渲染檢查(6–10 張卡片)
First Aid 2017 Pharmacology5.5 MB1,2321,232~10 秒克漏字提示、斜體 Extra 欄位
USMLE Step 2(23 種筆記類型,14 種克漏字類型)68 MB5,6475,647(修復前為 11,199)~10 秒克漏字、彩色強調、圖片、Extra 欄位
MileDown's MCAT Decks238 MB2,8882,888~5 秒彩色克漏字、圖表;外部連結顯示為灰色文字
Zanki Physiology & Pathology125 MB16,96616,966(修復前為 20,792)~15 秒克漏字、底線、圖片
JLPT "eggrolls" N1–N5121 MB,10,107 個音訊檔10,14710,14789 秒振假名、例句、音訊按鈕

第六個檔案是一個包含 263 張卡片的 AnKing MCAT 樣本,僅用作重複匯入同一個包裹的對照組;我並沒有逐卡檢查它。

散佈圖:五個牌組的匯入時間與媒體檔案數量的關係;四個媒體數量接近零的牌組集中在 5–15 秒,包含 10,107 個檔案的 JLPT 牌組則在 89 秒
匯入時間取決於媒體檔案數量,而非卡片數。擁有 16,966 張卡片的 Zanki 牌組只需 15 秒;而擁有 10,147 張卡片的 JLPT 牌組因為包含 10,107 個音訊檔,則需花費 89 秒。

我在每張卡片上檢查了什麼

  1. 資料庫中的卡片數量是否與電腦版 Anki 顯示的該牌組數量相符。
  2. 克漏字挖空部分是否能在正面顯示 […] 或提示文字,並在背面將答案標示出來,每個克漏字編號對應一張卡片。
  3. 粗體、底線和彩色文字(AnKing 風格的強調)是否被保留。
  4. 檔案包內的圖片是否能載入,包含那些從 Extra 欄位引用的圖片。
  5. 音訊欄位是否變成可播放的按鈕;振假名 (ruby text) 是否能正確附加在漢字上方。
  6. 模板層級的附加內容(例如某些牌組在每張卡片頂部印出的標題)是否仍然顯示。

USMLE Step 2

這是測試中最複雜的牌組:一個檔案包中包含 23 種筆記類型和 14 種不同的克漏字模板。我開啟的每一個變體都成功渲染為正常的克漏字卡片,紅色和藍色的強調字體完好無損,且 Extra 欄位正確顯示在答案下方。心內膜炎卡片上的 Retina 高畫質照片是從檔案包的媒體資料夾載入的,而非網際網路。

在 iPhone 上的 Guru 中複習 USMLE Step 2 克漏字卡片的二十張螢幕截圖,包含正反面、彩色強調和兩張 Retina 照片
USMLE Step 2:十張卡片的正反面。克漏字提示、彩色強調和隨附圖片皆能正常渲染。

Zanki Physiology & Pathology

這是卡片數量最多的牌組。匯入 16,966 張卡片大約需要 15 秒。畫底線的專有名詞和圖片都順利呈現。不過我在這裡注意到一件事,在 USMLE Step 2 中也發生過:來自同一個筆記的卡片(一個克漏字筆記的 c1、c2、c3)會在一次複習中連續出現。電腦版 Anki 預設會延遲 (bury) 相關卡片,但我測試的版本並沒有。更多細節會在後文說明。

在 iPhone 上的 Guru 中 Zanki Physiology and Pathology 卡片的十六張螢幕截圖,正反面
Zanki:八張卡片的正反面。注意核小體 (nucleosome) 的相關卡片連續出現的情況。
在修復前,Guru 中 Zanki 牌組的複習前畫面,顯示有 20,792 張新卡片和固定的 60 分鐘預估時間
修復前的複習前畫面:顯示 20,792 張卡片(應為 16,966 張)和與牌組無關的「約 60 分鐘」預估時間。

MileDown's MCAT Decks

這是檔案最大的一個,高達 238 MB,幾乎全是圖片。因為卡片數量較少,只需約 5 秒即可匯入。彩色的克漏字挖空和圖表都能渲染。唯一的瑕疵是:MileDown 的卡片包含外部超連結,但它們顯示為灰色文字而不是可點擊的連結。文字雖然存在,但無法跳轉到目標網址。

在 iPhone 上的 Guru 中 MileDown MCAT 卡片的十六張螢幕截圖,包含彩色克漏字挖空和圖表
MileDown MCAT:八張卡片的正反面。彩色克漏字和圖表正常渲染;外部連結顯示為純灰色文字。

JLPT "eggrolls" N1–N5

這是匯入最慢的牌組,原因在於媒體數量而非卡片數量:必須解壓縮並建立索引高達 10,107 個音訊檔。10,147 張卡片花了 89 秒。在卡片上,振假名正確地位於漢字上方,例句保留了它們的換行,而且每個音訊欄位都變成了一個紫色的播放按鈕。

在 iPhone 上的 Guru 中 JLPT 單字卡片的十二張螢幕截圖,顯示振假名、例句和音訊播放按鈕
JLPT eggrolls:六張卡片的正反面。振假名和音訊按鈕正常渲染。

First Aid 2017 Pharmacology

一個小型的經典克漏字牌組。克漏字提示和斜體的 Extra 欄位如預期般渲染。它唯一的問題是外觀上的:牌組的原始名稱 aervien + tracymcgrady1991 step 1 pharm (FA 2017) 是它在資料庫中顯示的名字,而且在第一個畫面就被截斷了。匯入後重新命名即可解決這個問題。

在 iPhone 上的 Guru 中 First Aid 2017 Pharmacology 克漏字卡片的十六張螢幕截圖
First Aid 2017 Pharmacology:八張卡片的正反面。

測試發現的 Bug:重複的子牌組樹

USMLE Step 2 匯入後變成了 11,199 張卡片,但電腦版 Anki 顯示為 5,647 張。Zanki 匯入後是 20,792 張,而不是 16,966 張。MileDown 和 JLPT 的數量則是完全正確。

會造成卡片倍增與否的差異在於牌組的樹狀結構。USMLE Step 2 的父牌組本身包含卡片,並且還有 15 個子牌組。匯入程式列出了每個直接包含卡片的牌組,然後列舉它們的筆記,包括它們的子項目,因此子牌組的筆記在父牌組下被收集了一次,在它們自己之下又被收集了一次。Zanki 有幾個中層牌組包含自己的卡片,這解釋了它為何多出 22% 的卡片;MileDown 和 JLPT 的父牌組是空的,所以沒有任何東西被重複計算。將「每張卡片的包含卡片祖先數量」建立模型後,預測的數量為 11,194 / 20,790 / 2,888 / 10,147,與我測量到的結果完全一致。

修復前的 iPhone 上 Guru 資料庫,列出 11,199 張卡片的 USMLE Step 2 和 20,792 張卡片的 Zanki
修復前:USMLE Step 2 有 11,199 張卡片,Zanki 有 20,792 張。
修復後的 iPhone 上 Guru 資料庫,列出 5,647 張卡片的 USMLE Step 2 和 16,966 張卡片的 Zanki
修復後,全新安裝:5,647 張和 16,966 張,與電腦版 Anki 完全吻合。

修復後的版本會將每個筆記只保留在宣告它的最底層牌組中。我們在本地進行了包含 17 個真實牌組的測試,之前只斷言「至少 100 張卡片」,現在則斷言精確的數量,並且全數通過 (24/24)。這項修改已包含在 Guru 1.5.1 中,在我撰寫本文時正在等待 App Store 的審核。如果您在較早的版本匯入了嵌套式牌組,並且看到大約兩倍的預期數量,請在更新後刪除該牌組並重新匯入檔案;現有的資料庫不會自動重寫。

三個我不滿意的地方

在你自己的牌組上進行相同的檢查

  1. 在電腦版 Anki 中:檔案 → 匯出 → Anki 牌組包 (.apkg)。如果您希望保留複習間隔,請勾選 包含排程資訊,並勾選 包含媒體 以保留圖片和音訊。
  2. 將檔案 AirDrop 到 iPhone,或是儲存到 iCloud 雲碟,然後在「檔案」App 中點擊該檔案並選擇 Guru。(附有截圖的逐步教學。
  3. 將資料庫中的卡片數量與電腦版 Anki 的數量進行比對。如果您的牌組包含子牌組,且數量大約是兩倍,代表您使用的是 1.5.1 之前的版本。
  4. 在刪除檔案前,開始一次複習,並檢查一張克漏字卡片、一張圖片卡片和一張音訊卡片。

免費方案支援最多 5 個頂層牌組(無論是匯入或自行建立的總和),且一整棵子牌組樹只計算為一個。匯入至現有的頂層牌組中依然是免費的。每日複習皆為免費。每個牌組都能匯出回標準的 .apkg 檔案。若需要無限制數量的牌組、編輯、同步以及專注模式 (Study Lock),您可以升級至 Pro 方案(定價為每月 $4.99 美元並附 3 天試用期;每年 $39.99 美元;終身買斷 $24.99 美元)。

常見問題 (FAQ)

匯入會保留我的複習歷史和間隔嗎? 如果在匯出時勾選了「包含排程資訊」,它將會保留排程狀態(到期日、穩定度和困難度)。若匯出時沒有包含這些資訊,匯入後將全視為新卡片。

它能處理 AnKing 嗎? 本次測試中的 USMLE Step 2 牌組使用了 AnKing 風格的筆記類型,包含 14 種克漏字變體和彩色強調,且全都能成功渲染。一個完整的 AnKing Step 牌組是個更大的檔案,包含更多媒體,因此請預期匯入時間會接近一分鐘而不是 10 秒。AnkiHub 的更新不會自動流入 Guru;您需要重新匯入一個全新的匯出檔。請參閱 iPhone 上的 AnKing 和 Zanki

為什麼語音牌組花了 89 秒,而 Zanki 只要 15 秒? 匯入時間會隨媒體檔案的數量而定,而不是卡片數量。JLPT eggrolls 擁有 10,107 個音訊檔;而 Zanki 包含的圖片雖然較大,但數量少得多。

這些截圖來自真實裝置嗎? 它們來自運行與 App Store 上架版本相同的 iOS 模擬器(iPhone 16 Pro Max);匯入引擎和渲染器與實體裝置完全相同。在實體 iPhone 15/16 上的匯入時間也在相同的範圍內。

卡片中的外部連結可以使用嗎? 還不行。卡片文字中的連結會顯示為灰色文字,而不是可點擊的連結,就像上面的 MileDown 卡片一樣。

用您自己的牌組試試看

Guru 能完整匯入包含克漏字、媒體、子牌組和排程資訊的 .apkg 與 .colpkg 檔案。免費方案支援最多 5 個頂層牌組(包含匯入或建立),每日複習皆為免費。

取得 Guru

← 所有文章