博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【原】unity3D 调用android .so
阅读量:6676 次
发布时间:2019-06-25

本文共 1503 字,大约阅读时间需要 5 分钟。

首先明白.so分为两种,一种是linux下的.so,一种是NDK下的.so;本文主要讲解加载后一种.so

先来了解如何生成.so;

1、建立jni文件夹,创建android.mk和main.cpp文件

.mk内容如下:

LOCAL_PATH := $(call my-dir)

# compile VitClient.so
include $(CLEAR_VARS)   
LOCAL_MODULE    := libgame   //.so名称
LOCAL_SRC_FILES := main.cpp //需要直接的.cpp/.c文件
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include
include $(BUILD_SHARED_LIBRARY)
#include $(BUILD_STATIC_LIBRARY)

.cpp 文件内容:

extern "C"
{
    int AddNum(int a,int b)
    {
        return a+b;
    }
}

2、在jni同级目录创建build_native.sh脚本

内容如下:

# set params

NDK_ROOT_LOCAL=/Users/wuwuyuan/Desktop/android-sdk-macosx/android-ndk-r7b   //ndk 路径 设置成自己的
# build
# NDK 编译参数
# V=1    显示编译详细信息
# -B    强制重新编译
$NDK_ROOT_LOCAL/ndk-build

3、mac下命令行   执行 sh build_native.sh   结果如图:

4、在unity中穿件android工程,新建Plugins/Android   将libgame.so 放在之下

5、编辑C# 脚本:

using System.Runtime.InteropServices;

public class PluginImport : MonoBehaviour {
    [DllImport ("game")]  //省略掉lib前缀和.so 后缀
    private static extern int AddNum(int a,int b);
   
    void Start () {
        Debug.Log("wwwwwww:"+AddNum(1,1));
    }
}

6、在android设备上可以看到打印出 wwwwwww:2

备注:必须在android真机或模拟器上能看到效果,在pc或mac上会报异常

 补充:如何在mac下用NDK编.so

    cd 到当前eclipse工程根目录,在根目录执行../android-ndk-r7b/ndk-build

编译过程:Compile++ arm    : shadowmapping <= BaseGLSLProgram.cpp

Compile++ arm    : shadowmapping <= bitmap.cpp
Compile++ arm    : shadowmapping <= button.cpp
Compile++ arm    : shadowmapping <= main.cpp
Compile thumb  : android_native_app_glue <= android_native_app_glue.c
StaticLibrary  : libandroid_native_app_glue.a
Prebuilt       : libgnustl_static.a <= <NDK>/sources/cxx-stl/gnu-libstdc++/libs/armeabi/

 

 

转载地址:http://jvrxo.baihongyu.com/

你可能感兴趣的文章
亚信安全与成都市政府达成战略合作
查看>>
SSH::Batch,在公有云中使用 ssh 工具箱
查看>>
“外围”消亡 企业安全防护需要新形态
查看>>
红杉计越:AI、大数据、SaaS、云计算为何在中国一体迸发?
查看>>
阿里张勇:数据驱动的透明是平台治理的基础
查看>>
ActiveMQ - JMS,Transport,Persistence
查看>>
互联网大数据支撑生态银行建设
查看>>
视频会议系统迎来第四次浪潮
查看>>
报告显示:被调研中国企业超85%已从数字转型中获得回报
查看>>
东方日升拉美光伏电站项目 将进入首期施工
查看>>
软件探索性测试 笔记二
查看>>
将来也不会被破译的分布式存储系统
查看>>
光伏电站或成辅助服务市场“输家”
查看>>
今年光伏“领跑者”计划将升级扩围
查看>>
Java程序运行超时后退出或进行其他操作的实现
查看>>
手把手教你启用RemoteFX以及Hyper-V GPU卸载
查看>>
《交互式程序设计 第2版》一3.10 更进一步
查看>>
英伟达发布Tesla P4&P40两款基于Pascal架构的深度学习芯片
查看>>
《ANSYS Workbench有限元分析实例详解(静力学)》——2.5 Windows界面相应操作
查看>>
《代码整洁之道:程序员的职业素养》一一1.3 首先,不行损害之事
查看>>