ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何使用自定义 NDK/SDK 从源码构建 KOReader Android 包(android-arm64 等目标)

如何使用自定义 NDK/SDK 从源码构建 KOReader Android 包(android-arm64 等目标) 如何使用自定义 NDK/SDK 从源码构建 KOReader Android 包android-arm64 等目标【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreaderKOReader 的 Android 安装包可以在本地从源码构建出来。默认情况下构建系统会自动下载并配置一套兼容的 Android NDK 和 SDK如果你本地已经安装了 NDK/SDK比如公司内网环境、或已有其他项目复用的工具链可以让构建系统直接使用你自己的版本。本文说明在 Linux 下如何用自定义 NDK/SDK 执行./kodev release android-arm64等命令产出一个可安装的 APK以及如何验证结果。以下构建说明面向 Linux 系统macOS 和 Windows 用户建议在 Linux VM 中开发见 doc/Building_targets.md。准备条件Linux 构建环境先按 doc/Building.md 准备好基础构建环境包括autoconf、automake、cmake 3.17.5、支持 C11/C17 的gcc/g或clang、meson、ninja、python 3.10、git、make等文档中给出了 Debian/Ubuntu、Arch、Alpine、Fedora 等发行版的具体安装命令。各目标平台需要交叉编译工具链文档要求 GCC 至少为 4.9 版本——使用自定义 NDK 时这一条件由你的 NDK 自带工具链满足。Android 专用依赖包构建 Android 包还需要openjdk-17-jdk-headless和p7zip-full两个包Ubuntu/Debian 下安装sudo apt-get install openjdk-17-jdk-headless p7zip-full确认你的 NDK/SDK 版本doc/Building_targets.md 明确给出使用自己安装的 NDK/SDK 时请使用受支持的版本——NDK r23cNDKr23c和Android 9API level 28的 SDK。版本不符时文档没有进一步说明建议先对齐到这两个版本再开始构建。获取源码git clone https://gitcode.com/GitHub_Trending/ko/koreader cd koreader ./kodev fetch-thirdparty./kodev fetch-thirdparty用于拉取并同步第三方依赖submodule是构建前的必要步骤。配置自定义 NDK/SDK 环境变量构建系统识别两组标准环境变量见 doc/Building_targets.mdNDK 位置ANDROID_NDK_HOME或ANDROID_NDK_ROOTSDK 位置ANDROID_HOME或ANDROID_SDK_ROOT把两个变量分别指向你自己的安装目录替换为实际路径/path/to/...仅为占位export ANDROID_NDK_HOME/path/to/your/ndk-r23c export ANDROID_HOME/path/to/your/sdkANDROID_NDK_HOME指向 NDK r23c 的根目录目录内应能看到toolchains、ndk-build等 NDK 内容。ANDROID_HOME指向 SDK 根目录需要包含 Android 9API level 28平台。判断是否生效的逻辑只要ANDROID_NDK_HOME/ANDROID_NDK_ROOT中任意一个非空构建就不会再自动拉取 NDKSDK 同理见 kodev 中setup_target对android-*目标的检查。作为对照如果两个变量都不设置kodev会自动执行android-ndk/android-sdk这两个 make 目标把兼容版本的 NDK/SDK 下载并配置到base/toolchain目录下见 Makefile 中的android-ndk、android-sdk规则——也就是默认行为。构建 APK在仓库根目录执行./kodev release android-arm64ANDROID_TARGET可以是文档列出的四个目标之一与 make/android.mk 中的 ABI 映射关系如下目标对应 ABIandroid-armarmeabi-v7aandroid-arm64arm64-v8aandroid-x86x86android-x86_64x86_64两个与执行过程相关的说明kodev release默认会先执行make po拉取翻译如果不需要可加--ignore-translation或-i跳过失败时命令本身也会提示使用这个选项。doc/Building.md 在Building for other platforms一节中的前提表述是先把模拟器构建好即可以先用./kodev build验证本机环境可用再执行跨平台构建。构建过程中会经过交叉编译、用 platform/android/luajit-launcher 下的 Gradle 工程gradlew app:assemble...打包最后把产出的NativeActivity.apk复制为正式命名的 APK见 make/android.mk 的update目标。验证结果构建成功后APK 会出现在仓库根目录命名规则来自 make/android.mk 中的ANDROID_APK koreader-android-$(ANDROID_ARCH)$(KODEDUG_SUFFIX)-$(ANDROID_NAME).apk其中版本号ANDROID_NAME由构建系统生成。以android-arm64为例最终产物形如koreader-android-arm64-版本号.apk这是文档给出的命名模式而非固定文件名版本号以实际构建输出为准。如果需要进一步在真机确认可以走 ADB 安装路径kodev run的帮助说明Install and run KOReader on an Android device connected through ADB./kodev run android-arm64该路径要求adb可用、设备已通过 ADB 连接并且会从 SDK 的$(ANDROID_SDK_ROOT)/cmdline-tools/latest/bin/apkanalyzer读取包信息。注意它带有一系列设备侧副作用见 make/android.mk 的run目标先清除设备 logcat卸载设备上已安装的 KOReader 包再安装新 APK、自动授予MANAGE_EXTERNAL_STORAGE权限最后通过monkey启动应用并用 tools/logcat.py 监控日志。仅想验证 APK 产物本身时不需要执行这一步。限制与边界使用自定义 NDK/SDK 的前提是版本对齐NDK r23c Android 9API level 28的 SDK文档只保证这两个版本受支持。不设置环境变量时不会报错但构建系统会走自动下载路径产物位于base/toolchain此时实际使用的并不是你本地的 NDK/SDK——验证自己的工具链是否被采用可以确认环境变量已导出后再执行构建。这套 Android 构建说明面向 Linux构建说明本身不涵盖在 Windows/macOS 上直接构建的方案文档的建议是放入 Linux VM 开发。【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表