每五秒一次的心率:HealthKit App 會有什麼改變
新的 Apple Watch 感測器,對 HealthKit App 究竟改變了什麼? Apple Watch Series 12 與 Apple Watch Ultra 4「整天每五秒量一次心率」,心率變異性(HRV)則是「最快每五分鐘一次」,蘋果稱之為「頻率提高 24 倍」。2 但蘋果的新聞稿描述的是手錶量什麼,而不是它往 HealthKit 寫什麼;文件索引裡沒有 readiness 類型,只多了一個新的 HRV 類型 heartRateVariabilityRMSSD。8 蘋果 2024 年的白皮書把先前的背景量測頻率寫成靜止時每五分鐘嘗試一次。因此請先假設 HealthKit 裡的背景數量可能密集得多,無論是樣本變多,還是序列變長,然後在完整配戴一天之後,實際量出真正的寫入密度。11
蘋果在 2026 年 9 月 9 日發表這兩款手錶,兩者都搭載由全新光學與電子心臟感測器組成的 Health Sensing System。13 面向消費者的故事是 readiness。面向開發者的故事是密度,而蘋果給了兩個可以據以推算的數字。
TL;DR: 每五秒一次的心率,若全部保留,一天就是 17,280 筆讀數;最快每五分鐘一次的 HRV,一天最多 288 筆。先前的基準值寫在蘋果 2024 年的白皮書裡:背景心率在靜止時每五分鐘嘗試一次,運動讀數按每五秒視窗發布一筆,HRV 心動圖預設每四小時一次,開啟不規則心律通知後改為兩小時,開啟 AFib History 後則是 15 分鐘。由此可知蘋果的「24 倍」對應的是兩小時這個基準,儘管蘋果並未說明自己拿哪一種設定來比較。211 名目上,整天的心率量測頻率是舊有背景嘗試頻率的 60 倍;其中有多少真正抵達 HealthKit 並未公布,readiness 沒有對應的 HealthKit 類型,而第二個 HRV 識別碼 heartRateVariabilityRMSSD 則毫無說明地出現了。8 現在就轉向 anchored query、statistics collection 以及寫入前彙總,然後在 Series 12 完整配戴一天之後親自量測。56
蘋果的原話

