7.运行Run
调用jni的函数
- package com.lilei.testjni;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Log.i("Jni", JniUtils.getJniString());
- }
- }

三、生成so文件
前文介绍若何运行C++法度榜样,然则实际开辟中大年夜多是封装编译出so文件落后行开辟,就类似java琅绫擎的jar包
1.设备NDK情况变量
2.新建mk文件
创建一个Jni的对象类,并定义接口函数,函数关键字用native(static用不消均可)
- LOCAL_PATH := $(call my-dir)
- include $(CLEAR_VARS)
- LOCAL_MODULE := JNISample
- LOCAL_SRC_FILES := com_lilei_testjni_JniUtils.cpp
- include $(BUILD_SHARED_LIBRARY)
在jni目次下新建Application.mk文件
- APP_STL := gnustl_static
- APP_CPPFLAGS := -frtti -fexceptions -std=c++0x
- APP_ABI := armeabi-v7a
- APP_PLATFORM := android-18
3.编译生成so
打开终端cd到jni目次下
调用ndk-build开端编译so
在jni目次下新建Android.mk
- ndk-build
运行无误的话会如图所示

运行成功之后即会看到main文件夹下多了libs和obj的文件夹,琅绫擎就是生成的各类CPU的so文件
libs和obj琅绫擎都有so文件,两者的差别google给出的解释是: As part of the build process, the files in the libs folder have been stripped of symbols and debugging information. So you'll want to keep two copies of each of your .so files: One from the libs folder to install on the Android device, and one from the obj folder to install for GDB to get symbols from. 也就是说,libs目次下生成的库是剥离了符号表与调试信息的,而obj下的库是带有调试信息的。
至此jni的开辟入门已完成
【编辑推荐】
- Android Studio + smalidea进行smail动态调试
- Android Studio生成签名文件,主动签名,以及获取SHA1和MD5值
- Android Studio小技能
- Android Studio你不知道的调试技能
- Android Studio模板之文件组
推荐阅读
OpenAI"巧妙"发现无监督情感神经元,可利用文本检测用户情感
4月7日消息,OpenAI在官网颁布了一项最新的研究结不雅,介绍了一个可以高效进修情感表征的无监督体系,今朝可以或许猜测亚马逊评论中的下一?字符。研究人员采取了线性模型,在一个小型然>>>详细阅读
本文标题:Android Studio jni开发入门——看我就够了!
地址:http://www.17bianji.com/lsqh/34695.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示