1 Star 0 Fork 13

胖子的梦/ani_cookbook

forked from Xingwa/ani_cookbook 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
promise_test.cpp 1.96 KB
一键复制 编辑 原始数据 按行查看 历史
Xingwa 提交于 2025-02-15 23:47 +08:00 . 增加want参数
#include <ani.h>
#include <array>
#include <iostream>
#include <unistd.h>
static int execute(ani_env *env, ani_object obj, ani_object want)
{
std::cout << "Print in execute in thread" << gettid() <<std::endl;
//当前不支持 Object_GetField_Int
// ani_class cls;
// const char *className = "Lpromise_test/Want;";
// if(ANI_OK != env->FindClass(className, &cls)) {
// std::cerr << "Not found '" << className << "'" << std::endl;
// return -1;
// }
// ani_field valueField;
// if(ANI_OK != env->Class_GetField(cls, "value", &valueField) ) {
// std::cerr << "Get Field Fail" << "'" << std::endl;
// return -1;
// }
// ani_int value;
// if(ANI_OK != env->Object_GetField_Int(want, valueField, &value)){
// std::cerr << "Object_GetField_Int Fail" << std::endl;
// return -1;
// }
//std::cout << "Print in execute want value is " << value <<std::endl;
return 5;
}
static int mygettid(ani_env *env, ani_object obj){
return gettid();
}
ANI_EXPORT ani_status ANI_Constructor(ani_vm *vm, uint32_t *result)
{
ani_env *env;
if (ANI_OK != vm->GetEnv(ANI_VERSION_1, &env)) {
std::cerr << "Unsupported ANI_VERSION_1" << std::endl;
return ANI_ERROR;
}
static const char *className = "Lpromise_test/Ability;";
ani_class cls;
if (ANI_OK != env->FindClass(className, &cls)) {
std::cerr << "Not found '" << className << "'" << std::endl;
return ANI_ERROR;
}
std::array methods = {
ani_native_function {"execute", "Lpromise_test/Want;:I", reinterpret_cast<void *>(execute)},
ani_native_function {"gettid", ":I", reinterpret_cast<void *>(mygettid)},
};
if (ANI_OK != env->Class_BindNativeMethods(cls, methods.data(), methods.size())) {
std::cerr << "Cannot bind native methods to '" << className << "'" << std::endl;
return ANI_ERROR;
};
*result = ANI_VERSION_1;
return ANI_OK;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/pangzidemeng/ani_cookbook.git
git@gitee.com:pangzidemeng/ani_cookbook.git
pangzidemeng
ani_cookbook
ani_cookbook
master

搜索帮助