Communitygithub.com

應用程式演示錄製器

在 Android 模擬器或 iOS 模擬器上,錄製乾淨、節奏明快的行動應用程式示範短片,可用於廣告、商店預覽、社群貼文或需要螢幕錄影作為輸入的 AI 影片工具。當使用者要求錄製、拍攝或捕捉應用程式時(如「앱 녹화」、「앱 영상 찍어줘」或「應用程式的示範影片」)使用。負責處理版本選擇、裝置效能、乾淨的狀態列、主機端錄製、剪除操作間的等待時間以及檢查每個片段。不適用於自動化測試執行或編輯完成的影片。

應用程式演示錄製器 是什麼?

這是一個專為 Android 模擬器和 iOS 模擬器設計的 AI 代理技能,旨在錄製高品質的行動應用程式示範短片。它能夠產生乾淨、無延遲的螢幕錄影,非常適合用於廣告素材、應用程式商店預覽、社群媒體貼文,或作為 AI 影片工具的輸入。該技能會自動處理多個關鍵步驟:選擇合適的建置版本(正式發布版或除錯版)、調整模擬器或模擬器的效能設定以確保流暢錄製、隱藏通知並設定一致的狀態列時間,以及使用主機端錄製工具來避免影響應用程式效能。錄製完成後,它還能透過「tighten」指令自動剪除操作間的閒置時間,並使用「strip」指令產生時間軸快照供視覺檢查。此技能不適用於自動化測試或影片後期編輯,其設計前提是代理程式需要 FFmpeg、Android 的 adb 或 iOS 的 xcrun simctl 等工具,並需以較高權限執行以與模擬器和外部檔案系統互動。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/nathankim0/app-demo-recorder/tree/HEAD/skills/app-demo-recorder

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

應用程式演示錄製器 是做什麼的?

製作看起來像真人自信操作應用程式的簡短螢幕錄影:每個片段專注於一個功能,沒有載入停頓、沒有除錯覆蓋層、沒有廣告、狀態列簡潔整齊。

$S 是此技能目錄中的 scripts/appdemo.sh。它需要 ffmpeg(brew install ffmpeg),以及用於 Android 的 adb 或用於 iOS 的 Xcode xcrun simctl。在沙盒化代理程式中,請以較高權限執行它:它需要與模擬器、模擬器通訊,並在 workspace 外部寫入檔案。

1. 協商要展示的內容

  • 如果使用者未指定,詢問要展示哪些功能。每個功能錄製一個片段,並將片段命名為 NN_feature(例如 01_price_search、02_calculator)。優先展示產品最擅長的部分,而不是應用程式開啟時的第一個畫面。
  • 當不明確時,詢問要使用的建置版本和帳號。行銷素材通常需要搭載真實資料的正式發布版建置。除錯/暫存版建置會顯示開發選單、警告提示、測試資料,且執行速度較慢。不要預設;暫存版的錄影通常需要重做。
  • 如果片段需要付費或高級狀態,請先尋找應用程式中的除錯/開發者覆寫開關,避免觸及真實的收費機制。
  • 使用者提供的憑證:使用指令輸入(Android 上使用 adb shell input text ... >/dev/null;iOS 上使用 printf ... | xcrun simctl pbcopy <udid> 然後貼上),而不是透過會記錄每個指令的工具,也不要將憑證寫入檔案。

2. 讓裝置快速且安靜

  • Android 模擬器:分配足夠的資源。小型 AVD 在螢幕上會卡頓,且卡頓會出現在影片中。 emulator -avd <name> -memory 6144 -cores 4 -gpu host -no-snapshot-save -no-boot-anim 如果相同的應用程式 ID 已使用不同的簽署金鑰安裝,請改用另一個 AVD,而不是解除安裝(解除安裝會刪除使用者的資料)。
  • 安裝並執行正式發布版建置;登入;在錄製前關閉首次執行彈出視窗、權限提示和插頁廣告。
  • $S statusbar on:設定固定時間(APPDEMO_TIME,預設 9:41)、滿電量和訊號、隱藏通知圖示。$S statusbar off 可恢復原狀。
  • 在 Android 上,不要在應用程式的根畫面按下系統返回鍵。這會終止 Activity,且記憶體中的覆寫(如高級開關、功能旗標)會在重新啟動時遺失。

3. 排練,然後錄製

  1. 每個片段先不錄製排練一次。 熟悉點擊位置、座標和等待時間。開啟畫面一次也會預熱快取,讓正式錄製的片段載入更快。
  2. 錄製:
    $S start 01_price_search
    # 操作應用程式:adb shell input tap/swipe/text、xcrun simctl 或您的 UI 自動化工具
    $S stop 01_price_search        # -> $APPDEMO_OUT/01_price_search.mp4
    
    錄製在主機上執行(adb emu screenrecord / simctl io recordVideo)。不要在模擬器上使用裝置內的 adb shell screenrecord:它會與應用程式競爭 CPU,可能導致 UI 凍結,使得滾動和點擊從不出現。
  3. 將一個片段的操作以一個批次發送,並使用短暫的休眠(0.5–2.5 秒),而不是每次點擊都呼叫一次工具。在步驟之間檢查畫面會在你的錄影中留下漫長的空白停滯。
  4. 以刻意的步長滾動(約螢幕的 40%,每次滑動 600–800 毫秒),讓觀眾能夠閱讀。
  5. 對非 ASCII 文字(韓文、表情符號)使用 UI 驅動程式的文字輸入;adb shell input text 僅能處理 ASCII。
  6. 當某個功能只有透過資料才能顯示其價值時(如分類帳、日記、購物車),請錄製建立一筆真實的記錄,然後立即刪除它,並確認畫面恢復到原始狀態。先檢查分享預設值:新貼文可能是公開的。

4. 檢查每個片段

$S strip $APPDEMO_OUT/01_price_search.mp4 /tmp/01.jpg 8

查看時間軸快照,而不是您的腳本:確認每個預期的步驟確實發生了(滾動移動了、分頁切換了、結果出現了),並且畫面上沒有不想要的東西:提示訊息、覆蓋內容的鍵盤、廣告、個人資料(如真實地址)或除錯橫幅。重新錄製失敗的片段;不要出貨一個操作靜默無效的片段。

5. 剪掉等待時間

$S tighten in.mp4 out.mp4          # 剪掉閒置的開頭、凍結的片段 -> 0.35 秒,最終結果畫面保留 1.5 秒
$S speed  in.mp4 out.mp4 1.3       # 可選的統一加速

tighten 會在第一次實際操作前 0.4 秒開始影片(start 後的閒置秒數永遠不會完全靜止,因此單純的凍結檢測會錯過它們),並縮短畫面沒有變化的每個片段,讓點擊像一個熟悉應用程式的人那樣連續發生。典型的片段會減少大約一半的長度。也請使用 strip 檢查緊縮後的片段:如果一個小的變化(輸入一個數字、切換一個晶片)被剪掉了,請降低 --noise;如果仍然有停頓,請降低 --min-freeze。

6. 交付

將所有內容放在一個資料夾中:原始片段、緊縮後的版本(建議用於編輯),以及一個簡短的 README,列出每個片段、它所展示的內容,以及使用者應注意的任何事項(建立和刪除的資料、可見的個人資料、頂部的模擬器相機開孔)。回報片段長度以及無法錄製的內容及其原因。

相關技能