Android中使用NDK
2016-04-18 15:00
417 查看
首先用Android Studio下载NDK
这个比较简单,就不多说了
1.写调用jni的Java代码
新建一个JniUtils类
代码会报错,先不管,在后面解决跟方便:)
然后修改MainActivity(主要用于显示结果)
2.修改配置文件
在app对应的build.gradle文件
在defaultConfig下添加NDK的配置,如下
之后在gradle.properties文件的末尾添加
然后点击Sync Now,开始同步
3.写C的代码
同步完成后,就可以处理1中的错误代码了,鼠标点中报错的getString()函数按ALT+ENT键(Windows下的自动提示错误的快捷键)。
选择Create function,就可以创建一个test.C的文件了(值根据你所加载的库的名字所创建的),修改文件如下
现在运行一下程序就ok了
如果有朋友遇到问题,欢迎留言
这个比较简单,就不多说了
1.写调用jni的Java代码
新建一个JniUtils类
public class JniUtils { static { System.loadLibrary("test"); } public native String getString(); }
代码会报错,先不管,在后面解决跟方便:)
然后修改MainActivity(主要用于显示结果)
public class MainActivity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv= (TextView) findViewById(R.id.tv); JniUtils jni=new JniUtils(); tv.setText(jni.getString()); } }
2.修改配置文件
在app对应的build.gradle文件
在defaultConfig下添加NDK的配置,如下
... defaultConfig { applicationId "com.vonnie.ndkexample"//你的包名 minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" ndk { moduleName "test" //生成的so名字 abiFilters "armeabi", "armeabi-v7a", "x86" //输出指定三种abi体系结构下的so库。目前可有可无。 } } ...
之后在gradle.properties文件的末尾添加
android.useDeprecatedNdk=true
然后点击Sync Now,开始同步
3.写C的代码
同步完成后,就可以处理1中的错误代码了,鼠标点中报错的getString()函数按ALT+ENT键(Windows下的自动提示错误的快捷键)。
选择Create function,就可以创建一个test.C的文件了(值根据你所加载的库的名字所创建的),修改文件如下
#include <jni.h> JNIEXPORT jstring JNICALL Java_com_kun_ndkexample_JniUtils_getString(JNIEnv *env, jobject instance) { return (*env)->NewStringUTF(env,"Android Studio NDK JNI developer from test!"); }
现在运行一下程序就ok了
如果有朋友遇到问题,欢迎留言
相关文章推荐
- Android中的Interpolator
- Android中使用NDK
- Android studio 导入github工程
- Android事件传递的理解
- Activity销毁重建数据恢复的两种办法
- 关于Android的nodpi,xhdpi,hdpi,mdpi,ldpi
- Android 编程下设置 Activity 切换动画
- Android 事件拦截机制一种粗鄙的解释
- android px dip sp等的理解
- android中使用surfaceview进行视频播放
- android apk反编译
- Android复习之单例模式
- android studio adb 连不上,解决办法
- Android异常:ServiceConnection 泄露
- 高速Android开发系列通信篇之EventBus
- Android加密算法
- Android开发笔记(八十六)几个特殊的类
- Android情景案例——Activity与Service通讯交互
- 偶然间发现的,大家可以看看
- Android 自定义PopupWindow动画效果