在开发Android应用时,经常需要集成字体库来提升应用的用户体验。FreeType 是一个广泛使用的字体服务中间件,它使用 ANSI C 编写,并且支持多种平台。本文将介绍如何使用 AndroidNDK(Native Development Kit)来构建 FreeType 字体库,并在 Eclipse 中创建新的 Android 应用项目。
为了帮助开发者创新和成功,提供了丰富的资源,包括代码示例、技术信息和同行专家。可以加入社区,参与 Android、物联网、Intel® RealSense™ 技术和 Windows 的开发。在这些社区中,可以下载工具、访问开发套件、与志同道合的开发者分享想法,并参加黑客马拉松、竞赛、路演和本地活动。
在 Eclipse 中创建新的Android应用项目的详细步骤,请参考 。创建项目后,需要在 Android 项目中创建一个 "jni" 文件夹,如下所示:
要下载最新的 FreeType 中间件,请访问 。截至目前,最新版本是 2.6。下载后,进入 jni 目录,并使用 Cygwin 或 Linux 控制台解压缩 freetype-2.6.tar.gz
文件。
在 Android 应用项目的 jni 子目录中,需要添加 Android.mk
和 Application.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)
为了支持 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
首先,需要配置项目的构建器,然后选择要启用的构建器。右键点击 Android 项目,然后选择属性。要添加新的构建器到列表中,选择左侧的构建器,然后点击新建按钮。
从配置类型列表中,选择程序。程序选项允许定义外部工具的位置以及如何执行脚本。
名称:输入新构建器的名称。位置:ndk-build.cmd 的位置。工作目录:浏览到工作项目。
项目成功构建后,所有支持架构的 libfreetype.so 文件将放置在 /lib