Welcome 微信登录

首页 / 操作系统 / Linux / 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码)

接着上篇文章(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 上层:
  1. public nativeString transferString(String mStrMSG);  
  2. public nativeObject  transferPerson(Person mPerson); 
Person.java
  1. package com.duicky;  
  2.   
  3. /** 
  4.  *  
  5.  *  
  6.  * @author luxiaofeng <454162034@qq.com> 
  7.  *  
  8.  */  
  9. public class Person {  
  10.   
  11.     private String name;  
  12.     private int age;  
  13.   
  14.     public Person() {  
  15.         name = "";  
  16.         age = 0;  
  17.     }  
  18.   
  19.     public String getName() {  
  20.         return name;  
  21.     }  
  22.   
  23.     public void setName(String name) {  
  24.         this.name = name;  
  25.     }  
  26.   
  27.     public int getAge() {  
  28.         return age;  
  29.     }  
  30.   
  31.     public void setAge(int age) {  
  32.         this.age = age;  
  33.     }  
  34.   
  35.     @Override  
  36.     public String toString() {  
  37.         return "Person [name=" + name + ", age=" + age + "]";  
  38.     }  
  39.   
  40. }  
定义两个native方法, 第一个是 用来 测试传输字符串的的,第二个是用来测试传输自定义对象的。Android.mk 文件
  1. LOCAL_PATH := $(call my-dir)  
  2. include $(CLEAR_VARS)  
  3. LOCAL_C_INCLUDES := $(LOCAL_PATH)/include  
  4. LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog  
  5. LOCAL_MODULE    := NDK_07  
  6. LOCAL_SRC_FILES :=   
  7. TransmissionPerson.c       
  8. TransmissionString.c  
  9. include $(BUILD_SHARED_LIBRARY)