编写原生android应用


NDK API介绍:https://developer.android.com/ndk/guides/concepts.html#naa

从 API 级别 9 开始,您可以使用原生代码编写整个 Android 应用,无需使用任何 Java。在原生代码中编写您的应用本身并不能让您的应用在 VM 中运行。 此外,您的应用仍必须通过 JNI 访问 Android 平台的大部分功能。如需有关这些标头的详细信息,请参阅 NDK API 参考文档以及标头本身的注释。 另外,有关编写原生应用较大的主题的详细信息,请参阅原生 Activity 和应用

当您添加其中一个或多个标头时,您也必须要链接 libandroid.so 库。 如需链接 libandroid.so,在 Android.mk 文件中添加以下行:

LOCAL_LDLIBS += -landroid


本节简要说明 NDK 的工作方式。Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。 能够在 Android 应用中使用原生代码对于想执行以下一项或多项操作的开发者特别有用:

  • 在平台之间移植其应用。
  • 重复使用现有库,或者提供其自己的库供重复使用。
  • 在某些情况下提高性能,特别是像游戏这种计算密集型应用

虽然可以完全避免 Java,但您可能发现,Android Java 框架对于包括控制显示和 UI 在内的任务很有用。

流程

为 Android 开发原生应用的一般流程如下:

  1. 设计应用,确定要在 Java 中实现的部分,以及要以原生代码形式实现的部分。

    注:虽然可以完全避免 Java,但您可能发现,Android Java 框架对于包括控制显示和 UI 在内的任务很有用。

  2. 像创建任何其他 Android 项目一样创建一个 Android 应用项目。
  3. 如果要编写纯原生应用,请在 AndroidManifest.xml 中声明 NativeActivity 类。 如需了解详细信息,请参阅原生 Activity 和应用
  4. 在“JNI”目录中创建一个描述原生库的 Android.mk 文件,包括名称、标志、链接库和要编译的源文件。
  5. 或者,也可以创建一个配置目标 ABI、 工具链、发行/调试模式和 STL 的 Application.mk 文件。对于其中任何您未指明的项目,将分别使用以下默认值:
    • ABI:armeabi
    • 工具链:GCC 4.8
    • 模式:发行
    • STL:系统
  6. 将原生来源置于项目的 jni 目录下。
  7. 使用 ndk-build 编译原生(.so.a)库。
  8. 构建 Java 组件,生成可执行 .dex 文件。
  9. 将所有内容封装到一个 APK 文件中,包含 .so.dex 以及应用运行所需的其他文件

NDK 的 API 参考包括 NDK 针对 Android 提供的原生标头基本集的相应文档。 这些标头及其相关的内容库可显示各种功能,不然只能通过 Android 框架访问这些功能。以下是其中的几项功能:

  • 使用硬件传感器。
  • 访问存储空间。
  • 处理用户输入。
  • 设置配置信息,如屏幕方向。

API 参考提供有关 NDK 中附带的上述功能及其他功能的详细信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native提供了一个称为Native Modules的机制,允许您在React Native应用程序中使用原生代码。因此,您可以使用Java或Kotlin编写原生Android代码,并将其与React Native应用程序集成。以下是一些步骤: 1.创建一个新的Android库项目。 2.在您的React Native项目中创建一个新的Native Module。 3.将您的原生代码添加到Android库项目中。 4.编写Java或Kotlin代码来公开原生方法。 5.在React Native Native Module中使用这些方法。 6.构建并运行您的React Native应用程序。 这里是一个简单的例子,说明如何在React Native应用程序中使用原生Android模块: 1.创建一个新的Android库项目 在Android Studio中,选择“File” > “New” > “New Module”。然后选择“Android Library”并按照向导中的说明创建一个新的Android库项目。 2.在您的React Native项目中创建一个新的Native Module 在React Native项目的根目录下,运行以下命令: ``` react-native create-library MyNativeModule ``` 此命令将创建一个名为MyNativeModule的新目录。在此目录中,您可以添加一个名为MyNativeModule.java的文件。 3.将您的原生代码添加到Android库项目中 将您的原生代码复制到Android库项目中的src/main/java目录中。 4.编写Java或Kotlin代码来公开原生方法 在您的Java或Kotlin类中,使用@ReactMethod注释来标记要公开给React Native的原生方法。例如: ``` @ReactMethod public void showToast(String message) { Toast.makeText(getReactApplicationContext(), message, Toast.LENGTH_SHORT).show(); } ``` 5.在React Native Native Module中使用这些方法 在您的React Native应用程序中,导入MyNativeModule并调用其方法。例如: ``` import { NativeModules } from 'react-native'; const { MyNativeModule } = NativeModules; MyNativeModule.showToast('Hello, world!'); ``` 6.构建并运行您的React Native应用程序 在React Native应用程序的根目录中,运行以下命令以构建并运行您的应用程序: ``` react-native run-android ``` 这样,您就可以在React Native应用程序中使用原生Android模块了!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值