Android studio编写so

前言

我在52破解学习的时候发现《教我兄弟学Android逆向06》第六章的so编写到NDK那一步死活走不下去了,找不到生成文件,然后从网上找了一些资料加自己的汇总写了此篇文章

环境

  • Android studio :4.1.1
  • NDK (Side by side) 23.0.7123448 (ndk;23.0.7123448)
  • CMake 3.18.1 (cmake;3.18.1)

废话少说开始正文

安装NDK和CMake

  1. 找到Android SDK ,选择SDK Tools选项
  2. 在选择下方的NDK和CMake,点击确定

    image.png

准备已经开始,接下来就是磕代码了

创建项目

  1. 创建项目后把右上角的标签转换为项目标签

    image.png
  2. 在main下创建一个新的文件夹:cpp,用于存放C++的代码

    image.png
  3. 在cpp文件下创建一个main.c的文件

    image.png
  4. 还得再cpp下再创建一个CMakeLists.txt

    image.png
  5. 复制CMakeLists.txt的绝对路径

    image.png
  6. 右击cpp文件选择Link C++。。。。

    image.png
  7. 将刚才复制的路径填写进去 project path中

  8. 打开CMakeLists.txt,把这几行代码复制进去

cmake_minimum_required(VERSION 3.4.1)

add_library( 
        # Specifies the name of the library.
        native-lib

        # Sets the library as a shared library.
        SHARED

        # Provides a relative path to your source file(s).
        main.c)

其中,cmake_minimum_required是指cmake的最小版本,add_library中分别声明了库名,静态/动态,编译所需的文件。如果需要编译多个库,那么直接添加多个add_library配置段即可。
完成后点击sync,我的已经点过了所以是不能点的

image.png

编写代码

回到MainActivity中开始写咱们的代码

image.png

回到刚才的main.c

#include <jni.h>

JNIEXPORT jstring JNICALL Java_com_example_myapplication_MainActivity_stringFromJNI(JNIEnv *env, jobject thiz) {
    return (*env)->NewStringUTF(env, "hello");
}

运行搞定

image.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八月欢喜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值