- java可以直接编译成可执行的二进制文件,参考:http://xieruilin.iteye.com/blog/728940
- 这种方案成熟吗?很少见到把JAVA编译成二进制文件后运行的
- java可以通过jni的方式来访问C编译后的程序的(如:so),当然,这种so和普通的so有稍许的不同,需要通过jni的方式包装一下的,参考: http://hubingforever.blog.163.com/blog/static/17104057920115218559186/
- javah命令就是为jni而生的
- Android.mk简介: http://hubingforever.blog.163.com/blog/static/171040579201152185542166/
http://hubingforever.blog.163.com/blog/static/1710405792011656434982/ - 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/hibraincol/archive/2011/05/30/2063847.html
-