标签: native

Firefox扩展:本机代码执行?

是否可以编写一个运行本机,平台相关代码的扩展?我是一个扩展新手(什么短语!):),请你指点我这个主题的好材料?(向Google提供的好关键字就足够了)

(我想在Firefox中放一个GtkMenu)

编辑:我开始查看Gecko SDK,这是一个相当大的主题,我不确定这是我想要的.

我很满意一本友好的手册(这不是一个原始参考,而是一些关于如何使用XPCOM进行扩展的教程(如果是这样的话).好的关键词仍然很受欢迎.

native firefox-addon

6
推荐指数
1
解决办法
3899
查看次数

JPA本机查询和缓存

JPA(createNativeQuery)中的本机查询是否支持缓存?
我正在填充我自己的数据传输对象,因为sql查询连接了几个表,并且只从它们中获取几个列.

问候

java hibernate jpa native

6
推荐指数
1
解决办法
5864
查看次数

如何从Metro调用/调用本机dll?

我有一个由两部分组成的库 - 一个.net程序集,P/Invokes到本地第三方dll.在桌面模式下,这很好用:但是,当从Metro风格的应用程序引用程序集并运行它时,它会System.DllNotFoundExceptionP/Invoke上抛出一个抱怨"无法加载DLL'库':无法找到指定的模块. "

本机dll不执行任何特殊操作,但只创建到服务器的外部TCP/IP连接.系统无法知道这一点,而是原生dll可以做任何事情.这就是我怀疑可能无法做到这一点的原因.

有关Metro风格的应用程序在msdn上提到了一些dll搜索顺序,暗示可以加载本机dll吗?

另外我在msdn上发现了这个关于加载"库"的链接,并在清单文件中提到了PackageDependency,但对我来说,仍然不清楚如何以可以P/Invoke它的方式将一个本机dll添加到包中.

.net pinvoke native windows-8 windows-runtime

6
推荐指数
1
解决办法
1818
查看次数

使用C#创建本机可执行文件

我使用C#的原生EXE是什么样的,我想编译一个基本的EXE,它将在不需要.net框架的情况下运行.我听说ngen.exe可以任何人给我ngen.exe的例子或任何更好的方法.此外,我将为生成的应用程序生成运行时如何将其放入应用程序中,以便使用我的语言的任何人都可以使用其功能.

c# windows exe native compilation

6
推荐指数
1
解决办法
760
查看次数

Xamarin:使用Native库

1)在iOS和Android Native库可用的情况下,为了使用库来开发跨平台应用程序,需要采取哪些适当,有效和简单的步骤?绑定Android库还是iOS?如果我们绑定Android本机库,我们是否能够在Xamarin.iOS应用程序中使用此绑定库,反之亦然?

2)如果有可用的C++库,是否可以使用该库来开发跨平台应用程序?

提前致谢!

(只是Xamarin的初学者,如果问题似乎不合适,请找借口)

binding native xamarin

6
推荐指数
1
解决办法
3052
查看次数

如何在lein项目中加载和使用本机c代码?

问题
我无法加载并将已编译的c类中的方法调用到leiningen项目中.我的基本方法是加载一个Java类JavaWrapper.java,它使用JNI调用本机代码中的一些本机方法,wrapper.o然后通过这个java包装类调用方法.
我想有一个classLoader问题,加载一个java类,它从clojure项目加载本机代码,但鉴于我似乎无法直接获取clojure代码在库路径上找到wrapper.o,我不确定如何处理这个.

列宁项目文件

(defproject lein-native-test "0.1.0-SNAPSHOT"
...
:java-source-paths ["java-path"]
:jvm-opts ["-Djava.library.path=.:./native:/absolute/path/to/native"] ;;not sure what format it wants
)
Run Code Online (Sandbox Code Playgroud)

使用main方法的clojure文件
我尝试使用四种方法稍微修改它们,所有这些都包含在下面的代码中以及注释中的相应错误.

(ns lein-native-test.core
(:import (com.test JavaWrapper)))
(def -main []
;;four things I've tried and their errors
(clojure.lang.RT.load "/abs/path/to/wrapper.o") ;;could not find file /abs/path/wrapper.o_init.class or wrapper.o.clj
(clojure.lang.RT.loadLibrary "wrapper.o") ;;UnsatisfiedLinkError no wrapper.o in java library path
(JavaWrapper/load "/abs/path/to/wrapper.o") ;;UnsatisfiedLinkError com.test.JavaWrapper.setup()
(assembly-load "/abs/path/to/wrapper.o") ;;unable to resolvesymbol: assembly-load
)
Run Code Online (Sandbox Code Playgroud)

