Native 层与 java 之间的 数据传递
MainActivity
package com.a18459.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
String name = "hello";
NdkLib ndkLib;
String string;
TextView tv;
Student student;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//使用NDK
ndkLib = new NdkLib();
//------------------------------从java层获取Native层数据--------------------------------------
//在Native层获得字符串
string = ndkLib.getNativeString();
tv = (TextView) findViewById(R.id.tv);
tv.setText(string);
//在Native层获得一维数组
ndkLib.getArray(5);
//在Native层获得二维数组
ndkLib.getTwoArray(5);
//在Native层获得类对象
student = ndkLib.getStudentFromJNI();
string = "id: "+ student.getId() + "\n" + "name: " + student.getName();
tv.setText(string);
//------------------------------从Native层获取java层数据-------------------------------------
//在Native层操作java层的类中的属性name的值
Log.i("name: ", ndkLib.name);
//在Native层修改了成员变量name的值
ndkLib.Print();
Log.i("name: ", ndkLib.name);
//在Native层操作java层的类中的方法,
ndkLib.doCallBack();
}
}
NdkLib
package com.a18459.myapplication;
import android.util.Log;
/**
* Created by 18459 on 2016/7/1.
*/
public class NdkLib {