标签: native

JVM上的所有"Magic"方法都标记为Native吗?

"魔术"是指具有语义的方法,这些语法不是用纯Java表达的.

我知道所有native方法都很神奇,因为它们的实现是由底层运行时提供的,而不是由Java字节码提供的.

反之亦然吗?是所有神奇的方法native,还是有些神奇的方法显然是用纯Java实现的,但是有一些JVM特殊外壳的额外帮助?

用例是我想通过检测其字节码来修改Java的语义.所有这些神奇的方法都是特殊情况,我将不得不以某种方式处理.这些native都是显而易见的,但我想知道是否有任何无标记的魔术方法我需要注意和特殊情况.

java java-native-interface jvm bytecode native

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

使用Inno Setup和maven创建原生javafx应用程序

我有一个小的JavaFX应用程序,我使用Maven来管理依赖项,这要归功于javafx-maven-plugin.

这个插件有一个选项,可以使用InnoSetup(在Windows上)根据设置(mvn jfx:build-native)构建本机安装程序

这工作得很好但我找不到我可以指定所有Inno设置选项的位置(就像这里可见的那些).我必须在我的pom上添加一些东西吗?我必须创建一个.iss文件吗?如果是,如何指定此文件的链接?

任何的想法 ?

javafx inno-setup native maven

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

JNI proguard混淆

我有混淆的问题.为了更好的想象力:

JAVA CODE

class JniTest...

public void test()
{
    //some code
}

public void runJniCode()
{
    //here I call native code
}
Run Code Online (Sandbox Code Playgroud)

本地代码

JNIEXPORT void JNICALL
Java_path_to_class_test(JNIEnv* env, jobject  obj)
{
    //here I call test method from Java

}
Run Code Online (Sandbox Code Playgroud)

一切正常,直到我想发布一个混淆版本.此类中的Java类(JniTest例如)和方法test的名称由proguard重命名为"a"和"a()"(这可能并不总是相同),但在本机代码中,方法和类的原始名称保持,因为它被硬编码为字符串,如:

jmethodID mid = env->GetMethodID(cls, "test", "someSignature");
Run Code Online (Sandbox Code Playgroud)

...有没有办法动态设置方法名称?

obfuscation java-native-interface android native

6
推荐指数
2
解决办法
6130
查看次数

如何在node.js依赖关系树中查找本机模块?

我有一个node.js应用程序,有大约10个直接依赖项,总共有50个依赖项.

我现在想知道这些依赖项是否使用本机代码(当然除了node.js平台本身之外),例如外部系统库(我见过其他项目中使用的libxml),自己的C/C++库,node-gyp构建脚本需要安装编译器等.

对于这种情况,是否有一种简单/快速的方法来检查给定模块的整个依赖关系树?

module native node.js node-gyp

6
推荐指数
2
解决办法
988
查看次数

会话管理方法在移动本机与混合与Web应用程序中的区别如何?

想要讨论在移动应用程序(本机,混合和Web应用程序)的情况下如何管理会话的内幕信息?

请验证以下会话管理方案:

原生(Android/iOS)应用程序

  1. 使用会话Cookie:会话Cookie存储在DefaultHttpClient对象中.而不是为每个请求创建一个新的DefaultHttpClient(在iOS中为AFNetworking),保留并重复使用它,并保持会话cookie.

混合(JET,离子,Angular,Cordova)应用

  1. 成功登录后,使用localStorage存储用户信息.注销时清除localStorage.

Web-HTML5应用程序

  1. HTML5中的Attribute-SessionStorage:站点可以使用它来向会话存储添加数据,并且可以访问在该窗口中打开的同一站点的任何页面即会话,并且一旦关闭窗口,会话将是丢失.

感谢致敬,

罗希特

cookies session html5 native hybrid-mobile-app

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

如何使用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
查看次数

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

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

有什么不同?

java native intrinsics

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

WinForms 等效于 WPF WindowInteropHelper、HwndSource、HwndSourceHook

我有一个代码块,如:

IntPtr hWnd = new WindowInteropHelper(this).Handle;
HwndSource source = HwndSource.FromHwnd(hWnd);
source.AddHook(new HwndSourceHook(WndProc));
NativeMethods.PostMessage((IntPtr)NativeMethods.HWND_BROADCAST, NativeMethods.WM_CALL, IntPtr.Zero, IntPtr.Zero);
Run Code Online (Sandbox Code Playgroud)

这最初是在 WPF 应用程序中。但是,我需要在 WinForms 应用程序中复制该功能。此外,NativeMethods.PostMessage 只是映射到 user32.dll PostMessage:

[DllImport("user32")]
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);
Run Code Online (Sandbox Code Playgroud)

WindowInteropHelper/HwndSource/HwndSourceHook我可以在 WinForms 应用程序中使用1 比 1 的等价物吗?

.net c# native user32 winforms

5
推荐指数
2
解决办法
7391
查看次数

更改 SysLink 控件的颜色

我正在为Autodesk 3ds Max编写一个插件,这是一个原生的、仅限 Windows 的应用程序。该插件是用 C++ 编写的,并使用原始的 Win32 API 来构建其用户界面,就像 3ds Max 插件应该做的那样。

我想在插件的 UI 中显示一个 HTML 链接,让用户从网络下载插件的新版本。该SYSLINK控制似乎做的工作。

难点在于:3ds Max 用户界面的颜色是可配置的。我希望我的插件成为一个好公民,所以我需要 SysLink 控件使用与其他静态标签相同的颜色。

不幸的是,现在 SysLink 控件的文本总是以蓝色绘制,这在 3ds Max 的深色主题中效果不佳。此外,看起来我无法向 3ds Max 询问其调色板。

如何让 SysLink 控件使用与其他静态标签相同的颜色?

带有浅色主题的插件用户界面 带有深色主题的插件用户界面

c++ winapi native hyperlink

5
推荐指数
1
解决办法
889
查看次数

带有WebView的Cordova与本机应用

目标是使用现有的Web应用程序并为其创建Android和iOS版本,并添加一些功能(“推送通知”和“位置”)。

作为Android / iOS开发人员,将Cordova及其本机插件用于此类开发是否有意义,或者以2个代码库(适用于Android和iOS)结尾将Web应用程序加载到WebView中是否明智?需要提及的是,所有内容都必须远程加载(应用程序中不能存储html / css / js文件)。

应用程序上会有一些严格的安全性要求,我担心两件事:

  1. 与使用本机应用程序相比,使用Cordova插件实现安全性可能会更加困难。
  2. 使一个单独的html / css / js应用在两个平台上表现相同可能会更加困难。
  3. 如果我是本地开发人员,则可以使用Cordova,并且可以使用本地应用程序使事情更快。

如果有人可以对此发表意见或分享经验,将非常有帮助。提前致谢!

native webview cordova hybrid-mobile-app cordova-plugins

5
推荐指数
1
解决办法
5620
查看次数