|
1 | | -# 16kpatch 使用说明(arm64 生产 + x86_64 可构建) |
| 1 | +# 16kpatch 使用说明(64位16K + 32位可构建) |
2 | 2 |
|
3 | 3 | ## 适用范围 |
4 | 4 | - 基线项目:默认 `ijkplayer` |
5 | 5 | - 主机环境:Darwin arm64(Apple Silicon) |
6 | 6 | - NDK:`22.1.7171670`(r22) |
7 | 7 | - FFmpeg 依赖:`CarGuo/FFmpeg` tag `ijk-n4.3-20260301-007` |
8 | | -- ABI 策略:`arm64-v8a` 生产 + `x86_64` 可构建 |
| 8 | +- ABI 策略: |
| 9 | + - `arm64-v8a` / `x86_64`:16K page size |
| 10 | + - `armeabi-v7a`:可构建,4K page size |
9 | 11 |
|
10 | 12 | ## 补丁文件说明 |
11 | 13 | - `ndk_r22_16k_commit.patch` |
12 | | - - 当前 `ijkplayer` 主仓改动快照(基于 `9ef1d2b2` 到当前工作树),覆盖构建脚本、16K 对齐、Stack Canary、init 固化、x86_64 构建支持、README 同步等。 |
| 14 | + - 当前 `ijkplayer` 主仓改动快照(基于 `9ef1d2b2` 到当前工作树),覆盖构建脚本、64位16K分流、armv7a(r22)兼容、init 固化、README 同步等。 |
13 | 15 | - `ndk_r22_ffmpeg_n4.3_ijk.patch` |
14 | 16 | - FFmpeg 侧补丁(`n4.3..ijk-n4.3-20260301-007`),包含 ijk 协议/demuxer 兼容、OpenSSL 探测兼容、导出头、async 注册崩溃修复。 |
15 | 17 | - `ndk_r22_soundtouch.patch` |
@@ -61,20 +63,22 @@ cd android/contrib |
61 | 63 | ./compile-openssl.sh arm64 |
62 | 64 | ./compile-ffmpeg.sh arm64 |
63 | 65 | ./compile-ffmpeg.sh x86_64 |
| 66 | +./compile-ffmpeg.sh armv7a |
64 | 67 |
|
65 | 68 | cd .. |
66 | 69 | ./compile-ijk.sh arm64 |
67 | 70 | ./compile-ijk.sh x86_64 |
| 71 | +./compile-ijk.sh armv7a |
68 | 72 | ``` |
69 | 73 |
|
70 | 74 | ## 验证建议 |
| 75 | +- 64位 16K: |
| 76 | + - `arm64-v8a` 与 `x86_64` 下 `libijkffmpeg.so/libijksdl.so/libijkplayer.so` 的 `PT_LOAD Align` 为 `0x4000` |
| 77 | +- 32位 4K: |
| 78 | + - `armeabi-v7a` 下 `libijkffmpeg.so/libijksdl.so/libijkplayer.so` 的 `PT_LOAD Align` 为 `0x1000` |
71 | 79 | - Stack Canary:`libijkffmpeg.so` 包含 `__stack_chk_fail@LIBC` |
72 | | -- 16K Page Size:`arm64-v8a` 下 `libijkffmpeg.so/libijksdl.so/libijkplayer.so` 的 `PT_LOAD Align` 为 `0x4000` |
73 | | -- x86_64 产物存在: |
74 | | - - `android/ijkplayer/ijkplayer-x86_64/src/main/libs/x86_64/libijkffmpeg.so` |
75 | | - - `android/ijkplayer/ijkplayer-x86_64/src/main/libs/x86_64/libijksdl.so` |
76 | | - - `android/ijkplayer/ijkplayer-x86_64/src/main/libs/x86_64/libijkplayer.so` |
77 | 80 |
|
78 | 81 | ## 注意事项 |
79 | | -- 生产发布仍建议仅使用 arm64-v8a。 |
| 82 | +- 生产发布优先 `arm64-v8a`。 |
| 83 | +- `armeabi-v7a` 主要用于 32 位设备兼容;若目标机型存在 HEVC 软解崩溃风险,建议优先硬解或降低 armv7a 解码能力。 |
80 | 84 | - 若目标仓库已存在同名改动,`git apply --check` 可能失败;请先清理冲突或基于干净分支应用。 |
0 commit comments