标签:
Android手机内存管理与性能优化&JNI、NDK高级编程(JNI、Dalvik、内存监测)
课程分类:Android
适合人群:中级
课时数量:34小节课时
用到技术:Dalvik,DDMS,File Explorer,Adapter和图片处理,查询数据库和Static关键字使用及线程,JNI和NDK等
涉及项目:Android手机内存管理与性能优化,玩转JNI与NDK手机编程
咨询qq:1840215592
Android手机内存管理与性能优化详细介绍:http://www.dwz.cn/F8A3P
1.何谓JNI
JNI,从Java1.1开始,Java Native Interface(JNI)标准成为java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言,尤其是C和C++而设计的,但是它并不妨碍你使用其他语言,只要调用约定受支持就可以了。使用java与本地已编译的代码交互,通常会丧失平台可移植性。但是,有些情况下这样做是可以接受的,甚至是必须的。例如,使用一些旧的库,与硬件、操作系统进行交互,或者为了提高程序的性能。JNI标准至少保证本地代码能工作在任何Java 虚拟机环境下。
2.何谓NDK
Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。
众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
NDK包括了:
从C / C++生成原生代码库所需要的工具和build files。
将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。
支持所有未来Android平台的一些列原生系统头文件和库
为何要用到NDK?
概括来说主要分为以下几种情况:
1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。
2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。
3. 便于移植,用C/C++写的库可以方便在其他的嵌入式平台上再次使用。
标签:
原文地址:http://www.cnblogs.com/xiarilove/p/4377973.html