Android NDK入门
POSTED AT: 2010-06-25 02:00:36 UTC |
POSTED IN: Android |
13 COMMENTS
还是觉得Android文档太少,在之前的Android 中aidl如何import文件牢骚过一次了已经。于是我来尽微薄之力~
我理解的NDK是允许你把程序的一部分代码用C或C++来实现,通过JNI与Java代码交互。不要想整个程序都用C/C++完成,Android是不允许的,你的程序必须运行在Dalvik虚拟机里。
至于是什么任务需要用C/C++,那就不是我要討論的了,比如下面我要演示的这个傻逼程序就真不适合用NDK
安装NDK
你首先要保证自己的Android SDK已经安装完成,然后下载NDK,随便你解压到哪里。下面的$NDK代表你解压后的NDK路径
新建一个Android项目
如果你用Eclipse或者用Netbeans就不用我说了,记得项目名称是fuckGFW。
android create project -n fuckGFW -t 8 -p fuckgfw -k fuck.gfw -a FuckGFW
然后在项目根目录下建立一个jni文件夹,C/C++代码就要放在那里面
JNI简单入门
POSTED AT: 2010-06-23 04:38:52 UTC |
POSTED IN: Python/PHP/Java |
23 COMMENTS
做Android开发,最終还是免不了要用NDK的,我这才真的需要学习下JNI。简单的说,JNI就是让Java代码与native代码(比如C和C++)交互的一种机制。
参照The JNI Programmer's Guide and Specification,很成功的运行了一个小DEMO
首先编辑一个Java文件Prompt.java
public class Prompt { private native String getLine(String prompt); public static void main(String[] args) { Prompt p = new Prompt(); String input = p.getLine("Type a line: "); System.out.println("User typed: " + input); } static { System.loadLibrary("Prompt"); } }
其中native用来声明一个方法,而方法的实现则交给C代码。static代码块用来加载接下来即将生成的libPrompt.so