在Android JNI环境下使用C++ Lambda表达式等(附apk包供测试)

本文展示了如何在Android JNI环境下使用C++ Lambda表达式,并提供了测试用的apk包。文章首先提及需要第三方NDK(gcc-4.6.3)以支持更高版本的gcc,然后介绍了例子的来源——一个StackOverflow的讨论。主要代码片段和apk包链接供读者进行测试。
摘要由CSDN通过智能技术生成

前提:

需要使用支持更高gcc版本的第三方NDK包。Android默认版本为:4.4.3。

第三方NDK包下载(gcc-4.6.3):http://www.crystax.net/en/android/ndk/7

具体使用注意事项请参考此文。

本测试主要展示以下内容:

1、使用std::function和std::bind实现sigslot机制;
2、使用C++11的Lambda表达式
3、在C++代码中回调Java对象的方法

例子来源:

本测试例子来自网上的一个讨论里的回复,由于看到有lambda表达式,就有了在iOS及Android环境下测试的念头。

http://stackoverflow.com/questions/12516239/a-simple-signal-for-a-button-in-c

主要代码片段:

定义回调类型
typedef std::function<void(const char *)> callback_t;
定义一个全局回调函数指针,以方便GenericButton类内调用,初始化见下面的代码。
callback_t jni_callback;

导出
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值