蘋果 2026 年 9 月 9 日發表會直播畫面,太平洋時間上午 10:37:光學心臟感測器亮起的 Series 12 錶背;蘋果把每五秒的量測頻率歸功於這些更大的綠色 LED。
撐起這次改變的說法有三處,與其摘要,不如原文引用。
關於心率:「藉由光學心臟感測器上更大、更省電的綠色 LED,Apple Watch Series 12 與 Apple Watch Ultra 4 現在能整天每五秒量一次心率。這種持續、被動的量測讓使用者對自身體能與生理狀態有更深入的了解,同時讓 Exercise 與 Move 這兩個 Activity 圓環更加準確。」2
關於 HRV,健康主題的新聞稿說它「現在最快每五分鐘量測一次」,稱之為「頻率提高 24 倍」,而且「可在 Heart Rate App 的新區塊中檢視」;硬體新聞稿的說法則是「最多提高到 24 倍」。123 另外,Series 12 新聞稿寫道:「Apple Watch 提供兩種各自獨立的 HRV 變體,協助使用者更了解自己的健康狀態。Recovery HRV 最適合辨識每日的壓力與恢復訊號,overall HRV 則最適合洞察使用者更廣泛的健康狀況,包括心血管健康。」1
關於 readiness:健康主題的新聞稿把它描述為「一項會分析使用者近期活動、生命徵象與睡眠評分的新功能,每天給出 0 到 10 的單一分數,並附上清楚、可執行的建議:Recover、Pace Yourself、Ready 或 Go For It」。2 兩份硬體新聞稿都列出第四項輸入——訓練負荷,健康主題的新聞稿卻略過不提。13
兩款手錶將在 9 月 18 日週五開賣,watchOS 27 則於 9 月 14 日週一推出,支援 Series 9 以後機型、SE 3 與 Ultra 2 以後機型。3
先前的量測頻率是多少
蘋果關於心率的支援頁面,用一句話交代了 Series 1 以來所有 Apple Watch 的背景行為:手錶「在您靜止時整天量測心率,在您走路時定期量測」,運動期間及結束後三分鐘內則持續量測。4 真正公布間隔的是蘋果的心率白皮書。背景演算法「僅在使用者靜止時回報量測結果。它會嘗試每 5 分鐘回報一筆以 bpm 為單位的心率」,白皮書也把上限寫得很精確:「在每一個互不重疊的五分鐘視窗內,Apple Watch 會嘗試向 HealthKit 發布一筆背景心率,能否發布取決於訊號品質與使用者的動作。」運動與使用者主動觸發的演算法,早就以新的頻率在跑了:「在每一個互不重疊的五秒視窗內,演算法會挑出品質最高的一筆心率量測結果來顯示並發布到 HealthKit。」11 所以背景演算法的上限是每天 288 次嘗試,每一次都以靜止與訊號品質為前提;白皮書說訊號品質足夠時會「發布到 HealthKit」的走路抽測,加上 Heart Rate App 裡的量測,都會疊加上去,而運動的資料流本來就是五秒一次。11 關於 HRV,白皮書說得很具體:「心動圖的預設量測頻率為每四小時一次;當使用者開啟不規則心律通知或 AFib History 時,分別提高為每兩小時或每 15 分鐘一次。」11 把蘋果的「頻率提高 24 倍」套到「每五分鐘」上,算出來正好是兩小時,因此這個隱含的兩小時基準與不規則心律通知的頻率吻合,儘管蘋果並未說明自己的比較設定;我自己的 SDNN 資料流一天只有寥寥數筆,而且多半落在夜間,接近四小時這個預設值。2
所以這次的改變,大部分並不是新的 API,而是同樣的 heartRate 與 heartRateVariabilitySDNN 類型,有可能承載多出一個數量級的樣本,再加上一個新類型 heartRateVariabilityRMSSD。8 運動區間與生殖健康方面的新增內容,請見 iOS 27 HealthKit 一文。
真正抵達 HealthKit 的是什麼,仍是未解的問題
蘋果的新聞稿講的是量測。截至 9 月 9 日,無論新聞稿或 iOS 27 的 SDK 文件,都沒有說明每五秒的讀數是否都會變成一個 HKQuantitySample,還是手錶會先彙總再寫入。heartRate 頁面確實掛著一條長期存在的提醒:「樣本資料可能會被 HealthKit 壓縮和/或合併」,而它連向的文章把這個行為限定在「至少已有數個月」的第一方運動上——在那種情況下,HealthKit 會把「數值相同且發生時間相近的數量」合併成一個區間數量。這也是應該讀統計值而非樣本的又一個理由。8 24 小時內的計數不受影響,數個月前的第一方運動樣本計數則會受影響。有三個具體的未知數:
- 樣本密度。 先前的手錶在運動中本來就大約每五秒寫入一筆心率樣本;我自己的 Watch 在一次 53 分鐘的跑步中記下 639 筆心率樣本,一次 70 分鐘的跑步則是 870 筆。背景心率是靜止時每五分鐘視窗最多一筆,再加上走路抽測。11 新的部分是運動之外的五秒頻率。如果 Series 12 整天都按量測速率寫入,算下來每位使用者 24 小時就是 17,280 筆心率數量;由於一筆樣本可以承載一段序列,
HKQuantitySample物件的數量可能與此不同。12 反過來說,如果它的背景寫入維持舊頻率,把五秒資料留給自家演算法用,那麼對你來說什麼都沒變。只有實機能給出答案。 - 兩種 HRV 變體。 HealthKit 一直只帶一個 HRV 識別碼
heartRateVariabilitySDNN,iOS 27 的 SDK 新增了第二個heartRateVariabilityRMSSD,目前的文件只是一則沒有任何說明的宣告。8 蘋果沒說 Recovery HRV 與 overall HRV 是否分別對應 RMSSD 與 SDNN,所以第一天就把兩個類型都讀出來,跟 Heart Rate App 顯示的內容對照。 - readiness。 蘋果把它描述成一項帶分數與建議的功能。今天的 HealthKit 文件索引裡沒有 readiness 類型,新聞稿也沒有提到第三方存取。在 SDK 給出不同說法之前,就當它是蘋果專屬。
9 月 18 日之前該改什麼
以下這些都不需要新硬體。無論密度是每五分鐘嘗試一次、每天 288 筆,或每五秒一筆、每天 17,280 筆,這些做法都始終正確。
讀增量,別讀整天。 HKAnchoredObjectQuery 只回傳自你保存的錨點之後新增或刪除的樣本,而且可以保持開啟以接收更新。5 每次啟動都對最近 24 小時重跑一次樣本查詢的 App,做的是隨樣本數成長的工;到了兩萬筆樣本,這筆成本每次啟動都要付一遍。我沒量過它從哪裡開始會痛,而這正是不該再付下去的理由。
概覽用統計值,細節用樣本。 HKStatisticsCollectionQuery 會依你選定的區間回傳由 HealthKit 算好的最小值、最大值與平均值,因此日檢視不管底下壓著多少讀數,要求到的結果數量都是有界的。6 原始讀數留給真正需要的畫面,例如單次運動或一段恢復視窗,而且要在新密度下替這些畫面做效能剖析,別假設它們撐得住:五秒的資料流,可能在五分鐘圖表原本只畫一個點的位置放上 60 個點。
背景推播要有意識地選。 enableBackgroundDelivery(for:frequency:) 接收一個 HKUpdateFrequency,系統「在所指定頻率所定義的每個時段內,最多喚醒你的 App 一次」;.immediate 會「在任何行程儲存或刪除指定類型的樣本時」喚醒你的 App,但同樣受蘋果文件所述的頻率上限規範,而在 watchOS 上,文件寫明「大多數資料類型都有每小時的頻率上限」。7 除了醫療用途,幾乎所有情境每小時一次就夠了,這段期間抵達的資料交給 anchored query 去撿。
先彙總再儲存。 那些為了離線圖表或同步而把 HealthKit 鏡射到自家資料庫的 App,應該儲存每分鐘或每五分鐘的彙總值,原始樣本只留給確實需要的視窗,例如一次運動。一個每天增加數千列的資料庫會發生什麼事,請見 SwiftData 效能一文。
替查詢設上限。 HKSampleQuery 接收 limit 與排序描述子,兩者都要用。做增量讀取時,給 HKAnchoredObjectQuery 一個 limit,並從它回傳的錨點繼續,而不是用日期分頁。59
逐次心跳的資料要分開。 更密集的 BPM 讀數不是 RR 間期,所以別把它們倒進心跳序列裡。逐次心跳間期本來就有 HKHeartbeatSeriesSample,用 HKHeartbeatSeriesBuilder 寫入;App 蒐集到的 RR 間期資料用它,而 BPM 讀數不管頻率多高,都放在 heartRate 樣本裡。10
產品的空間在哪裡

