## Why

phase-2a/2b 跑通了全屏类广告（激励/插屏）的五步法模板。phase-2c 实现**开屏（Splash）**——它是**首个涉及视图渲染**的样式（show 需 ViewGroup 容器），并带**加载超时**语义。本期 **Android 完整实现**（真实 load/show，ADX 源），**iOS 仅 stub + log**。

开屏与激励/插屏的差异：① load 带 `fetchAdTimeout` + `onAdLoaded(isTimeout)` 透传；② **show 渲染进容器**（本期「桥内容器 + 高度可配」，支持全屏/半屏，**不引 Fabric**）；③ 无 reward/again/video 系列，特有 `splashDidTimeout`/`splashDidShowFailed`；④ **无 AutoAd**。

## What Changes

- **L1 `ATSplashAd`**：`load`(settings 含 `fetchAdTimeout`) / `show`(showConfig?: `heightRatio`/`heightPx`/`scenario`) / `isAdReady` / `setAdListener` / `entryAdScenario`（无 `checkValidAdCaches`/Auto）。
- **L2 TurboModule**：`loadSplash` / `showSplash`(+`WithConfig`) / `splashReady` / `entrySplashScenario`（参数含 `placementID`，结构化对象下行）。
- **L3 Android（完整实现）**：移植 Flutter `ATAdSplashManger → ATSplashManager`、`ATSplashHelper`（类名不变；包名 `com.anythink.reactnative.splash`）；一 placementId 一 Helper；Listener 全量经 `ATReactNativeEventEmitter` 转发 `SplashCall`（15 个 callbackName 已在 Const.java）。
  **容器**：`showSplash` 在主线程往当前 Activity 根布局加一个**指定高度**的 `FrameLayout`（`heightRatio`/`heightPx`，不传则全屏），`ATSplashAd.show(activity, container)` 渲染开屏（含倒计时/skip，可用 `ATSplashSkipInfo`），`onAdDismiss` 时移除容器防泄漏。
- **L3 iOS（stub）**：各开屏桥方法空实现 + NSLog；保留线程守护。
- **常量**：`Const.ts` 补 `SplashCallback` 15 个 callbackName（与 Const.java 对齐，sync-const-check 守门）。
- **Example**：开屏按钮（复用 `AdActionButton` 状态机）；`sdkConfig.ts` 填 ADX 开屏位 `b5fdc16eb9e2ee`。
- **错误语义**：load 失败/超时**只走 Event**（`splashDidFailToLoad`/`splashDidTimeout` + `requestMessage`），禁止 `Promise.reject`；未 init reject `SDK_NOT_INITIALIZED`，show 无 Activity reject `ACTIVITY_NULL`。

**本 Phase 不做**：Banner/Native（Fabric 视图样式，留 2d/2e）；iOS 真实开屏业务；开屏 AutoLoad。

## Capabilities

### New Capabilities
- `splash-ad`: 开屏广告的 L1 API、TurboModule 桥、Android Helper/Manager 实现、**桥内高度可配容器**、加载超时语义、统一事件回调（含 timeout/showFailed/AdSource）、Example 演示与对拍。

### Modified Capabilities
<!-- 无：复用既有 native-event-bridge / sdk-core-init 等能力与地基，不修改其 spec -->

## Impact

- **新增**：`src/splash/ATSplashAd.ts`；`android/.../splash/`（Manager/Helper + 容器管理）；`ios/.../`（开屏 stub 方法）；`src/specs/NativeATBridge.ts` 增开屏方法；`src/constants/Const.ts` +SplashCallback；`example` 开屏按钮。
- **复用（不改）**：`ATReactNativeEventEmitter`、`ATInitManager`、`BridgeJsonMapUtil`、`RNMapUtil`、`Utils`、`ATAdEvents`、`AdActionButton`、ADX 依赖。
- **不触及**：phase-0/1/2a/2b 已交付能力。
