Android NDK开发下使用C/C++的几个概念
来源:互联网 发布:魔兽世界9.0剧情知乎 编辑:程序博客网 时间:2024/05/28 04:55
Android Jni下使用C/C++的几个概念
Google出了Android后,不少嵌入式设备均考虑将其放置于自己的设备上。而我们有大量的程序是使用C/C++开发的,如何将其移植上Android,则成了一个必须面对的问题。
先介绍概念:
1.Android应用程序与Java:
Google在2009年4月底发布的SDK1.5,其SDK文档,仍然是没有丝毫提交JNI之处。Google的态度很明确,请第三方应用开发商都在Java层次上进行应用开发。在Android架构上,Java成了必选的开发方式了(是指Application开发,Service开发是可以完全使用C的)。
2.Java调用C/C++程序与C/C++程序调用Java接口:
JavaNative Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++和汇编语言)编写的应用程序和库进行交互操作。
3. Android对JNI的支持:
(转载)
在Android
4.Android中NDK(转载):
1、NDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk(APK是Android
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。
NDK的发布,许多人会误以为,类似于Symbian、WM,在Android平台上终于可以使用纯C、C++开发第三方应用了!其实不然,NDK文档明确说明:it
NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。
使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。
使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。
NDK促使专业so组件商的出现。(乐观猜想,要视乎Android用户的数量)
2、NDK将是Android平台支持C开发的开端。
5. Android Native C:
Android是JVM架设在Linux之上的架构。所以无论如何,在Linux OS层面,都应该可以跑C/C++程序。
Android Native C就是使用C/C++程序直接跑到Linux OS层面上的程序。
与其它平台类似,只需要交叉编译后。并得到Linux OS root权限,就可以直接跑起来了。
- Android NDK开发下使用C/C++的几个概念
- android下C开发平台搭建-eclipse+SDK+NDK+cygwin
- Android ndk开发环境下利用c编写的简单平面波传播模型(带控件)
- Android Studio下的NDK开发(三):C中通过JNIEnv访问Java中的内容
- 借助C/C++进行Android开发:NDK的配置与使用
- 使用Android Studo开发NDK之Gradle的配置(能debug C代码)
- Android NDK 开发 第一步的几个坑
- Android NDK 开发 调试的几个坑 ??:?
- android NDK jni下的c文件 Unresolved inclusion
- android NDK jni下的c文件 Unresolved inclusion
- android NDK jni下的c文件Unresolved inclusion
- android NDK jni下的c文件 Unresolved inclusion
- Android 源码/NDK下编译C/C++的可执行文件
- android NDK jni下的c文件 Unresolved inclusion
- android NDK jni下的c文件 Unresolved inclusion
- android NDK jni下的c文件 Unresolved inclusion
- android NDK jni下的c文件 Unresolved inclusion
- Android NDK开发C语言部分的单步跟踪
- apache+tomcat搭建web服务器
- 二分寻找上下界
- WPF依赖属性的当前值(Current Value),基值(Base Value)和本地值(Local Value)
- Cocos2d-html5教程之二 |小一
- Java SSH面试题集
- Android NDK开发下使用C/C++的几个概念
- HOOJ 1050
- Linux简单命令
- 马场上只有5条跑道,欲从25匹马中选出3匹最快的,求最少比赛次数
- jquery如何引用jsp变量实现获得的cookiepassword写入密码里
- [WPF,XAML,ScrollBar,ScrollViewer,Style] 自定义滚动条
- spring 常用的几个注解的个人理解
- 基于LCU(CTU)的Z扫描和光栅扫描
- eclipse attach source(配置已经成功)