Android 中的 NDK 到底是什么?(详细解析+案例实战)

NDK 提供了一系列的工具,帮助开发者快速开发 C (或 C++ )的动态库,并能自动将 so 和 java 应用一起打包成 apk;这些工具对开发者的帮助是巨大的

什么是 NDK ?

Android 原生开发包 NDK(Native Delopment kits )将用于 Android 平台上的 C++ 开发

Android NDK 是 Android 软件开发包(SDK)的相关工具集,用来扩展 Android SDK 的功能,从而是开发人员能够使用机器代码生成的编程语言(如 C、C++ 和汇编语言)实现一些对代码行要求较高的模块并将这些模块嵌入到 Android 应用程序中

众所周知,Android 程序运行在 Dalvik 虚拟机中,NDK 允许用户使用类似 C / C++ 之类的原生代码语言执行部分程序

NDK 的定义

  • Android NDK 不是一个单独的工具: 它是一个包含API、交叉编译器、链接程序、调试器、构建工具、文档和实例应用程序的综合工具集
  • 在 Android 的官方文档上是这么解释 NDK 的:“原生开发套件 (NDK) 是一套工具,使您能够在 Android 应用中使用 C 和 C++ 代码,并提供众多平台库,您可使用这些平台库管理原生 Activity 和访问物理设备组件;例如传感器和轻触输入”
  • NDK 是一个 Android 官方提供的一个开发套件与 Android SDK 相对应,NDK 是原生开发套件,而 SDK 是 JAVA 开发套件。NDK 使得 Android 应用可以利用 C++ 语言高效的计算性能,进一步提升App的性能,降低延迟。

说道这里,大家肯定要问 NDK 有那些应用场景,我为什么要用 NDK 呢,用 JAV 不行吗?

下面列举一些NDK 的应用场景

重用一些现成的库,例如已经用 C/C++ 编写好的 openCV 库
前面提到的高性能计算,例如很多 Bitmap 的处理到放在 NDK 进行处理
一些敏感信息的保护,例如密钥等信息(密钥等信息还是要经过加盐才能放到 NDK 中,不然还是
会有别反编译的风险)
知道了应用场景,大家肯定已经摩拳擦掌准备试一试了,先别着急。欲善其事,先利其器;以下给出了开发 NDK 的三大利器;

NDK 的三大开发组件
  • NDK  Android 原生开发套件

  • CMAKE 外部编译工具

  • LLDB  原生代码调试工具

NDK 开发优点

  • 利用 NDK 开发的库,不容易被反编译,保密性,安全性都提高了
  • 很多开源工程和大工程都是 C/C++ 代码写的
  • C/C++ 的代码运行速度和效率都比 Java 快很多

Android NDK 开发步骤

(1)JNI 接口设计;
(2)使用 C/C++ 本地实现方法;
(3)生成动态链接库;
(4)将动态链接库复制到 Java 工程,运行 Java 程序

NDK 基础实践

CMake

推荐使用 CMake 而不是传统 NDK-build 的方式,既然都用新的,自然有它的道理,简单方便
有很多人在配置 CMakeLists.txt 时编译不通过,是自己的问题吗?当然,难不成还是它的问题吗?</

TeamSpeak 3 延续了TeamSpeak 2的优良功能,并在TS2的基础上有大幅的改进。程序用C 完全重写,提供了更好的稳定性和扩展性。跨平台100%兼容,同时可以运行在WINDOWS全系列(32位和64位系统)、Linux(32位和64位系统)Mac OS X(苹果)操作系统上。新老用户都将享受到TeamSpeak3无与伦比的强大功能和全新的语音通讯体验。 TeamSpeak 3的新特性包括: (1)更清晰的语音质量和更好的延迟:TS3的语音质量有了一个质的飞跃。采用全新的speex和celt语音编码,分别适用于语音通话和音乐传输两种环境。并提供自动麦克风调整、先进的降噪和回声消除功能。语音的延迟也得到了明显的改善。 (2)可同时登录多个TS服务器:类似IE7、IE8的选项卡功能,TS3可以在同一个程序内打开多个选项卡,以方便同时登录多个TS服务器地址。 (3)强大的权限系统:TS3的权限系统完全不同于TS2,可以添加任意多的用户组,每个用户组的具体功能都可定制,基于频道、基于单个用户都可设置特别的权限。 (4)全新的用户认证系统:TS3引入了一个全新的认证系统,不同于用户名/密码的组合认证。登录TS3完全不需要用户名/密码。TS3会随时记忆您的独特身份,再也不需要为忘记用户名/密码苦恼了。 (5)好友管理:TS3拥有一个通讯录管理器,添加到通讯录的人,可以按朋友/中立/敌人来区分。可以设定是否对某人静音,是否拒收某人发来的文本消息,等等。 (6)3D音效:TS3现在具有完整的3D音效支持,通过设置,不同人的声音可以定位到不同的空间位置,自己可以处在一个立体三维空间的任意点上,听到前后左右不同方位传来的声音。如果您的音箱/耳机支持5.1或7.1声道,将获得更完美的效果。 (7)可设定头像:您还可以设定自己喜欢的头像显示在自己的TS上。  TeamSpeak截图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值