前言,

在这里用写个NDK的实例。

一,软件环境

WinXP SP3

Android SDK 2.2

Android NDK r5

二,调用方的 APP

非常简单的应用程序,就是简单的调用一下 JNI 的函数。

HelloNDK.java

package net.dncsoft.android.sample;import android.app.Activity;import android.os.Bundle;public class HelloNDK extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        NDKBoundary ndkBoundary = new NDKBoundary();        int i = ndkBoundary.ndk_add(1, 2);        i++;    }}

NDKBoundary.java

package net.dncsoft.android.sample;public class NDKBoundary {    static {        System.loadLibrary("HelloNDKImpl");    }    public native int ndk_add(int a, int b);}

编译生成 .class 文件。直接运行的话肯定出错。呵呵,废话,lib 还没做呢。

三,生成接口定义 H 文件

javah -o d:\HelloNDKImpl.h -classpath d:\WS\HelloNDK\bin net.dncsoft.android.sample.NDKBoundary

三,被调用的 LIB

HelloNDKImpl.cpp

#include <HelloNDKImpl.h>jint Java_net_dncsoft_android_sample_NDKBoundary_ndk_1add(JNIEnv* env,jobject thiz, jint x, jint y) {return x + y;}

Android.mk

LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := HelloNDKImplLOCAL_CFLAGS    := -WerrorLOCAL_SRC_FILES := HelloNDKImpl.cppinclude $(BUILD_SHARED_LIBRARY)

用上一讲的方法能编译成 libHelloNDKImpl.so 文件。

四,运行看看

用下面命令启动模拟器,导入 LIB

cd %AndroidRoot%\toolsstart emulator -avd avdname -partition-size 512adb remountadb -s emulator-5554 push d:\libHelloNDKImpl.so /system/lib

第 2 行命令是防止 Out of Memory 错误。

第 3 行命令是防止 Read-Only 错误。

现在可以运行 APP 啦。

五,Debug环境 (待续)

更多相关文章

  1. Android运行机制
  2. Rexsee API介绍:Android屏幕锁定Keyguard
  3. RN和Android(安卓)通信实操
  4. Android(安卓)IPC 通讯机制源码分析
  5. android关机重启流程代码
  6. Android(安卓)Studio 2.0 Preview发布,附下载地址,支持即时运行和
  7. Android开发秘籍学习笔记(一)
  8. Android架构分析之Android开发环境搭建
  9. 解决 Android(安卓)模拟器 无法上网问题

随机推荐

  1. Android自定义权限的使用
  2. Android Schema的妙用
  3. ANDROID – TOOLBAR STEP BY STEP
  4. Android聊天室(服务器)
  5. android:viewpager实现图片循环滑动+索引
  6. Android Studio App设置线性布局LinerLay
  7. 一些关于 Activity 的技巧
  8. [置顶] Android实现数据存储技术集锦
  9. One省电卫士 - Android内核级省电App
  10. 第一章 Android系统介绍