蘋果 2026 年 9 月 9 日發表會直播畫面,太平洋時間上午 10:44:Health App 的總結投影片,也就是一個通用健身儀表板從此要與之競爭的那塊地方。
readiness 會跟著手錶一起登場。重新設計的 Health App「將在今年稍晚推出,先從美國英文開始」,新增一個包含 Health Age 的 Longevity 分頁;蘋果表示這個分頁除了自家資料,也會取用「第三方 App 與裝置」的資料,使用者在美國「將能夠預約並購買」售價 119 美元的檢驗套組。23 依我看,一個通用健身儀表板跟它競爭,只會輸。蘋果沒有做的是具體:一項運動的恢復、一種病症的配速、一個社群的教練迴圈、一位臨床醫師指名要的畫面。心率資料更密集,只會讓這些做得更好。蘋果說 Longevity 畫面會取用「第三方 App 與裝置」的資料,因此你的 App 寫進 HealthKit 的樣本,在重新設計的 Health App 上線後也許會出現在那裡;蘋果並未說明哪些資料符合條件,而不論結果如何,寫出好樣本而不是什麼都不寫,這個理由都依然成立。2
第一天就該跑的測試
從 9 月 18 日起配戴 Series 12,完整戴滿一天之後,量測一個 24 小時視窗。對 heartRate 執行一次樣本查詢,記錄與該視窗重疊的 HKQuantitySample 物件數量;一筆數量樣本「包含一個或多個 HKQuantity 物件」,而它的 count 涵蓋整筆樣本,因此把 count 加總會把落在視窗之外的那段序列也算進去。12 至於讀數筆數,請對同一類型執行 HKQuantitySeriesSampleQuery;它的 handler 會把每個數量連同各自的日期區間交給你,因此只保留開始時間落在 [start, end) 內的數量並計數,再算出相鄰數量之間的間隔,依小時、依來源裝置、依當下是否正在運動分組;把查詢的 includeSample 設為 true,handler 還會一併把所屬樣本與其裝置交給你。12 對 heartRateVariabilitySDNN 與 heartRateVariabilityRMSSD 做同樣的事。要回報的有六項:視窗、手錶與 watchOS 版本號、是否開啟不規則心律通知或 AFib History、容器數量、視窗內的數量總數,以及運動中與非運動時的間隔中位數。這些數字會決定上面那些段落到底是預防措施還是緊急狀況。先前手錶向 HealthKit 發布的頻率,蘋果 2024 年的白皮書有交代;至於 Series 12,蘋果還沒發布任何能給出同一數字的資料。11
重點整理
給 HealthKit 開發者: - Series 12 與 Ultra 4 每五秒量一次心率、最快每五分鐘量一次 HRV,但蘋果沒說其中有多少會抵達 HealthKit。依蘋果白皮書所述,先前的手錶在靜止時每五分鐘嘗試一次背景讀數。211 - 現在就轉向 anchored query 與 statistics collection;兩者在任何密度下都正確。56 - 除非某項功能真的需要更快,否則背景推播就維持每小時一次,並在儲存前先彙總。7
給產品決策:
- 在蘋果的新聞稿與目前的 HealthKit 索引裡,readiness 與 Health Age 都沒有第三方入口;HRV 則多了第二個類型 heartRateVariabilityRMSSD。請建立在樣本之上,而不是分數之上。28
- 空間在於具體:一項運動、一種病症、一個社群,也就是蘋果的通用儀表板止步之處。
常見問題
HealthKit 會收到每五秒的每一筆心率讀數嗎?
蘋果沒說。新聞稿描述的是手錶上的量測,而不是 HealthKit 裡的儲存。蘋果 2024 年的白皮書說,先前的手錶在運動中每五秒視窗發布一筆讀數,在背景則每五分鐘視窗嘗試一筆,而且沒有涵蓋 Series 12 的更新版白皮書。請在完整配戴一天之後,也就是 9 月 19 日或更晚再量測:計算 HKQuantitySeriesSampleQuery 回傳的數量中,開始時間落在這個 24 小時視窗內的那些,並另外回報 HKQuantitySample 的容器數量。21112
第三方 App 拿得到 readiness 分數嗎?
蘋果已公布的任何資料裡都沒有。HealthKit 文件索引裡沒有 readiness 類型,新聞稿也沒有提到第三方存取。2
Recovery HRV 與 overall HRV 是不同的 HealthKit 類型嗎?
不確定。HealthKit 一直公開的是 heartRateVariabilitySDNN,iOS 27 的 SDK 新增了 heartRateVariabilityRMSSD,但只是一則沒有說明的宣告。蘋果沒說哪一個承載哪種變體,甚至沒說是否有對應關係。8
舊款手錶在 watchOS 27 上會改變嗎?
蘋果提出的五秒與五分鐘這兩個數字,專屬於 Series 12、Ultra 4 及其新感測器。watchOS 27 可以跑在 Series 9 以後的機型上,但新聞稿把新的量測頻率歸因於硬體。23
我的心率圖表會壞掉嗎?
建立在 HKStatisticsCollectionQuery 之上的圖表,對固定的時間範圍會回傳有界筆數的區間結果,因此點數不會隨密度改變,儘管數值會變;而直接畫原始樣本的圖表,做的是隨樣本數成長的工。請在手錶開賣前,按新密度做一次效能剖析,並把概覽類圖表換掉。6
參考來源
-
Apple Newsroom,Introducing Apple Watch Series 12, with the all-new Health Sensing System,2026 年 9 月 9 日。引用:兩種 HRV 變體;HRV「最多提高到 24 倍」;包含訓練負荷在內的 readiness 輸入項。 ↩↩↩↩
-
Apple Newsroom,Apple advances health and fitness capabilities using Apple Intelligence,2026 年 9 月 9 日。引用:兩款手錶每五秒量測心率,以及關於 Activity 圓環的那句話;HRV「最快每五分鐘一次」與「頻率提高 24 倍」;readiness 的定義與四項建議;重新設計的 Health App「今年稍晚推出,先從美國英文開始」;Longevity 分頁的第三方資料。 ↩↩↩↩↩↩↩↩↩↩↩↩↩
-
Apple Newsroom,Apple unveils Apple Watch Ultra 4,2026 年 9 月 9 日。HRV「最多提高到 24 倍」;包含訓練負荷在內的 readiness 輸入項;watchOS 27 於 9 月 14 日推出;9 月 18 日開賣;「將能夠預約並購買」119 美元的檢驗套組。 ↩↩↩↩↩↩
-
Apple 支援,Monitor your heart rate with Apple Watch,2026 年 9 月 9 日擷取。引用:背景量測「在您靜止時整天量測,在您走路時定期量測」;運動期間及結束後三分鐘內的持續量測。 ↩
-
Apple Developer Documentation,HKAnchoredObjectQuery。 ↩↩↩↩
-
Apple Developer Documentation,HKStatisticsCollectionQuery。 ↩↩↩↩
-
Apple Developer Documentation,enableBackgroundDelivery(for:frequency:withCompletion:) 與 HKUpdateFrequency。 ↩↩
-
Apple Developer Documentation,heartRateVariabilitySDNN、heartRateVariabilityRMSSD(於 iOS 27.0、watchOS 27.0 導入),以及 heartRate,後者註明「樣本資料可能會被 HealthKit 壓縮和/或合併」;其中連結的文章 Accessing condensed workout samples 把該行為限定在「至少已有數個月」的第一方運動上,並描述了把數值相同的心率數量合併為區間數量的做法;截至 2026 年 9 月 9 日,HKQuantityTypeIdentifier 與 HKCategoryTypeIdentifier 索引都沒有列出 readiness 或 Health Age 識別碼。 ↩↩↩↩↩↩↩
-
Apple Developer Documentation,HKSampleQuery。 ↩
-
Apple Developer Documentation,HKHeartbeatSeriesSample 與 HKHeartbeatSeriesBuilder。 ↩
-
Apple,Heart Rate, Calorimetry, and Activity on Apple Watch,2024 年 11 月,2026 年 9 月 9 日擷取。引用:背景演算法「僅在使用者靜止時回報量測結果。它會嘗試每 5 分鐘回報一筆以 bpm 為單位的心率」;「在每一個互不重疊的五分鐘視窗內,Apple Watch 會嘗試向 HealthKit 發布一筆背景心率,能否發布取決於訊號品質與使用者的動作」;「在每一個互不重疊的五秒視窗內,演算法會挑出品質最高的一筆心率量測結果來顯示並發布到 HealthKit」;走路抽測:「若訊號品質足夠,抽測到的走路心率會發布到 HealthKit」;HRV:「心動圖的預設量測頻率為每四小時一次;當使用者開啟不規則心律通知或 AFib History 時,分別提高為每兩小時或每 15 分鐘一次。」 ↩↩↩↩↩↩↩↩↩
-
Apple Developer Documentation,HKQuantitySample:「一筆數量樣本包含一個或多個 HKQuantity 物件」;
count屬性;以及 HKQuantitySeriesSampleQuery,「一種存取與數量樣本相關聯之序列資料的查詢」,其 handler 會收到每個數量及其日期區間,而includeSample屬性決定「該查詢是否應回傳序列樣本」。 ↩↩↩↩