Android Studio Jni 环境搭建
2016-05-13 15:21
495 查看
第一步:NDK环境搭建,点击下图红色框区域查看NDK下载和环境配置
第二步:新建测试JNI示例HelloJni显示C文件里面的字符串
然后cleanproject再rebuildproject生成class文件,
这时候打开如下图的文件夹看是否生成了classes文件夹,没有生成请重新来过。
头文件生成
再打开Terminal输入指令进入debug文件夹下cdapp/build/intermediates/classes/debug然后再输入指令生成头文件,这里javah-jni后面跟的是NdkJniUtils类的全路径
javah-jnicom.boyoi.ysj.hello.jni.NdkJniUtils[/code]
如果没有报错就说明生成头文件成功,如果报错请检查环境是否配置错误。这时候打开classes/debug下面的文件发现多了一个文件com_boyoi_ysj_hello_jni_NdkJniUtils.h然后在src/main下新建文件夹jni,把生成的.h文件复制或者剪切到jni文件夹下面去,新建一个c类随便取一个名字,添加代码如下
配置文件
(1)在gradle.properties文件末尾添加android.useDeprecatedNdk=true(2)在app文件下得build.gradle->defaultConfig括号内添加如下代码
ndk{
moduleName"NdkJniDemo"//生成的so名字
abiFilters"armeabi","armeabi-v7a","x86"//输出指定三种abi体系结构下的so库,目前可有可无。
}
static{
System.loadLibrary("HelloJNI");//之前在build.gradle里面设置的so名字,必须一致
}
测试是否成功
在activity_main:
<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/test"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="HelloWorld!"/></RelativeLayout>
在MainActivity:
publicclassMainActivityextendsAppCompatActivity{privateTextViewmTextView;NdkJniUtilsjni=newNdkJniUtils();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTextView=(TextView)this.findViewById(R.id.test);NdkJniUtilsjni=newNdkJniUtils();mTextView.setText(jni.hello());}
运行结果:
相关文章推荐
- android 开发之 fragment与activity 创建菜单的区别
- android-小细节
- Android属性动画完全解析(上),初识属性动画的基本用法
- Android Widget 中ListView加载网络图片
- Android Binder
- 论Android应用进程长存的可行性
- 浅析Margin和Padding属性
- 最详细的 Android Toolbar 开发实践总结
- Android下event事件深度解析
- Android下面打印进程函数调用堆栈(dump backtrace)的方法
- Android:屏幕旋转时,禁止Activity重新加载
- Android屏幕切换,改变布局,不调用onCreate方法
- Android中的高级绘图操作
- Android Activity中Intent的一些见解
- android开发 程序去掉标题栏按菜单键程序崩溃
- Android Studio 图片报错问题
- Android Studio在NDK开发的时候,无法生成so文件
- android 5.1.1开机优化(framework层)
- Android调用堆栈跟踪
- Android开发同学请注意啦,Android Studio2.1.1版本发布更新, 解决重大安全问题.