Android NDK入门

还是觉得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++代码就要放在那里面

READ MORE>>

JNI简单入门

做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

READ MORE>>