Android NDK 构建 FreeType 字体库

在开发Android应用时,经常需要集成字体库来提升应用的用户体验。FreeType 是一个广泛使用的字体服务中间件,它使用 ANSI C 编写,并且支持多种平台。本文将介绍如何使用 AndroidNDK(Native Development Kit)来构建 FreeType 字体库,并在 Eclipse 中创建新的 Android 应用项目。

加入开发者社区

为了帮助开发者创新和成功,提供了丰富的资源,包括代码示例、技术信息和同行专家。可以加入社区,参与 Android、物联网、Intel® RealSense™ 技术和 Windows 的开发。在这些社区中,可以下载工具、访问开发套件、与志同道合的开发者分享想法,并参加黑客马拉松、竞赛、路演和本地活动。

创建新的 Android 应用项目

在 Eclipse 中创建新的Android应用项目的详细步骤,请参考 。创建项目后,需要在 Android 项目中创建一个 "jni" 文件夹,如下所示:

要下载最新的 FreeType 中间件,请访问 。截至目前,最新版本是 2.6。下载后,进入 jni 目录,并使用 Cygwin 或 Linux 控制台解压缩 freetype-2.6.tar.gz 文件。

添加 Android.mk 和 Application.mk

在 Android 应用项目的 jni 子目录中,需要添加 Android.mkApplication.mk 文件。Android.mk 是一个 GNU makefile,构建系统会解析它。它指定了源文件和共享库。要了解如何编写 Android.mk 构建文件,请参考 。

以下是 FreeType 字体的 Android.mk 文件示例:

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) FREETYPE_SRC_PATH := LOCAL_MODULE := freetype LOCAL_CFLAGS := -DANDROID_NDK \ -DFT2_BUILD_LIBRARY=1 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include_all \ $(FREETYPE_SRC_PATH)include \ $(FREETYPE_SRC_PATH)src LOCAL_SRC_FILES := ... LOCAL_LDLIBS := -ldl -llog include $(BUILD_SHARED_LIBRARY)

设置 APP_ABI

为了支持 Intel® 架构,需要在 jni/Application.mk 文件中添加 x86 到 APP_ABI 变量。可以在同一行中使用空格分隔来指定多个架构。

APP_ABI := armeabi-v7a x86 #也可以是 x86_64, armeabi, arm64-v8a, mips, mips64

要为所有支持的指令集生成机器代码,可以使用:

APP_ABI := all #也可以是 all32 or all64

APP_PLATFORM 指定目标 Android 平台的名称。以下是 Application.mk 文件的简单示例:

APP_ABI := all APP_PLATFORM := android-20

设置自动NDK构建

首先,需要配置项目的构建器,然后选择要启用的构建器。右键点击 Android 项目,然后选择属性。要添加新的构建器到列表中,选择左侧的构建器,然后点击新建按钮。

从配置类型列表中,选择程序。程序选项允许定义外部工具的位置以及如何执行脚本。

名称:输入新构建器的名称。位置:ndk-build.cmd 的位置。工作目录:浏览到工作项目。

构建项目

项目成功构建后,所有支持架构的 libfreetype.so 文件将放置在 /lib 下。 可以是 x86, x86_64, armeabi, arm64-v8a, armeabi-v7a, mips, 或 mips64,具体取决于在 Application.mk 中如何设置它。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485