斗奶门使用 Gemini API 等构建 AI 赋能的 Android 应用。
首先,构建您的第一个应用。然后,通过我们的培训课程更深入地了解相关知识,或者自行探索应用开发。
构建可让用户在手机、平板电脑、手表、头戴设备等设备上获享无缝体验的应用。
了解如何按照 Google 的明确规范化指导,针对您的使用场景构建应用。
本部分简要介绍了 NDK 的工作原理。Android NDK 是一组使您能将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。能够在 Android 应用中使用原生代码对于想执行以下一项或多项操作的开发者特别有用:
本部分介绍了在为 Android 构建原生应用时使用的主要组件,并且介绍了构建和封装过程。
原生静态库:NDK 也可构建静态库或.a文件,而您可将静态库关联到其他库。
Java 原生接口 (JNI):JNI 是 Java 和 C++ 组件用于相互通信的接口。本指南假设您具备 JNI 知识;如需了解相关信息,请查阅Java 原生接口规范。
应用二进制接口 (ABI):ABI 可以非常精确地定义应用的机器代码在运行时应该如何与系统交互。NDK 根据这些定义构建.so文件。不同的 ABI 对应不同的架构:NDK 为 32 位 ARM、AArch64、x86 及 x86-64 提供 ABI 支持。如需了解详情,请参阅Android ABI。
清单:如果您编写的应用不包含 Java 组件,必须在清单中声明NativeActivity类。要详细了解如何执行此操作,请参阅使用 native_activity.h 接口。
设计应用,确定要使用 Java 实现的部分,以及要以原生代码形式实现的部分。
像创建任何其他 Android 项目一样创建一个 Android 应用项目。
在“JNI”目录中创建一个描述原生库(包括名称、标记、关联库和要编译的源文件)的Android.mk文件。
或者,您也可以创建一个配置目标 ABI、工具链、发布/调试模式和 STL 的Application.mk文件。对于其中任何您未指明的项,将分别使用以下默认值:
将所有内容封装到一个 APK 文件中,包括.so、.dex以及应用运行所需的其他文件。
Android SDK 提供了辅助类NativeActivity,可用于编写完全原生的 activity。NativeActivity可处理 Android 框架与原生代码之间的通信,因此您不必子类化该类或调用其方法,而只需在AndroidManifest.xml文件中将您的应用声明为原生应用,然后开始创建该原生应用。
使用NativeActivity的 Android 应用仍会在其自己的虚拟机中运行,与其他应用以沙盒的形式分隔。因此,您仍可通过 JNI 访问 Android 框架 API。在某些情况下(例如对于传感器、输入事件和资源),NDK 提供可使用的原生接口,而无需通过 JNI 调用。如需详细了解此类支持,请参阅原生 API。
无论是否要开发原生 activity,我们都建议使用传统 Android 构建工具创建项目。这样有助于确保使用正确的结构构建和封装 Android 应用。
native_activity.h头文件会定义NativeActivity类的原生版本。其中包含创建原生 activity 所需的回调接口和数据结构。由于应用的主线程会处理回调,因此回调实现不能阻止主线程,否则可能会收到 ANR(应用无响应)错误,因为主线程在回调返回之前无响应。
文件会定义基于native_activity.h接口构建的静态辅助库。它会派生出另一个线程,用于处理事件循环中的回调或输入事件等。将这些事件移至单独的线程可防止任何回调阻止主线程。
meta-data标记的android:value属性会指定共享库的名称,其中包含应用的入口点(例如 C/C++main),省略库名的lib前缀和.so后缀。
在项目的jni/目录中创建Android.mk file,向构建系统描述您的原生模块。如需了解详情,请参阅Android.mk。
像平常一样构建和安装 Android 项目。如果原生代码存放在jni/目录中,构建脚本会自动将从原生代码构建的.so文件封装到 APK 中。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
|