本文译自 Rad Studio 帮助 Using Java Libraries in Your RAD Studio Android Apps。
为提供 Android 目标平台的支持,FireMonkey 应用平台需要访问 Android API 和其它 Java 库。RAD Studio 包含一套 FireMonkey 需要的库,通过 Delphi 单元(.pas)和 C++ 头文件(.hpp)来让你在 RAD Studio Android 应用中访问 那些 Java 库。
如果你的应用或定制的组件需要访问的 Java 库不包含在内置的 RAD Studio Java 库中,RAD Studio 提供工具让你能在你的 RAD Studio 应用中访问你自定义的 Java 库。
使用针对 Android 内置的 RAD Studio Java 库
RAD Studio 安装包含一组内置的 Java 库,同时为每个 Java 库提供一或多个 Delphi 单元或 C++ 头文件。你可以在应用中使用这些 Java 库的 API。
RAD Studio 安装也包含了一个 classes.dex 文件,它用来转换这组 Java 库到一个单一的 Dalvik 可执行文件的结果。RAD Studio 默认在你发布你的应用到 Android 目标平台时将 classes.dex 文件包含到你的应用中。 这个文件允许你的 RAD Studio 应用在运行时和 Android API 及其它内置于 RAD Studio 的Java库交互。
内置 Java 库列表:
Android API:Android 平台的 API
- Androidapi.JNI.App
- Androidapi.JNI.Dalvik
- Androidapi.JNI.GraphicsContentViewText
- Androidapi.JNI.Hardware
- Androidapi.JNI.InputMethodService
- Androidapi.JNI.Java.Security
- Androidapi.JNI.JavaTypes
- Androidapi.JNI.Location
- Androidapi.JNI.Media
- Androidapi.JNI.Net
- Androidapi.JNI.OpenGL
- Androidapi.JNI.Os
- Androidapi.JNI.Provider
- Androidapi.JNI.Telephony
- Androidapi.JNI.Util
- Androidapi.JNI.VideoView
- Androidapi.JNI.Webkit
- Androidapi.JNI.Widget
Android Support:针对 Android 编程提供的一组不同功能的支持库
- Androidapi.JNI.Support
FireMonkey:针对 Android 平台上的 FireMonkey 应用平台提供的一组核心功能库
Androidapi.JNI.Embarcadero
Google Mobile Ads:谷歌广告服务SDK
Androidapi.JNI.AdMob
Google Analytics:谷歌分析服务 SDK
Androidapi.JNI.Analytics
Google Play 应用授权:授权验证库,为一个 Android 应用添加授权支持的一组辅助类
Androidapi.JNI.Licensing
Google Play 内置支持:谷歌 Play 内置支付服务
Androidapi.JNI.InAppBilling
Google Play 服务:Google Play 服务 API
Androidapi.JNI.PlayServices
Androidapi.JNI.ApkExpansion
Androidapi.JNI.PlayServices.GCM
FireMonkey Java 库是一个 Embarcadero 库。内置的 APK Expansion 和 Cloud Messaging Java 库是由 Embarcadero 修改过的第三方库,剩下的上表中的 Java 库是未修改的第三方库。
你可以在你的 RAD Studio 应用中包含上面的原生文件来在你的原生代码中访问那些 Java 库的 API。你可以 RAD Studio 的安装目录下找到它们:
Delphi 单元: source\rtl\android (.pas )
C++ 头文件: include\android\rtl (.hpp)
一些第三方 Java 库的某些功能可能需要你:
- 在你的 Android 应用中添加使用授权;
- 自定义 AndroidManifest.xml 文件
检查每个第三方库的官方文档来了解更多信息。
禁用不需要的内置 Java 库来减小你的应用大小
如果你确认你的应用不需要某些第三方库,可以禁用它们以减少你的应用大小:
- 在 Project Manager 上,展开 Target Platforms > Android 的 Libraries 结点。
- 右键单击你不想包含在 classes.dex 中的 Java 库。
- 选择 Disable 来禁用选中的 Java 库文件。
要启用以前禁用的内置库,重复上面的步骤,但是选择的是 Enable。
在应用中使用自定义的第三方 Java 库
RAD Studio 允许你在应用中使用你自己或第三方的 Java 库。
要在你的应用中使用自定义库:
- 确认你的 Java 库符合 RAD Studio 的最低要求
- 为Java 库创建一个原生桥接文件
- 添加你的 Java 库到你的应用中
RAD Studio 针对 Java 库的要求
- 兼容 Android API Level 10(Android 2.3.3) 以上
- 如果你的 Java 库依赖其它 Java 库,你必需包含所有依赖的 Java 库。你需要那些库的 Jar 文件来稍后生成一个有效的 classes.dex 文件。
查看: 为每个库的 JAR 文件生成一个 classes.dex
文件 .
为Java 库创建一个原生桥接文件
一旦你有了自己的 Java 库,你需要创建一个或多个原生的桥接文件以便在你的原生应用中访问你的 Java 库 API。
你可以使用 Java2OP 命令行工具来创建原生的桥接文件,然后手动翻译你的 Delphi 原生桥接文件到 C++。
你可以检查已有的桥接文件(以 Androidapi.JNI 为前缀)来参考,它们位于安装目录下的:
source\rtl\android (Delphi)
include\android\rtl (C++)
在应用中添加你自己的 Java 库
有两种方法允许你添加自己的 Java 库到你的 Android 应用:
- 使用 Project Manager 来添加 Java 库到你的应用 。这是最简单的方式,对绝大多数情况也应该工作正常。
(1)找到 Android 目标平台的 Libraries 结点,右键选择Add。
(2)浏览找到要添加的 jar 文件,然后选择 Open。
(3)别忘了引用你创建的原生桥接文件。 - 创建并手动发布一个 classes.dex 文件。这不仅允许你添加库到你的应用,还可以修改内置的 Java 库或移除你不想要的(略)。