Android-使用Android studio 进行NDK-JNI开发实例(一)
来源:互联网 发布:linux 内核源码修改 编辑:程序博客网 时间:2024/06/15 11:02
前言
使用Android studio 进行NDK-JNI开发,在界面上显示Hello NDK-JNI
步骤:
1. 创建工程
2. 配置NDK 路径
local.properties 文件中加入 ndk路径ndk.dir=E\:\\Android-NDK\\android-ndk-r10e(NDK所在文件路径)
3. 在gradle.properties 文件里面添加 android.useDeprecatedNdk=true
4. 修改build.gradle配置
工程中共有两个build.gradle配置文件,我们要修改的是在\app\build.gradle这个文件。
defaultConfig里面写入
ndk{ moduleName "hellojni"//生成的so名字 abiFilters "armeabi", "armeabi-v7a", "x86"//输出指定三种abi体系结构下的so库。 }
5. 在java代码中写入代码:包括 本地方法和加载so类库(so类库名字)
6. 打开 View-->Tool Windows-->Terminal (或者点击左下角Terminal)
7. 在打开的Terminal中输入命令
进入项目名-->app-->src-->main目录下创建文件夹
命令--->cd app/src/main 回车
命令--->mkdir jni 回车
进入项目名-->app-->src-->main-->java目录下输入
命令--->cd java 回车
命令--->javah -jni 包名.类名 ( .h生成头文件)
8. 在jni文件夹下创建.c文件
9. 在刚创建的c文件中写入代码
10. 编译运行查看结果:
注:生成的so类库位置如下:
布局代码:
activity_main.xml
MainActivity.java
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <TextView android:id="@+id/tv" android:textSize="50sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_centerHorizontal="true" /></RelativeLayout>
MainActivity.java
package com.example.yu_longji.android22;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends Activity { static { //加载打包的so类库 System.loadLibrary("hellojni"); } //定义本地方法,方法体由c语言实现 public native String getStringNative(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv = (TextView)findViewById(R.id.tv); tv.setText(getStringNative()); }}
2 1
- Android-使用Android studio 进行NDK-JNI开发实例(一)
- Android 使用Android Studio进行NDK-JNI开发
- Android Studio中JNI NDK开发(一)
- Android studio 使用ndk开发JNI
- Android studio 初步使用JNI(一)配置NDK
- 使用Android Studio开发ndk-Jni(入门)
- Android Studio JNI NDK编程(一)
- Android studio JNI(NDK) 开发
- Android Studio NDK jni 开发
- Android Studio ndk-Jni开发
- Android Studio NDK/JNI开发
- Android Studio ndk-Jni开发
- Android Studio开发NDK JNI
- android studio 配置NDK环境进行JNI开发
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
- Android NDK开发之旅(2):一篇文章搞定Android Studio中使用CMake进行NDK/JNI开发
- 使用Android Studio进行NDK开发
- 使用Android Studio进行NDK开发
- NYOJ 29 求转置矩阵问题
- AAtitit.随时间变色特效 ---包厢管理系统的规划titit.随
- NYOJ 31 5个数求最值
- 深度学习:Java 自动装箱和拆箱(好文)
- Xcode Command /usr/bin/codesign failed with exit code 1
- Android-使用Android studio 进行NDK-JNI开发实例(一)
- Atitit.故障排除系列---NoClassDefFoundError NoClassDefFoundError ClassNotFoundException
- 文章标题
- c++ 编译链接 相关【 原创 + 转载】
- 暑假第6周工作周报
- 集合操作
- 如何实现自己的输入流
- Spiral Matrix(**)
- 机房收费系统之组合查询——窗体的继承