关于Androidbob体育提现bob哪个彩靠谱权威的链接可能会使我们赢得佣金。学到更多。
bob体育提现Android NDK - 您需要知道的一切
什么是Android Nbob体育提现DK?
Andrbob体育提现oid Native Development Kit允许开发人员从设备中获得最大的性能,这可能对Unity或Unreal Engine等游戏引擎有益。由于源代码直接被编译到CPU的机器代码中(而不是与Java一样),因此开发人员能够获得最佳性能。如果您绝对需要使用某些东西,也可以使用其他开发人员的库或您自己的库。
这个怎么运作
您有能力使用“本机”关键字来告诉编译器该实现是本地的。一个例子是
公共本地int数字(int x,int y);
NDK还从本机源代码和本机静态库(.A)构建的本机共享库(.so),这些库可以与其他库链接。应用程序二进制接口(ABI)使用.SO文件确切知道应用程序运行时应用程序的机器代码如何与系统一起使用。NDK默认支持ARMABI以及MIPS和X86。可以找到有关ABI的更多信息这里。
一切都在称为Java本机接口(JNI)的接口下工作,这就是Java和C/C ++组件相互交流的方式。可以找到有关JNI的更多信息这里。
如果要使用NDK构建脚本构建,则需要创建两个文件:android.mk and Application.mk。bob体育提现Andrbob体育提现oid.mk需要进入您的JNI文件夹,并定义模块加上其名称,构建标志(库链接到指向)以及需要编译哪些源文件。application.mk也在JNI目录中。它描述了本地人模块您的应用需要。
如何安装和使用
根据您的操作系统,转到偏好或设置,然后单击“构建工具”> Gradle,然后选择“尚未选择默认的Gradle包装器(建议)”。
从这里并注意版本。打开您的项目,而不是模块的build.gradle并更换classpath'com.abob体育提现ndroid.tools.build:2.1.0'
和classpath'com.abob体育提现ndroid.tools.build:Gradle-实验:版本号'
这将用Android NDK支持代替稳定版的Gradle版本。bob体育提现
转到模块的build.gradle,然后用以下方式替换旧代码:
apply plugin: 'com.bob体育提现android.model.application'model { android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.example.abutt.aandk" minSdkVersion.apiLevel 22 targetSdkVersion.apiLevel 23 versionCode 1 versionName "1.0"} buildTypes {repares {minifyEnabled false proguardfiles.add(file('proguard-anbob体育提现droid.txt')}}}}}}} ndk {modulename“ hello and android-jni”}}}}} //其他下方的行:没有更改
运行该应用程序并确保所有内容都可以正常工作,并且该应用程序的作用像以前一样。在build.gradle中的“ buildTypes”块下方。
ndk {modulename“ hello abob体育提现ndroid-jni”}
在您的应用程序的mainActivity.java中,将其添加到程序的末尾:
//新代码static {system.loadlibrary(“ Hello-Androidbob体育提现-jni”);}公共本机字符串getmsgfromjni();//完成新代码} //类MainActivity
运行程序并确保一切仍在应有的工作状态。接下来是制作c/c ++文件,您应该注意到getMsgfromjni()函数是红色的,将鼠标悬停在功能上,直到红色灯泡弹出为止。单击灯泡,然后单击创建功能的第一个选项。
C/C ++文件将在一个名为“ JNI”的新文件夹下。打开此文件并将其粘贴到文件中:
#include
Java_com_example_abutt_aandk_MainActivity_getMsgFromJni(JNIEnv *env, jobject instance) {// TODO
返回(*env) - > newstringutf(env,“来自jni!这是在C中完成的!”);
}
确保将“ com_example_abutt_aandk”更改为应用程序的名称。该文件由getMsgfromjni()函数读取,以显示“ jni的Hello!这是完成的!”
返回到您的应用程序的主动脉,然后将其添加到ongreate()方法的末尾:
((textView)findViewById(r.id.jni_msgview)).SetText(getmsgfromjni());
而已!您的应用程序应正确运行并使用Android NDK!bob体育提现现在,这不是关于如何使用NDK的现实示例。一个更现实的世界示例将为OpenGL和Vulkan开发,或者使用具有NDK内置的Unity或Unility引擎之类的引擎。
包起来
Andrbob体育提现oid NDK具有一些非常具体的用途,可能不应该在日常开发中使用。但是NDK为发动机创建者提供了一种优化其产品为Android的好方法,在使用更少的资源的同时,可以实现出色的图形功能。bob体育提现使用Android NDK制作简单的应用程序并不难,并且使用某些练习,本机obob体育提现penGL是一种真正的可能性。您是否使用Android NDbob体育提现K进行开发?在下面的评论中让我们知道!