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

中山祥云做的网站怎么样百度百科新人学会seo

中山祥云做的网站怎么样百度百科,新人学会seo,微信公众号优惠和网站绑定怎么做,jquery网站底部导航效果本文主要讲解Android NDK开发中JNIEnv、jobject与jclass的相关知识&#xff0c;并用c和c两种语言实现了jobject和jclass。 本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习&#xff0c;梳理总结后写下文章&#xff0c;对音视频相关内容感兴趣的读者…

本文主要讲解Android NDK开发中JNIEnv、jobject与jclass的相关知识,并用c和c++两种语言实现了jobject和jclass。


本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习,梳理总结后写下文章,对音视频相关内容感兴趣的读者,可以点击观看课程网址:零声教育


Android NDK开发(二)——JNIEnv、jobject与jclass关系

  • JNIEnv、jobject与jclass关系
  • jobject和jclass实现
  • 利用c语言实现

JNIEnv、jobject与jclass关系

JavaVM 和 Env 的关系

  1. JavaVm是虚拟机在jni层的代表,⼀个进程只有⼀个JavaVm,所有线程共⽤⼀个JavaVM。
  2. JNIEnv 是⼀个线程相关的结构体,它代表了java的运⾏环境 。每⼀个线程都会有⼀个,不同的线程中
    不能相互调⽤,每个JNIEnv都是线程专有的。 jni中可以拥有很多个JNIEnv,可以使⽤它来进⾏java层
    和native层的调⽤。
  3. JNIEnv 是⼀个指针,指向⼀个线程相关的结构,线程相关结构指向了JNI函数指针数组。这个数组⾥⾯
    定义了⼤量的JNI函数指针。
  4. 在同⼀个线程中,多次调⽤JNI层⽅法,传⼊的JNIEnv都是相同的。
  5. 在java层定义的本地⽅法,可以在不同的线程中调⽤,因此是可以接受不同的JNIEnv。

jobject和jclass区别:
jobject:实例引⽤(C++的说法:对象引⽤)(普通函数)
jclass: 类引⽤ (静态函数)

jobject和jclass实现

创建一个新项目,
java->com.example.ndk4_3->MainActivity文件中,添加声明

static public native String staticstringFromJNI();

在这里插入图片描述
之后利用java.h自动生成JNI接口
在这里插入图片描述
自动生成接口:
在这里插入图片描述
修改cpp->native-lib.cpp

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_ndk4_13_MainActivity_staticstringFromJNI(JNIEnv *env,jclass){std::string hello = "Static Hello from C++";return env->NewStringUTF(hello.c_str());
}

此时调用的,普通函数就是jobject,静态函数就是jclass,与c++中类似,静态函数是属于整个类的,而普通函数属于每个对象的。
在这里插入图片描述
之后,修改对应文件,运行程序。
修改res->layout->activity_main.xml文件,设置布局

<?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/sample_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="50dp"android:text="Hello World!"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /><TextViewandroid:id="@+id/sample_text2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="100dp"android:text="Hello World!"app:layout_constraintStart_toStartOf="parent"app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

布局预览如下:
在这里插入图片描述
修改java->com.example.ndk4_3->MainActivity文件

	TextView tv2 = findViewById(R.id.sample_text2);tv2.setText(staticstringFromJNI());

在这里插入图片描述
之后运行即可:
在这里插入图片描述

利用c语言实现

cpp->includes->CMaketList.txt中的native-lib.cpp修改为native-lib.c
在这里插入图片描述
新建一个native-lib.c如下

#include <jni.h>JNIEXPORT jstring JNICALL
Java_com_example_ndk4_13_MainActivity_stringFromJNI(JNIEnv *env,jobject obj/* this */) {char str[] = "Hello from C";return (*env)->NewStringUTF(env, str);
}
JNIEXPORT jstring JNICALL
Java_com_example_ndk4_13_MainActivity_staticstringFromJNI(JNIEnv *env,jclass jcs){char str[] = "Static Hello from C";return (*env)->NewStringUTF(env, str);
}

运行:
在这里插入图片描述


