接着上篇文章(http://www.linuxidc.com/Linux/2011-08/41175.htm)继续讲。主要关于引用类型的数据传输,本文将介绍字符串传输和自定义对象的传输。
相关推荐阅读:基于 Android NDK 的学习之旅目录 http://www.linuxidc.com/Linux/2011-08/40813.htm1、主要流程1、 String 字符串传输a) 上层定义一个native的方法,需要一个String 参数,返回一个Stringb) JNI对应上层的方法,打印出上层传输下来的String数据,并返回处理String数据c) 上层 收到 native 方法 返回的 值,在UI中显示出来2、 自定义对象的传输a) 自定义一个对象Personb) 上层定义一个native方法,参数Person,返回值Personc) JNI接收对象,打印出相关信息数据d) JNI 修改Person 对象数据,并返回到上层e) 上层接收到数据后 在UI显示出来2设计实现1、 界面设计如下:老老样子,很搓,嘿嘿代码不在这贴出了,有需要的兄弟直接到文章结束部分下载。2、 关键代码说明Java 上层:
- public nativeString transferString(String mStrMSG);
- public nativeObject transferPerson(Person mPerson);
Person.java
- package com.duicky;
-
- /**
- *
- *
- * @author luxiaofeng <454162034@qq.com>
- *
- */
- public class Person {
-
- private String name;
- private int age;
-
- public Person() {
- name = "";
- age = 0;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- @Override
- public String toString() {
- return "Person [name=" + name + ", age=" + age + "]";
- }
-
- }
定义两个native方法, 第一个是 用来 测试传输字符串的的,第二个是用来测试传输自定义对象的。Android.mk 文件
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
- LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog
- LOCAL_MODULE := NDK_07
- LOCAL_SRC_FILES :=
- TransmissionPerson.c
- TransmissionString.c
- include $(BUILD_SHARED_LIBRARY)