使用JNI,JavaWrapper.java的本机方法的Java代码

public class JavaWrapper{
    public native void setup();
    public static void load(String lib){ System.load(lib);}
} …
Run Code Online (Sandbox Code Playgroud)

native clojure leiningen

6
推荐指数
1
解决办法
1413
查看次数

使用NDK 13编译独立二进制文件

使用NDK 10版本,我曾经用于ndk-build编译许多不同ABI和多个API级别的独立二进制文件.这些二进制文件将包含在一个应用程序中.但是,我在本文所述的新开发机器上安装了NDK .这导致ndk-bundle我的Android SDK目录中有一个文件夹.我曾经从命令行编译代码,然后将二进制文件复制到我的Android Studio项目的资源中,但我无法弄清楚如何使用NDK 13这样做,所以我尝试按照教程包含我的本机代码Android Studio项目.但是,几乎所有最近的指令都假设一个人想要构建一个库,而不是一个独立的二进制文件,所以我没有走得太远.

如果我弄清楚如何让它工作,我会切换到CMake.我的本机项目具有以下(简化)结构:

如何在Windows 10开发机器上使用Android Studio或NDK从命令行编译?

编辑:

我在build.gradle中使用它:

externalNativeBuild {
    ndkBuild {
        path "../native/Android.mk"
    }
}
Run Code Online (Sandbox Code Playgroud)

Gradle创建了一个.externalNativeBuild包含构建配置的目录,但我无法找到如何实际构建本机代码.运行gradle时不会创建二进制文件.

我找不到有关gradle配置的任何信息ndk-build.

android native android-ndk android-studio ndk-build

6
推荐指数
1
解决办法
1376
查看次数

如何使用Gradle将版本化的*.so文件包含到apk中?

我试图用一些预编译的本机库构建android应用程序: liba.solibb.so.1.2.3

库放在jniLibs子目录中.构建APK文件后,只包含liba.so,但不包含libb.so.1.2.3.

结果是可预测的.应用程序在开始时崩溃.

如何处理构建脚本以将jniLibs中的所有文件包含到APK中?

android native shared-libraries gradle apk

6
推荐指数
1
解决办法
459
查看次数

对`cv :: DescriptorMatcher :: knnMatch的未定义引用

我正在尝试在android studio项目中使用opencv本机库。对于函数knnMatch的未定义引用,我得到一个错误。

我已将openCVLibrary添加到我的项目中,并成功使用了其他openCV功能。

  1. 有没有特定的原因为什么要使用libopencv_features2d?
  2. 编译和链接feature2d的正确方法是什么?

更新:添加我的编译文件

我的应用程序build.gradle:

apply plugin: 'com.android.application'
//
android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'
//
    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 27
        ...
        externalNativeBuild {
            cmake {
                arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang" , "-DANDROID_STL=c++_static","-DCMAKE_BUILD_TYPE=Release", "-DANDROID_CPP_FEATURES=rtti exceptions"
                cppFlags    "-D__STDC_FORMAT_MACROS" , '-O3','-fopenmp','-fsigned-char', "-std=c++14", "-frtti", "-fexceptions", "-mfloat-abi=softfp", "-Wall"
            }
            ndk {
                abiFilters 'arm64-v8a'
            }
        }
    }
    //
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }
    ...
}
//
dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        implementation project(':openCVLibrary340') //Module
}
Run Code Online (Sandbox Code Playgroud)

我的CMakeList.txt:

cmake_minimum_required(VERSION 3.4.1)
# …
Run Code Online (Sandbox Code Playgroud)

c++ opencv native android-studio opencv-features2d

6
推荐指数
1
解决办法
587
查看次数

Java内在方法和本机方法之间有什么区别?

Java固有函数在很多地方都提到过(例如here)。我的理解是,这些是使用特殊本机代码处理的方法。这似乎类似于JNI方法,它也是本机代码块。

有什么不同?

java native intrinsics

6
推荐指数
3
解决办法
337
查看次数