每天一点Android开发----NDK开发

本文详细介绍了Android NDK(Native Development Kit)的使用,如何通过它使用C、C++开发Android应用程序的部分功能,提高了运行效率,同时带来的副作用也进行了探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android应用不仅可以用Java编写,而且还可以使用C、C++来编写,Google公司在发布Android1.5的同时发布了一个可以用C、C++开发Android开发应用的Library,这就是Android NDK,简称NDK,通过NDK,开发人员可以使用C、C++开发andorid应用程序的部分功能,

Android NDK(Native Development Kit)是一套允许开发人员将本地代码嵌入Android应用程序的开发包,众所周知,Android应用程序运行在Dalvik虚拟机上,而NDK允许开发人员将Android应用程序中的部分功能(因为NDK只开放了部分接口,因此,无法使用NDK编写完整的Android应用程序),用c、c++语言来实现,并将这部分C、C++代码编译成可直接运行在Android平台上的本地代码,(也就是绕过了Dalvik虚拟机,直接在Android平台上运行)。这些本地代码以动态链接库(。so文件)的形式存在,NDK的这个特性即有利于代码的重用(动态链接库可以被多个Android应用程序使用),也可以提高程序的运行效率。

NDK可以提供一下内容

1,提供了一套工具集,这套工具集可以将C,C++源代码生成本地代码。

2,用于定义NDK接口的C头文件,(*.h)和实现这些接口的库文件.

3,一套编译系统.可以通过非常少的配置生成目标文件

4,自从Android2.3开始,支持本地窗口(Native Activity)

最新版的NDK支持ARMv5TE机器指令,并且提供了大量的C语言库,包括libm(math库)、OpenGL ES、JNI接口以及其他库。

虽然在程序中使用NDK可以大大提高运行效率,但使用NDK也会带来很多副作用,例如,使用NDK并不是总会提高应用程序的效率,但是绝对会提高程序的复杂度,而且使用NDK必须要自己控制内存的释放可分配,这样将无法利用Dalvik虚拟机来管理内存,也会给应用程序带来很大风险,因此,建议大家应该根据具体的情况使用NDK,,比如需要大幅提高程序性能或需要保密,因为Java生产的目标文件很容易被反编译。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值