Android Studio Chipmunk | 2021.2.1 JNI

Android studio版本

 

新建Native C++项目

取名为JniDemo

 

 

C++ Standard 选择Default

 

 

修改app/buidl.gradle文件,选择仅支持arm64-v8a架构

 

新建JNI Folder

 

 

 点击finish

 

查看app/build.gradle自动生成sourceSets/main/jni/srcDirs这个节点

 

使用NDK编译库,模拟为第三方库,目录结构

sice@T:~/AndroidStudioProjects$ tree libhello/
libhello/
├── hello.c
└── hello.h
 

hello.c的内容

 

sice@T:~/AndroidStudioProjects$ cat libhello/hello.c
#include <hello.h>


int do_inc(void)
{
        static int i = 0;
        return i++;
}
 

hello.h的内容

 

sice@T:~/AndroidStudioProjects$ cat libhello/hello.h
#ifndef __HELLO__
#define __HELLO__

#ifdef __cplusplus
extern "C" {
#endif /* _cplusplus */
int do_inc(void);
#ifdef __cplusplus
};
#endif /* _cplusplus */

#endif
 

编译libhello.a库文件

aarch64-linux-android30-clang  -c -I. hello.c

aarch64-linux-android-ar -rcs libhello.a hello.o

效果

 sice@T:~/AndroidStudioProjects/libhello$ tree .
.
├── hello.c
├── hello.h
├── hello.o
└── libhello.a

拷贝hello.h和libhello.a到 app/src/main/jni目录后,右键jni选择Reload from Disk

 

引入libhello.a和hello.h效果

 

 

 修改app/src/main/cpp/native-lib.cpp调用libhello.a库的do_inc函数

 

 修改app/src/main/cpp/CMakeLists.txt引入libhello.a参与编译

 

修改app/src/main/java/MainActivity.java

 

 

编译结果

 

 

编译运行JniDemo效果

 <完>

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值