您的当前位置:首页正文

Android NDK

2024-11-06 来源:个人技术集锦

Android NDK 简介

NDK全称:Native Development Kit

1.NDK是一系列工具的集合

  •  NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的
  • NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so
  • NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作

2.NDK提供了一份稳定、功能有限的API头文件声明

  • Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)


Android NDK使用

Android的虚拟机容许你通过JNI调用本地代码。简而言之,这意味着:

  • 你的应用程序源代码将声明一个或多个本地方法,通过名字可以看出这些方法是本地的例如:

          native byte[]  loadFile(String  filePath);

  • 你必须提供一个本地共享库包含这些方法的实现,并将其打包到您的应用程序的apk文件中。这些库必须按照UNIX的命名方式, 像lib <something>.so,而且应包含一个标准的JNI入口 。例如:

           libFileLoader.so

  • 您的应用程序必须显式地加载这些库。例如,需要在应用程序启动时加载,只需如下:

            static {       

                     System.loadLibrary("FileLoader");

                     }

         这里注意不要添加lib的前缀或者.so后缀


Android NDK实例

下面大概的展示了如何通过Android NDK开发过程:


Top