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

地税网站如何做税种确认中国室内设计任务网

地税网站如何做税种确认,中国室内设计任务网,南昌的网站设计,网站功能开发需求分析文章目录 一、JNI 注册二、JNI 调用 Java 函数1、实例2、总结3、参考 三、JNI 数据传递四、JNA五、图像传递 一、JNI 注册 JNI 分成静态注册和动态注册 静态注册 cpp 实现 JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *env, jobject… 文章目录 一、JNI 注册二、JNI 调用 Java 函数1、实例2、总结3、参考 三、JNI 数据传递四、JNA五、图像传递 一、JNI 注册 JNI 分成静态注册和动态注册 静态注册 cpp 实现 JNIEXPORT jstring JNICALL Java_com_example_hellojni_HelloJni_stringFromJNI(JNIEnv *env, jobject thiz) {// ... }Java 中使用 package com.example.hellojni class HelloJni : AppCompatActivity() {// ...override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)// ...binding.helloTextview.text stringFromJNI()}external fun stringFromJNI(): String?companion object {init {System.loadLibrary(hello-jni)}} }动态注册 // 动态注册 namespace android {static jobject android_os_MemoryFile_open(JNIEnv* env, jobject clazz, jstring name, jint length) {// ...} }static const JNINativeMethod methods[] {{native_open, (Ljava/lang/String;I)Ljava/io/FileDescriptor;, (void*)android_os_MemoryFile_open},{native_mmap, (Ljava/io/FileDescriptor;II)I, (void*)android_os_MemoryFile_mmap},{native_munmap, (II)V, (void*)android_os_MemoryFile_munmap},{native_close, (Ljava/io/FileDescriptor;)V, (void*)android_os_MemoryFile_close},{native_read, (Ljava/io/FileDescriptor;I[BIIIZ)I, (void*)android_os_MemoryFile_read},{native_write, (Ljava/io/FileDescriptor;I[BIIIZ)V, (void*)android_os_MemoryFile_write},{native_pin, (Ljava/io/FileDescriptor;Z)V, (void*)android_os_MemoryFile_pin},{native_get_size, (Ljava/io/FileDescriptor;)I,(void*)android_os_MemoryFile_get_size} };int AndroidRuntime::registerNativeMethods(JNIEnv* env,const char* className, const JNINativeMethod* gMethods, int numMethods)5分钟理解Android中的JNI原理 二、JNI 调用 Java 函数 JNI 调用 Java 函数主要是在 JNI 中使用反射调用 Java 中的函数。 1、实例 Java代码 package com.my.hawk.jni2;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView;import static java.lang.String.format;public class MainActivity extends AppCompatActivity {TextView tv;// Used to load the native-lib library on application startup.static {System.loadLibrary(native-lib);}Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// Example of a call to a native methodtv findViewById(R.id.sample_text);tv.setText(stringFromJNI());nativeInitilize();Button startBt findViewById(R.id.button);startBt.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {nativeThreadStart();}});Button stopBt findViewById(R.id.button2);stopBt.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {nativeThreadStop();}});}public void onNativeCb(int count) {Log.d(Native, onNativeCb count count); // TextView tv findViewById(R.id.sample_text); // tv.setText(format(%s%d, stringFromJNI(), count));tv.post(new Runnable() {Overridepublic void run() {tv.setText(format(%s%d, stringFromJNI(), count));}});}/*** A native method that is implemented by the native-lib native library,* which is packaged with this application.*/public native String stringFromJNI();public native void nativeInitilize();public native void nativeThreadStart();public native void nativeThreadStop(); }JNI代码 #include jni.h #include string #include sstream #include android/log.h #include unistd.hJavaVM *gJavaVm; jobject gJaveObj; static volatile int gIsThreadExit 0;#define LOG(...) __android_log_print(ANDROID_LOG_DEBUG, Native, __VA_ARGS__)static const char *classPath com/my/hawk/jni2/MainActivity;extern C JNIEXPORT jstring JNICALL Java_com_my_hawk_jni2_MainActivity_stringFromJNI(JNIEnv* env,jobject /* this */) {std::string hello Hello from C;return env-NewStringUTF(hello.c_str()); }extern C JNIEXPORT void JNICALL Java_com_my_hawk_jni2_MainActivity_nativeInitilize(JNIEnv *env, jobject thiz) {env-GetJavaVM(gJavaVm);gJaveObj env-NewGlobalRef(thiz); }static void* native_thread_exec(void *arg) {JNIEnv *env;gJavaVm-AttachCurrentThread(env, nullptr);// jclass javaClass env-FindClass(classPath);jclass javaClass env-GetObjectClass(gJaveObj);if (javaClass nullptr) {LOG(Fail to find javaClass);return nullptr;}jmethodID javaCallback env-GetMethodID(javaClass, onNativeCb, (I)V);if (javaCallback nullptr) {LOG(Fail to find method onNativeCb);return nullptr;}LOG(native_thread_exec loop enter);int count 0;while (!gIsThreadExit) {env-CallVoidMethod(gJaveObj, javaCallback, count);sleep(1);}gJavaVm-DestroyJavaVM();LOG(native_thread_exec loop leave);return nullptr; }extern C JNIEXPORT void JNICALL Java_com_my_hawk_jni2_MainActivity_nativeThreadStart(JNIEnv *env, jobject thiz) {gIsThreadExit 0;pthread_t threadId;if (pthread_create(threadId, nullptr, native_thread_exec, nullptr) ! 0) {LOG(native_thread_start pthread_create fail!);return;}LOG(native_thread_start success); }extern C JNIEXPORT void JNICALL Java_com_my_hawk_jni2_MainActivity_nativeThreadStop(JNIEnv *env, jobject thiz) {gIsThreadExit 1;LOG(native_thread_stop success); }其中的关键获取方法然后通过反射调用 native_thread_exec初始化的时候保存全局 JVM 和 class 对象。 env-GetJavaVM(gJavaVm);gJaveObj env-NewGlobalRef(thiz);2、总结 Android 环境中每个进程只能诞生一个 JavaVM 对象被所有线程共享。在 VM 加载 *.so 程序库时会先调用 JNI_OnLoad() 函数在 JNI_OnLoad() 函数中会将 JavaVM 指针对象保存到 C 层 JNI 的全局变量中。JNIEnv 对象和线程是一一对应的关系;Jvm 和 JNIEnv 释放问题JVM 中 Java Heap 的内存泄漏JVM 内存中 native memory 的内存泄漏从操作系统角度看JVM 在运行时和其它进程没有本质区别。在系统级别上它们具有同样的调度机制同样的内存分配方式同样的内存格局。JVM 进程空间中Java Heap 以外的内存空间称为 JVM 的 native memory。进程的很多资源都是存储在 JVM 的 native memory 中例如载入的代码映像线程的堆栈线程的管理控制块JVM 的静态数据、全局数据等等。也包括 JNI 程序中 native code 分配到的资源。 Local Reference 导致的内存泄漏 3、参考 Android开发实践JNI层线程回调Java函数示例 - 指针空间 - 博客园 JNI开发JNI层新起的函数中C回调函数中调用JAVA层的接口_tingzhushaohua的博客-CSDN博客_jni 回调函数 C通过JNI层回调java函数 - 百度文库 Android NDK开发一 - 简书 jni java 函数指针_java native interface JNI 调用Java方法_我是XiaoYang呀的博客-CSDN博客 三、JNI 数据传递 AndroidJNI调用C自定义类的详细方法_chaoqiangscu的博客-CSDN博客_jni调用c类 Java代码与Jni层之间传递数组byte[]_xiao慕r的博客-CSDN博客_jni传递数组 Android-JNI之数据类型转换_zhezi521的博客-CSDN博客_android jni 类型转换 android ndk 返回字符串,android ndk返回String(字符串)_天才娜娜ln的博客-CSDN博客 小心ReleaseByteArrayElements 中的参数问题_普通网友的博客-CSDN博客 JNIEnv*的常用函数详解 java jni 手册_Java中JNI的使用详解第二篇:JNIEnv类型和jobject类型的解释_发条粽子的博客-CSDN博客 NDK 开发之 Bitmap 的使用-技术圈 Android之OpenCv简单人脸识别功能Bitmap_路和远方的博客-CSDN博客_android opencv 人脸识别 JNI层向Java层传递bitmap | 码农家园 android中通过JNI读取Bitmap文件并调用opencv进行处理_一天到晚游泳的鱼啊鱼的博客-CSDN博客 JNI String类型 - 知乎 JNI 通过形参String返回数据的方法_Cosmo_Wang1989的博客-CSDN博客_jni 形参返回字符串 简介Bitmap、YUVNV21与Bitmap互转_XDK-Net的博客-CSDN博客_bitmap转nv21 bitmap 转换nv21_驱梦人的博客-CSDN博客_bitmap转nv21 JNI层向Java层传递bitmap | 码农家园 计算Java函数的签名 | Android开发实践:JNI函数签名生成器 - 行业资讯 - 肥雀云_南京肥雀信息技术有限公司 native和static native区别_飞鸟_的博客-CSDN博客_jni static 四、JNA JNI便捷开发框架JNA框架之入门一_cy谭的博客-CSDN博客_jna JNI便捷开发框架JNA框架之指针参数Pointer二_cy谭的博客-CSDN博客_jna pointer JNI便捷开发框架JNA框架之引用传递ByReference三_cy谭的博客-CSDN博客 JNI便捷开发框架JNA框架之结构参数体传递四_cy谭的博客-CSDN博客_jna 结构体传参 JNA传递二维指针数组参数给C语言_Xeon_CC的博客-CSDN博客_jna传递数组给c JNA 技术解密_ccfeng2008的博客-CSDN博客_jna原理 jna编程学习 - 走看看 JNA 使用 回调函数 - 博麗靈夢 - 博客园 java高级用法之:JNA中的回调_flydean程序那些事的博客-CSDN博客_jna 回调函数 Jna及如何调试_nanshenjiang的博客-CSDN博客_jna测试 libffi浅析_ayu_ag的博客-CSDN博客_libffi 使用 libffi 实现 AOP_diaoju3333的博客-CSDN博客 【libffi】动态调用定义C函数_Yaso_GG的博客-CSDN博客_libffi 深入浅出JNA android下使用JNA_10km的博客-CSDN博客_android jna Ubuntu 12.04下制作JNA For Android_齐北的博客-CSDN博客 五、图像传递 移动端视频进阶三OpenCV的集成及视频帧转cv::Mat的相关操作_木大白易的博客-CSDN博客 Android 相机 NV21 byte[] 和 JPEG byte[] 转 OpenCV 的 Mat_weixin_33973609的博客-CSDN博客 在IOS上YUV NV21格式的CVPixelBufferRef转opencv的RGB格式cv::Mat的方法_星辰辰大海的博客-CSDN博客
http://www.zqtcl.cn/news/123202/

相关文章:

  • 网站建设知识网犀牛云做网站多少钱
  • 东莞seo优化推广重庆做网络优化公司电话
  • 网站建设的设计思路高校建设网站的特色
  • 宁波网站建设八宝山做网站的公司
  • 哪里有网站建设多少钱网站建设哪家服务态度好
  • 白云区网站开发公司备案不关闭网站的方法
  • 男的做那个视频网站家用电脑可以做网站服务器
  • 网站建设的行业客户烟台市未成年思想道德建设网站
  • 设计个网站要多少钱鼓楼网站开发
  • 东莞外贸网站搭建制作北京app开发制作
  • 优化网站公司外包微信商城怎么开店
  • 网站设计的导航栏怎么做东莞seo网络优化
  • wordpress直接上传视频网站吗做网站软件
  • 电脑维修网站模板下载来个网站吧好人一生平安2021
  • 做公益选哪个网站好网站建设方案多少钱
  • 丰台做网站的公司vs2015 手机网站开发
  • 宝思哲手表网站qq官网登录入口网页版
  • 二手书网站开发设计太原建设网站的公司
  • 江门网站seo推广qq代挂网站建设
  • 合肥制作网站企业做文字logo的网站
  • php 网站提速有没有帮人做简历的网站
  • 九江建网站报价比特币网站做任务
  • 电子商务网站开发目的和意义网站建设湖南岚鸿建设
  • 网站改版提交给百度个人定做衣服店
  • 网站接广告网站用途说明
  • 中兴豫建设管理有限公司网站中小企业网站建设济南兴田德润o厉害吗
  • 枣庄有做网站的吗网站 关键词 多少个
  • 广州10大网站服务品牌做网站买了域名之后
  • 北京网站备案电商网站建设考试
  • 微信官网网站虚拟主机网站被挂马