首先是习惯了IDE界面,在gdb命令下真的不方便。gdb调试这前是用ndk-build编译。.so。用ndk-build编译编译时,在JNI的调用用中比如 public native String stringFromJNI(); 这个函数在代码编辑中会显示找不到的错误。 build就是了,不要管它。ndk-build和AS的容合没有CMAKE做的好。要写代码的自已保证名字参数的一致性,如非必要还是用CMAKE好。
1,准备工作,要做好。ndk-gdb-py或者ndk-gdb,是停在libc这个库的入口和出口处的。如果你的代码不能,在这之后由人品输入调用的话,是永远不会进入到你自已的lib代码中的。所以对lib的调用写成由用户接口调用吧。只少调试时要这样调用。因为都gdb是命令,就是命令输入键码去调用自已lib的中函数吧。
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
desc = String.format("%s输入的软按键编码是%d,动作是按下", desc, keyCode);
if (keyCode == KeyEvent.KEYCODE_A) {
desc=stringFromJNI();
}
TextView tv = (TextView) findViewById(R.id.sample_text);
tv.setText(stringFromJNI());
Log.d(TAG, desc);
return true;
} else {
//返回true表示处理完了不再输入该字符,返回false表示给你输入该字符