动态手机网站,网站介绍页面,wordpress怎么获取在线ip,青岛君哲网站建设公司由于工作内容的关系#xff0c;对于NDK的工作涉及比较广#xff08;保密性#xff0c;安全性#xff09;#xff0c;所以本章内容讲述一下NDK的基本使用过程。 网上也有很多这样的教程或者描述#xff0c;但描述的并不完全 开发工具#xff1a;Android Studio 2.1.2 ND…由于工作内容的关系对于NDK的工作涉及比较广保密性安全性所以本章内容讲述一下NDK的基本使用过程。 网上也有很多这样的教程或者描述但描述的并不完全 开发工具Android Studio 2.1.2 NDK版本android-ndk-r10e,支持64位so库的编译 JDK版本1.8 64位 使用步骤如下 第一步NDK环境的搭建 ①jdkAndroid SDK这些准备充分只要能正常使用Android Studio的这一条基本不用考虑 ②下载NDK,可以通过Android Studio的SDK Manager下载也可以通过这个链接下载下载地址至于版本的话根据自己电脑系统自行选择最新版本 如果访问不了需要使用FQ的话可以下载天行VPN有试用版一天一个小时关键是不要钱还能FQFQ工具下载链接VPN工具下载 第二步新建一个Project,完成NDK的配置 ①在工程的local.properties里面添加NDK的路径代码 ndk.dirC\:\\android-ndk-r10e ②在gradle.properties里面声明使用NDK的代码 android.useDeprecatedNdktrue ③在app的build.gradle里面添加NDK的编译信息包括生成的so库名字以及编译出来的各种平台版本 apply plugin: com.android.applicationandroid {compileSdkVersion 23buildToolsVersion 24.0.0defaultConfig {applicationId edan.com.as_ndk_demominSdkVersion 11targetSdkVersion 23versionCode 1versionName 1.0ndk{moduleName MyTestJniLib //生成的.so的名字abiFilters armeabi,armeabi-v7a,x86}}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro}}sourceSets {main {jniLibs.srcDirs [libs]}}}dependencies {compile fileTree(dir: libs, include: [*.jar])testCompile junit:junit:4.12compile com.android.support:appcompat-v7:23.4.0
} 第三步编辑native方法生成.h头文件 ①编辑native方法 View Code ②点击Build--Make Project,生成class文件 ③找到class文件在app-build-intermediates-classes-debug目录下 ④通过javah命令生成.h头文件点击Android Studio底下菜单中的Terminal 依次敲入 cd app\build\intermediates\classes\debug javah -jni edan.com.as_ndk_demo.ndktest.NdkJniUtils 使用javah的时候具体的包名按照实际情况来书写 没有什么错误的话可以在debug目录下看到.h的头文件 /* DO NOT EDIT THIS FILE - it is machine generated */
#include jni.h
/* Header for class edan_com_as_ndk_demo_ndktest_NdkJniUtils */#ifndef _Included_edan_com_as_ndk_demo_ndktest_NdkJniUtils
#define _Included_edan_com_as_ndk_demo_ndktest_NdkJniUtils
#ifdef __cplusplus
extern C {
#endif
/** Class: edan_com_as_ndk_demo_ndktest_NdkJniUtils* Method: getCLanguageString* Signature: ()Ljava/lang/String;*/
JNIEXPORT jstring JNICALL Java_edan_com_as_1ndk_1demo_ndktest_NdkJniUtils_getCLanguageString(JNIEnv *, jobject);#ifdef __cplusplus
}
#endif
#endif 第四步根据生成.h头文件以及新建的.c或者.cpp文件生成.so库文件 ①在app-src-main目录下新建一个jni文件夹用来存c/c的头文件以及源文件将刚刚生成.h头文件剪切到这里来然后新建一个.c或者.cpp文件 #include edan_com_as_ndk_demo_ndktest_NdkJniUtils.h
/** Class: com_example_edu_ndktest_NdkJniUtils* Method: getCLanguageString* Signature: ()Ljava/lang/String;*/
JNIEXPORT jstring JNICALL Java_edan_com_as_1ndk_1demo_ndktest_NdkJniUtils_getCLanguageString(JNIEnv *env, jobject obj){return (*env)-NewStringUTF(env,My name is Ouyangshengduo,Hi!);} ②点击Build-Make Project进行编译生成.so库文件路径app-build-intermediates-ndk-debug-lib下 ③拷贝lib下的这些文件夹到app-libs下 第五步通过MainActivity的TextView显示C里面的内容 package edan.com.as_ndk_demo;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;import edan.com.as_ndk_demo.ndktest.NdkJniUtils;public class MainActivity extends AppCompatActivity {private TextView mTextView;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mTextView (TextView) findViewById(R.id.text);NdkJniUtils ndk_util new NdkJniUtils();mTextView.setText(ndk_util.getCLanguageString());}
} 至此Android Studio 的NDK的基础篇讲述完了期间遇到任何问题或者错误将错误信息copy去google,基本都能解决当然也可以留言知道的必将言无不尽。 项目源码下载地址源码下载转载于:https://www.cnblogs.com/fnlingnzb-learner/p/7207468.html