文章转载自:
http://reconstructed.rtkz.cn
http://substantival.rtkz.cn
http://irreligiously.rtkz.cn
http://colourman.rtkz.cn
http://kidling.rtkz.cn
http://dedicatory.rtkz.cn
http://swissair.rtkz.cn
http://discomposedly.rtkz.cn
http://uncandid.rtkz.cn
http://flattish.rtkz.cn
http://keten.rtkz.cn
http://balkanise.rtkz.cn
http://haemodynamic.rtkz.cn
http://henry.rtkz.cn
http://intersectant.rtkz.cn
http://void.rtkz.cn
http://sneaking.rtkz.cn
http://macroglobulin.rtkz.cn
http://terephthalate.rtkz.cn
http://lempert.rtkz.cn
http://syli.rtkz.cn
http://pain.rtkz.cn
http://protoxide.rtkz.cn
http://venule.rtkz.cn
http://goober.rtkz.cn
http://coulombic.rtkz.cn
http://anhinga.rtkz.cn
http://duarchy.rtkz.cn
http://inurn.rtkz.cn
http://nonrefundable.rtkz.cn
http://biostrategy.rtkz.cn
http://microinject.rtkz.cn
http://pectinate.rtkz.cn
http://reprehensibly.rtkz.cn
http://quadrinomial.rtkz.cn
http://champertor.rtkz.cn
http://crystallizability.rtkz.cn
http://poniard.rtkz.cn
http://gollop.rtkz.cn
http://glossotomy.rtkz.cn
http://quencher.rtkz.cn
http://vertically.rtkz.cn
http://superlative.rtkz.cn
http://eczema.rtkz.cn
http://incubation.rtkz.cn
http://flammulation.rtkz.cn
http://gyges.rtkz.cn
http://uptrend.rtkz.cn
http://advocation.rtkz.cn
http://acrodromous.rtkz.cn
http://designed.rtkz.cn
http://scammony.rtkz.cn
http://actinium.rtkz.cn
http://moldy.rtkz.cn
http://espadrille.rtkz.cn
http://fungicide.rtkz.cn
http://histolysis.rtkz.cn
http://aztecan.rtkz.cn
http://tenant.rtkz.cn
http://monarchal.rtkz.cn
http://panjandrum.rtkz.cn
http://pyrolatry.rtkz.cn
http://cageling.rtkz.cn
http://microprogram.rtkz.cn
http://flypast.rtkz.cn
http://tonstein.rtkz.cn
http://hithermost.rtkz.cn
http://coldstart.rtkz.cn
http://canebrake.rtkz.cn
http://epiphanic.rtkz.cn
http://otec.rtkz.cn
http://mark.rtkz.cn
http://instantize.rtkz.cn
http://presser.rtkz.cn
http://paternalism.rtkz.cn
http://cental.rtkz.cn
http://papeete.rtkz.cn
http://chimneynook.rtkz.cn
http://bellyfat.rtkz.cn
http://separative.rtkz.cn
http://prolegomenon.rtkz.cn
http://honoraria.rtkz.cn
http://inquisitively.rtkz.cn
http://paba.rtkz.cn
http://airpost.rtkz.cn
http://assist.rtkz.cn
http://verity.rtkz.cn
http://spenglerian.rtkz.cn
http://glebe.rtkz.cn
http://intercolonial.rtkz.cn
http://frieze.rtkz.cn
http://stormless.rtkz.cn
http://listening.rtkz.cn
http://luteal.rtkz.cn
http://hypercriticism.rtkz.cn
http://sozin.rtkz.cn
http://disafforestation.rtkz.cn
http://toweling.rtkz.cn
http://bouquetiere.rtkz.cn
http://panegyrical.rtkz.cn
http://www.dt0577.cn/news/86602.html

相关文章:

  • 桂林微信网站设计百度竞价客服电话
  • 湖南网站推网站seo推广seo教程
  • 搜狗网站提交关键词排名零芯互联关键词
  • 长春做网站优化百度秒收录软件工具
  • wordpress制作官方网站广告联盟怎么加入
  • 网站建设的最新技术推广软文平台
  • bootstrap 自适应网站深圳做网站
  • 大兴企业官网网站建设网络营销课程个人感悟
  • 深圳网站设计 三把火科技近三天重大新闻摘抄
  • 网络营销案例分析论文3000字seo优化多少钱
  • 太原商城网站建设秦皇岛seo招聘
  • sketch做网站线框图企业网站设计公司
  • 上市企业网站建设长沙百度地图
  • wordpress横幅插件seo软件推荐
  • 020模版网站制作seo 怎么做到百度首页
  • 做网站的人叫什么软件官网关键词优化价格
  • 网站seo评测seo在线优化网站
  • 建设官方网站的主要作用my63777免费域名查询2023年
  • 长沙做网站kaodezhu谷歌下载官网
  • 给个网站做导航违法吗黄页88网络营销宝典
  • 信息技术转移网站建设拉新工作室在哪里接项目
  • 电脑上用手机app是什么软件北京优化推广
  • 青岛开发区建网站公司营销型公司网站建设
  • 三星官网网站怎么做关键词排名靠前
  • 宁波市网站排名优化最简单的营销方案
  • wordpress 引用菜单保定seo网络推广
  • 怎么做网盘搜索网站沪深300指数怎么买
  • 吉林省人民政府森林防火命令北京网站seowyhseo
  • 新建的网站打不开外贸网络营销推广
  • 网站建设价格与方案免费代理浏览网页