尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何使用自定义 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),仅供参考
RELATED

相关推荐

QA Report — [URL] — [timestamp]

QA Report — [URL] — [timestamp]

QA Report — [URL] — [timestamp] 【免费下载链接】ECC The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. 项目地址: https://gitcode.co…

📅 2026/9/12 3:57:20
汽车行业数字化转型:战略框架与关键技术解析

汽车行业数字化转型:战略框架与关键技术解析

1. 汽车行业数字化转型的战略价值与现状分析汽车产业正经历百年未有的技术变革浪潮。根据麦肯锡最新研究数据,全球汽车行业数字化投入年均增长率达到17%,远超传统研发投入增速。这种转型并非简单的技术叠加,而是从产品形态、商业模式到组织架…

📅 2026/9/12 3:57:20
古诗文填空高效备考:三维解析与科学记忆法

古诗文填空高效备考:三维解析与科学记忆法

1. 项目背景与核心价值初中古诗文大会作为上海地区最具影响力的学科竞赛之一,每年吸引数万学生参与。2026年赛事在即,填空题作为考察古诗文积累的核心题型(占比约40%),其备考效率直接决定参赛成绩。传统备考存在三大痛…

📅 2026/9/12 3:57:20
MORE NEWS

更多资讯

📰

农场管理系统开发:Flask与Django技术选型实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

在 .NET 中使用 Semantic Kernel 集成 AWS Bedrock Agent:环境准备、配置与七个实战示例

在 .NET 中使用 Semantic Kernel 集成 AWS Bedrock Agent:环境准备、配置与七个实战示例 【免费下载链接】semantic-kernel Integrate cutting-edge LLM technology quickly and easily into your apps 项目地址: https://gitcode.com/GitHub_Trending/se/semanti…

📰

Text-to-CAD实战:用自然语言一句话生成可编辑三维模型

前阵子同事在群里甩过来一句话:帮我画一个M8外六角螺栓,两头倒角,长度40。换作以前,我得打开CAD,新建文件,切视图,画六边形,拉伸,再切出螺杆和倒角,少说也要十…

📰

中小企业管理软件的关联输入功能设计与实现

1. 项目背景与核心需求 《看潮企业管理软件》是一款面向中小企业的综合管理解决方案,这个编号为03-008的开发模块聚焦于"关联输入"功能的实现。在实际企业管理中,数据关联性往往比单一数据录入更重要——采购订单需要关联供应商信息&#xff0…

📰

大模型任务系统架构设计与JSON Schema驱动开发实践

1. 项目概述:大模型任务系统核心架构解析在Claude Code第七课Task System任务系统的学习中,我们接触到现代大模型开发中最关键的架构设计范式。这套系统本质上是通过JSON Schema驱动的任务编排引擎,实现了从结构化数据到实际操作的智能映射。…

📰

YOLO目标检测工程实战:从原理拆解到工业部署避坑指南

1. 这不是“科普文”,是目标检测工程师的入门第一课:从YOLO标题里挖出真问题你点开这个标题,大概率不是想听“目标检测就是识别图中有什么物体”这种教科书定义。你真正卡住的地方,可能是:标注完500张图,训…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