摘要: Android NDK从r5b版本开始有官方支持的STL了,有一个crystax版本早已经支持。官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种: system --> 系统默认的最小支持的C++运行时库 stlport_static --> 以静态链接的方式使用stlport版本的STL stlport_shared --> 以动态链接的方式使用stlport版本的STL gn 阅读全文
posted @ 2012-12-14 02:01 古老的陶罐 阅读(7002) 评论(0) 推荐(0) 编辑
摘要: 前面写的makefile比较简单,主要是要测试的代码结构比较简单。这次,源文件、头文件不在同一个文件夹下了,那又该如何写makefile呢?首先,我的代码目录结构如下:1、在jni主目录首先有一个MK文件,内容如下:MY_LOCAL_PATH :=$(call my-dir)LOCAL_PATH :=$(MY_LOCAL_PATH)include $(call all-subdir-makefiles)2、src1目录下是一个test.c的源文件、Android.mk,其中,Android.mk内容如下:#Android.mk和需要编译的源文件在同一目录下#LOCAL_PATH := $(ca 阅读全文
posted @ 2012-12-14 01:59 古老的陶罐 阅读(1519) 评论(0) 推荐(0) 编辑
摘要: 贴代码:test.hint adds(int a,int b);int subs(int a,int b);test.c#include "test.h"int adds(int a,int b){ return (a-b);}int subs(int a,int b){ return (a+b);}com_ycan_ycantestlib.h/* DO NOT EDIT THIS FILE - it is machine generated */#include <jni.h>/* Header for class com_ycan_ycantestlib * 阅读全文
posted @ 2012-12-14 01:54 古老的陶罐 阅读(762) 评论(0) 推荐(0) 编辑
摘要: 注意该.so库指的是android平台的,非一般linux、unix平台;1、现有库libcom_ycan_testLib.so2、新建android项目TestLib23、添加新类:类名:testLib包路径:参考现有库名,应为com.ycan4、在新类中声明库的本地方法,如下:package com.ycan;public class PDFLib { public native int add (int a, int b); public native int sub (int a, int b);}这些接口函数,应该由库的提供者告诉你吧,我目前是这样认为的。5、然后把库文件... 阅读全文
posted @ 2012-12-14 01:46 古老的陶罐 阅读(4912) 评论(2) 推荐(0) 编辑
摘要: 直接贴代码了:package com.YCan.testjni;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Ac 阅读全文
posted @ 2012-12-14 01:42 古老的陶罐 阅读(2309) 评论(0) 推荐(0) 编辑
摘要: 简单的示例:makefile文件:LOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:=test-jniLOCAL_SRC_FILES := test-jni.cinclude $(BUILD_SHARED_LIBRARY)如果有多个文件,可能有所不同吧,尚未尝试。头文件:最好使用javah命令来生成,可见我的上一篇文章;源文件:根据头文件,完善源码。第二步:将jni文件夹拷贝到Android项目目录下第三步:运行cygwin,使用CD命令,切换目录到Android项目目录第四步:输入命令$NDK/ndk-build,屏幕显示 阅读全文
posted @ 2012-12-14 01:39 古老的陶罐 阅读(3851) 评论(0) 推荐(0) 编辑
摘要: 第一步:在Eclipse中创建android项目,并声明Native接口:public native int add (int a, int b);public native int sub (int a, int b);编译、运行;这样在bin目录下就会生成类文件;第二步:打开命令行cmd,到达bin目录:F:\fww\workspace\TestJNI\bin>输入如下命令:F:\fww\workspace\TestJNI\bin>javah -d header -classpath classes -jni com.YCan.testjni.MainActivityjava的 阅读全文
posted @ 2012-12-14 01:37 古老的陶罐 阅读(9961) 评论(0) 推荐(1) 编辑
摘要: 一、配置好Android开发环境 此处不再赘述。 2013年6月7日: 现在android SDK的版本已经到了4.2了,几乎不用配置,下载下来解压,SDK跟Android开发专用Eclipse都有了。喜欢。二、下载安装安卓NDK 下载最新版,解压即可。 2013年6月7日: 目前版本已经到了r8e.三、下载安装cygwin 由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境,cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。通过它,你就可以... 阅读全文
posted @ 2012-12-14 01:32 古老的陶罐 阅读(1656) 评论(0) 推荐(1) 编辑
摘要: 一、What is the NDK?The Android NDK is a toolset that lets you embed components that make use of native code in your Android applications.Android applications run in the Dalvik virtual machine. The NDK allows you to implement parts of your applications using native-code languages such as C and C++. Th 阅读全文
posted @ 2012-12-14 01:18 古老的陶罐 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 第一步:新建一个MFC的activex工程,工程名为TestATX;第二步:添加一个新类,取名为CMainFrame,以CFrameWnd为基类;第三步:在CTestATXtCtrl中添加成员变量:CMainFrame* m_pMainFrame;在构造函数中添加如下代码:CTestATXCtrl:... 阅读全文
posted @ 2011-06-09 09:13 古老的陶罐 阅读(311) 评论(0) 推荐(0) 编辑