首页 > 其他分享 >安卓SO层开发 -- 第一个NDK项目

安卓SO层开发 -- 第一个NDK项目

时间:2022-12-26 21:05:10浏览次数:41  
标签:NDK java -- 安卓 C++ a2022ndk 字符串 stringFromJNI include


0x01 新建项目

1、选择Native C++

安卓SO层开发 -- 第一个NDK项目_java

2、填写项目名称、项目位置等相关信息

安卓SO层开发 -- 第一个NDK项目_字符串_02

3、选择C++版本信息,默认即可

安卓SO层开发 -- 第一个NDK项目_jvm_03

0x02 项目源码结构介绍

1、编译后生成的so文件名称

static {
System.loadLibrary("a2022ndk");
}

2、声明的so层的函数

public native String stringFromJNI();

3、在Java层调用

tv.setText(stringFromJNI());

4、在C层的代码实现

#include <jni.h>
#include <string>


extern "C" JNIEXPORT jstring JNICALL
Java_com_example_a2022ndk_MainActivity_stringFromJNI(
JNIEnv* env,//与java层交互必须添加这两个参数
jobject /* this */) {
std::string hello = "公众号:编程者吧";//C++中的字符串
return env->NewStringUTF(hello.c_str());//将c++字符串转换成C字符串,然后通过NewStringUTF转换为java层的字符串
}

0x04 运行效果

安卓SO层开发 -- 第一个NDK项目_c++_04

标签:NDK,java,--,安卓,C++,a2022ndk,字符串,stringFromJNI,include
From: https://blog.51cto.com/u_15288375/5970991

相关文章

  • 火山中文编程 -- 数据类型转换
    0x01新建一个MFC控制台程序0x02声明两个变量0x03到文本将数值转为文本型,比如123变为“123”到文本(a)0x04文本到数值将文本内容转换为整数类或者小数文本到整数(b......
  • Python爬虫 -- Selenium库的使用
    0x00Selenium库的作用模拟真实浏览器获取相关数据,比如有些网站检测token等值的时候,可以通过selenium库进行绕过0x01环境搭建1、安装selenium库pip3installselenium2、查......
  • 网络爬虫 -- 验证码识别
    0x00下载安装tesseract1、下载地址http://digi.bib.uni-mannheim.de/tesseract/2、安装成功后,配置环境变量3、检查是否设置成功tesseract-v4、安装tesseract库和pillow库......
  • 爬虫内容保存到txt文件
    0x01源码如下frompyqueryimportPyQueryimportrequestsurl="https://www.dandanzan10.top/dianying/index.html"heads={'user-agent':'Mozilla/5.0(WindowsN......
  • pyquery库和parsel库的使用
    0x01安装pyquery库该库可以直接通过css选择器进行字符串查找pipinstallpyquery0x02初始化操作通过PyQuery初始化字符串frompyqueryimportPyQueryimportrequestsurl......
  • 爬虫学习笔记 -- 实战某电影网(lxml库版)
    0x01安装lxml库文件pip3installlxml0x02初始化字符串1、通过HTML类初始化字符串fromlxmlimportetreeimportrequestsurl="https://www.dandanzan10.top/dianying/i......
  • 爬虫学习笔记 -- requests库基础
    0x01requests库安装1、通过控制台运行下面代码pip3installrequests2、通过Pycharm安装,点击+号,搜索requests,然后点击安装 0x02GET请求1、普通请求importrequestsurl="h......
  • 爬虫学习笔记 -- 正则表达式
    0x01match1、从头开始匹配,只能匹配一次importrestr="1a2b3c456d7e890f"res=re.match('\d+',str)print(res.group())运行结果:12、通用匹配符.*?importrestr="11a2b3c456d7e......
  • 火山中文编程 -- 封装信息框API
     ......
  • OD修改软件
    一、打开软件,查看正常运行的程序二、打开OD,拖入要调试的程序三、分析汇编代码title是"Helloworld",内存地址是0x00403000四、数据窗口跳转到该地址,快捷键ctrl+G五、修改数据......