递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 65|回复: 1
打印 上一主题 下一主题

[安卓] 怎么调用自己编写的so函数

[复制链接]

4

主题

26

帖子

96

积分

注册会员

Rank: 2

积分
96
跳转到指定楼层
楼主
发表于 昨天 16:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在老机器上用工具ndkr21e r命令行的方式编译so文件libtest.so
请问我在火山移动怎么调用

// test.cpp
#include <cmath>
#include <cstring>

// 告诉编译器:这些函数使用 C 链接方式(避免 C++ 名称修饰)
extern "C" {

// 1. 整数相加
int add(int a, int b) {
    return a + b;
}

// 2. 计算圆的面积(输入半径)
float circle_area(float radius) {
    return 3.1415926535f * radius * radius;
}

// 3. 判断是否为素数
int is_prime(int n) {
    if (n < 2) return 0;
    for (int i = 2; i * i <= n; ++i) {
        if (n % i == 0) return 0;
    }
    return 1;
}

// 4. 字符串反转(注意:修改传入的字符串)
void reverse_string(char* str) {
    if (!str) return;
    int len = strlen(str);
    for (int i = 0; i < len / 2; ++i) {
        char temp = str[i];
        str[i] = str[len - 1 - i];
        str[len - 1 - i] = temp;
    }
}

// 5. 计算斐波那契数列第 n 项(非递归,高效)
long long fib(int n) {
    if (n <= 1) return n;
    long long a = 0, b = 1, c;
    for (int i = 2; i <= n; ++i) {
        c = a + b;
        a = b;
        b = c;
    }
    return b;
}

} // extern "C"


回复

使用道具 举报

467

主题

2万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
46846
沙发
发表于 昨天 18:27 | 只看该作者
https://bbs.voldp.com/thread-2213-1-1.html  这里有个简单的例子。要知道so库里面的包名,知道后就能封了。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-12-12 09:11 , Processed in 0.085038 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表