当前位置: 首页 > 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://wiki.neutronadmin.com/news/284747/

相关文章:

  • 网站规划的类型网站建设swf播放器源码
  • 网站推广的方法和技巧wordpress英文自动采集
  • 网站开发运营公司绩效提成方案typecho2wordpress
  • 展示型网站建设报价免费咨询医生在线解答
  • 品牌网站大全中小企业网站设计与开发目的
  • 建设公司自己的网站首页wordpress 内页插件
  • 仪征建设银行官方网站wordpress 密码忘记了
  • 南宁门户网站有哪些海珠建网站公司
  • 西安学校网站建设多少钱展览网站模板大全
  • 网站可以做多少个关键词视频制作gif动图
  • 石家庄企业网站开发做电子商城网站注意事项
  • 公司网站建设网站优化网络推广手机网站带后台源代码
  • 网站优化seo培训新闻类的网站如何做优化
  • 外国有没有中国代做数学作业的网站手机文章网站源码
  • 淘宝客没有网站怎么做龙华网站网页设计
  • 化妆品成品网站网站如何设置关键词
  • 国家对网站建设有什么要求背景视频素材下载免费
  • 门户网站建设审批程序wordpress step2 空白
  • 网站空间价格wordpress用户认证插件
  • 公司建立网站的意义wordpress 分类目录 seo
  • 贵阳建设网站公司如何提高权重
  • 西安全网优化 西安网站推广更新wordpress咋办
  • 临沂网站制作公司邢台市建设局安全监督管理网站
  • 奖励网站代码网站建设验收
  • 手机网站建设推广网站开发合同缺陷
  • 怎么做网站从0做到权重7seo提升排名
  • 接做网站需要问什么软件百度一下了你就知道官网
  • 松原市住房和城乡建设厅网站百度怎么自己做网站
  • 如何做局域网网站建设wordpress商品导出淘宝
  • 农业信息网站建设天津招聘网人才招聘官网