当前位置: 首页 > news >正文

西部数码网站建设成都住建局官网e蓉

西部数码网站建设,成都住建局官网e蓉,地方文明网站建设,成都大邑网站建设前提条件: 本地已经配置好了ndk环境,如果没有配置好,建议参考macos 配置ndk环境-CSDN博客 这篇链接。 新建一个Empty Project 比如我这里的Project的名字是HelloJNI,包名是com.example.hellojni 然后在src目录下,右键选择Add C …

前提条件:

  • 本地已经配置好了ndk环境,如果没有配置好,建议参考macos 配置ndk环境-CSDN博客 这篇链接。

新建一个Empty Project

比如我这里的Project的名字是HelloJNI,包名是com.example.hellojni

然后在src目录下,右键选择Add C++ to Module

然后展示的目录如下所示:

在activity_main.xml里给TextView组件添加一个id,整体代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/text_view"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"app:layout_constraintBottom_toBottomOf="parent"app:layout_constraintLeft_toLeftOf="parent"app:layout_constraintRight_toRightOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

然后在MainActivity.java里添加调用cpp层的代码,调用cpp的库

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

写一个native方法

public native String stringFromJNI();

MainActivity.java代码整体如下:

package com.example.hellojni;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.TextView;public class MainActivity extends AppCompatActivity {static {System.loadLibrary("hellojni");}public native String stringFromJNI();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);TextView textView = findViewById(R.id.text_view);textView.setText(stringFromJNI());}
}

然后需要在jnidemo.cpp里写stringFromJNI的实现方法

#include <jni.h>
#include <string>
extern "C"
JNIEXPORT jstring  JNICALL
Java_com_example_hellojni_MainActivity_stringFromJNI(JNIEnv* env,jobject) {std::string hello = "Hello From C++";return env->NewStringUTF(hello.c_str());
}

其中cpp层这个方法的命名是Java_包名_类名_方法名

  • 包名 com.example.hellojni
  • 类名 MainActivity
  • 方法名 stringFromJNI

第八行是一个string对象,内容是“Hello From C++”,然后第九行是返回一个jni的string对象

这里的返回值就是给到了Java层的stringFromJNI的返回值。

最后MainActivity里通过展示这个string显示在视图上,表示Java层调用cpp层的成功了。

看下运行结果:

http://www.yayakq.cn/news/971767/

相关文章:

  • 深圳住建官网上海seo公司
  • 金华高端网站建设公司苏州知名网站建设开发
  • 昆明网站建设porto wordpress模板
  • 绵阳市建设厅官方网站如何申请一个网站 做视频
  • php网站建设管理教材线上宣传渠道
  • 网站制作多少钱啊看到网站的第一印象
  • 网站页面做成自适应优缺点wordpress 缓存下不计数
  • seo综合查询怎么进入网站做网站如何接单子
  • 哪些网站可以医生做兼职做网站如何网站考虑优化
  • 西安营销网站建设公司网站备案 新闻类前置审批
  • 服务器站点的网站地图怎么做哈尔滨口碑好的网站建设
  • 绿色环保企业网站模板餐饮品牌设计哪个公司最好
  • 手机访问网站跳wap选择网站建设公司应该注意什么
  • 网站建设跳转页面怎么弄给房地产公司做网站的公司
  • 做网站怎么在主机上放图片seo搜狗排名
  • wordpress网站首页链接乱码科技感背景素材
  • 网站有哪些元素组成qq个人邮箱登录入口
  • 自己建网站做app厦门同安网站建设
  • 福建省建设工程资格中心网站容县网站建设
  • 淮安做网站.哪家网络公司好?网易企业邮箱登录网页版
  • 滕州建网站建设网站要用到什么语言
  • 黄冈网站开发用shopify 做网站
  • 专业做设计师品牌网站北京编程培训学校哪个好
  • 服装网站模块方案天天联盟广告网站如何做
  • 买了域名之后怎么做网站工商注册核名
  • 二级域名站群企业门户网站的意义
  • 青海市住房和城乡建设厅网站网站开发简答题
  • 用jsp做的网站首页搭建网站空间
  • 重庆教育网站建设房地产市场调查问卷
  • 有免费搭建app的网站吗网页设计综合实训论文