当前位置:  开发笔记 > 编程语言 > 正文

如何从AIR程序加载AIR运行时作为进程内共享库

如何解决《如何从AIR程序加载AIR运行时作为进程内共享库》经验,为你挑选了0个好方法。

我想在C语言中沿着java.exe构建一个特殊的AIR启动程序.

我已经看过使用进程查看器运行AIR程序,并且能够找到正在使用的AIR运行时DLL.AIR程序与Java不同之处在于它们作为特定于平台的可执行文件安装,这些可执行文件一旦启动就将AIR运行时绑定为进程内共享库(用户双击它们的图标).

好吧,我想制作一个类似java.exe的AIR启动器.

java.exe作为平台OS进程启动,该进程作为进程内共享库绑定到Java JVM运行时(JRE).要执行的java应用程序被指定为java.exe的命令行参数.一旦java.exe运行并且JVM完全正常运行,JVM类加载器就会加载指定的java应用程序类以供执行.然后,指定的Java应用程序接管,从某种意义上说"劫持"java.exe的进程.当然,指定的java应用程序在任何进程列表中显示为托管它的java.exe程序.

我想让AIR应用程序启动这样的工作.为什么?因此,我可以探索破解AIR的方法,并可能克服其中的许多不足之处.例如,对于初学者,我想使用一些可用于正在运行的AIR应用程序的新API来扩展AIR运行时体验.

我的第一笔业务是:

实现ActionScript3到C的绑定接口,该接口与.NET PInvoke相当

添加用于进程启动的API,与用于执行此操作的Java SE中的API相当(Runtime.exec,ProcessBuilder,Process)

添加对AIR应用程序的支持,以便能够与stdin,stdout,stderr进行交互.奇怪的是,尽管Adobe在AIR中添加了对本地文件访问的支持,但他们忽略了与这些标准文件管道的交互(但它们可以在AIR支持的任何OS平台上找到).

通过stdin,stdout,stderr实现对AMF的支持 - 因此AIR(或Java或任何支持AMF的语言)应用程序可以通过交换AMF对象来进行通信间处理.这将为AIR添加一点微软的PowerShell.

目前Merapi提供了一个带有Java的AMF桥,因此证明了它的功效.唉,Merapi必须使用localhost端口和套接字来进行进程间通信 - 相对于使用stdin/stdout/stderr进程间管道而言,这是一种笨拙的方式.

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有