android 4.0 ndk可以开发有什么用

如上面所说

一、NDK产生的背景
  Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都可以实现的。
  不过,Google也表示,使用原生SDK编程相比Dalvik虚拟机也有一些劣势,Android SDK文档里,找不到任何JNI方面的帮助。即使第三方应用开发者使用JNI完成了自己的C动态链接库(so)开发,但是so如何和应用程序一起打包成apk并发布?这里面也存在技术障碍。比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。
  于是NDK就应运而生了。NDK全称是Native Development Kit。
  NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。NDK将是Android平台支持C开发的开端。

二、为什么使用NDK
  1.代码的保护。由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
  2.可以方便地使用现存的开源库。大部分现存的开源库都是用C/C++代码编写的。
  3.提高程序的执行效率。将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
  4.便于移植。用C/C++写得库可以方便在其他的嵌入式平台上再次使用。

三、NDK简介
1.NDK是一系列工具的集合
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2.NDK提供了一份稳定、功能有限的API头文件声明
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。
温馨提示:答案为网友推荐,仅供参考
lg新款手机型号lg新款手机型号大全
NDK是用来给安卓手机开发软件用的,但是和SDK不同的是它用的是C语言,而SDK用的是Java语言。NDK开发的软件在安卓的环境里是直接运行的,一般只能在特定的CPU指令集的机器上运行,而且C语言可以直接和硬件对话,因此一般用它开给手机开发驱动或底层应用;而SDK开发出的软件在安卓上靠Dalvik虚拟机来运行,所以

关于Android NDK 开发方面的书籍有哪些推荐
《细说Android 4.0 NDK编程》这本书 顺应Android软\/硬件、云计算整合潮流,详细剖析了NDK开发中涉及的各类问题和解决方案:搭建Android NDK开发环境的每一步细节,开发第一个Android NDK程序,Android NDK中Java与C\/C++代码的互相调用,Facade设计模式在NDK中的美妙应用,NDK与软\/硬件整合,NDK与云计算等...

UE4 Win10 Android打包环境配置踩坑记录
SDK和NDK版本:在Project Settings中选择SDK和NDK的Latest版本。Java网络代理配置:依赖于公司网络状况,可能需要配置Java网络代理以允许UE安装额外的Maven包。可以通过设置JAVA_OPTS环境变量或者在打包脚本中添加代理设置来实现。打包过程中可能遇到的问题:Gradle的debug keystore错误:解决方案:尝试删除ANDROID_...

Ouya制作步骤
安装Android系统:下载并安装Android 4.0或更高版本的操作系统镜像,这是Ouya游戏主机的核心。配置开发环境:安装Android Studio或其他开发工具,设置SDK和NDK,以便进行应用和游戏开发。定制系统UI:根据需要定制Android系统的用户界面,以符合Ouya的品牌风格和用户体验。游戏与应用开发:游戏引擎选择:选择合适...

UE4配置Android环境疑难问题
安装Android Studio 4.0后,系统可能会强制安装Android SDK 33版本,但UE4当前不支持该版本,导致打包失败。正确的做法是在安装完Android Studio后,卸载SDK 33版本及其Build Tool。执行SetupAndroid.bat文件时,可能会遇到找不到SDKMANAGER的问题。此时,可以手动拷贝SetupAndroid.bat文件,删除红框内的内容...

虚幻引擎(Unreal Engine、UE5)打包安卓Android环境配置完整版(东西较 ...
在配置虚幻引擎(Unreal Engine、UE5)打包安卓环境时,需按照以下步骤和注意事项进行操作。首先,确保已安装VisualStudio并配置好环境,以支持UE的Android模板。配置前提包括相关运行库的安装,推荐版本为6.0.7和3.1.10。接着,安装UE的Android模板和VisualStudio的配置(建议使用C++进行游戏开发,注意勿勾...

如何使Android应用程序获得root权限
当编写 NDK 的程序时,可以使用 property_get 和 property_set 这两个 API 来获得和设置属性。使用这两个API 必须要包含头文件 cutils\/properties.h 和链接 libcutil 库。3) Shell 脚本 Android 提供了命令行 setprop 和 getprop 来设置和获取属性,他们可以在脚本中被使用。由于我的程序是在 JNI...

手机编写c语言的软件手机c语言编程软件
可以用C4droid,用的是gcc\/g++的编译器。 目前手机上编程 这个用的是最多的。 WINTC V1.9.1 简繁双语版是WINDOWS平台开发工具。 学C用这个好,支持中文输出显示,学生们都用。 3. c语言开发软件哪个最好 C语言基本上是大学计算机及其相关专业在大一上学期就会开的一门课程。 C语言作为一门起源比较早的编程语言,...

linux怎么搭建android开发环境
到目前为止,基本配置都差不多了,但是为了开发android应用,还必须添加一个android操作系统,用于模拟器模拟你的应用程序。当然还有一些其他部件需要安装。其实就是通过SDK 工具包中的Android SDK Manager来完成。当然在eclipse中可以直接启动这个程序:Window > Android SDK Manager.当然也可以直接运行sdk目录...

音视频开发,用SRS快速搭建WebRTC推流和播放
最新开发版镜像可通过tags或images查看,例如v4.0.71版本对应的镜像。确保Docker配置正确IP,避免推流与播放失败。若对SRS有深入学习需求,推荐观看LinuxC++音视频开发视频,如“免费】FFmpeg\/WebRTC\/RTMP\/NDK\/Android音视频流媒体高级开发”。同时,关注相关学习资料群(qun994289133)获取音视频开发学习资源...

相似回答