★★★★★★Android端★★★★★★★★★
以下为本程序的主界面:
Main.xml界面和代码
<TextViewandroid:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/><EditTextandroid:text="" android:id="@+id/EditTextName" android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText><Button android:text="把上面的字符串发送到C++" android:id="@+id/ButtonSend" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
===========Android调用C++===============
这个Android程序只有一个继承于Activity的类mainWnd:
首先要mainWnd成员里声明要在Android调用的C++函数;
public native voidsetName(String _strName);native是修饰符必须的
接着在mainWnd的onCreate函数加入按钮响应
///////////按钮响应函数//////////////
Button btnSend = (Button)findViewById(R.id.ButtonSend); btnSend.setOnClickListener(new OnClickListener() { @Override public void onClick(View _view) { EditText etName = (EditText)findViewById(R.id.EditTextName); //调用C++方法 setName(etName.getText().toString()); } });
找到JDK目录/bin/javah,生成mainWnd.class的头文件。
我的javah所在目录:C:\ProgramFiles\Java\jdk1.6.0_23\bin
我的bin文件所在目录:C:\Users\Crinson\Android_ And_C\bin
我的包名字:Crinson.Blog.mainWnd
生成命令的格式如下:C:\ProgramFiles\Java\jdk1.6.0_23\bin>javah -classpathC:\Users\Crinson\Android_And_C\bin -jni Crinson.Blog.mainWnd
接着会在C:\Program Files\Java\jdk1.6.0_23\bin目录生成Crinson_Blog_mainWnd.h文件。
如果这步生成失败,请注意一点,你的包所在的目录要和你的包名相同,
例如我的Crinson.Blog.mainWnd就要在C:\Users\Crinson\Android_And_C\bin\Crinson\Blog\目录下。
★★★★★C++端★★★★★
在Android工程里新建jni文件夹存放c++代码。
在jni 目录里新建文件夹Android_to_C,
把Crinson_Blog_mainWnd.h放在该目录下。
Crinson_Blog_mainWnd.h的内容如下:
/* DO NOT EDIT THISFILE - it is machine generated */#include <jni.h>/* Header for classCrinson_Bl
【责编:网学网 上传论文】