要在Linux下编译OpenCVGPU版本,需要按照以下步骤操作: 1.安装CUDA 首先,您需要安装CUDA(统一计算设备架构)工具包。 您可以从NVIDIA官网下载适合您操作系统的CUDA版本,然后按照官方文档中的说明进行安装。 2.安装OpenCV 根据操作系统的不同,安装OpenCV的方式也有所不同。 在 Ubuntu 上,可以使用以下命令安装 OpenCV:``sudoapt-getinstalllibopencv-dev``` 如果使用其他 Linux 发行版,可以参考 OpenCV 官方文档中的说明进行安装。 3.编译OpenCVwithGPU支持为了启用OpenCV的GPU支持linux系统源码编译,需要将WITH_CUDA选项设置为ON。 在编译过程中,还需要指定CUDA安装路径,以及GPU估计的架构和代码生成选项。 以下是 CMake 命令示例: ```cmake-DWITH_CUDA=ON-DCUDA_ARCH_BIN=""-DCUDA_ARCH_PTX=""-DCUDA_GENERATION=""-DCUDA_TOOLKIT_ROOT_DIR=""``` 其中``表示您想要支持的GPU架构,如`sm_50`; `` 表示用于生成GPU代码的CUDA版本,例如7.0; `` 是CUDA的安装路径,在Ubuntu上通常是`/usr/local/cuda`; `` 是 OpenCV 源代码的路径。 4、编译安装OpenCV 完成上述设置后linux系统源码编译,运行以下命令编译安装OpenCV: ```make-j8sudomakeinstall``` 在编译安装过程中,可以调整并行编译线程数(`- j` 选项)。 完成上述步骤后,您就可以在OpenCV中使用GPU加速了。
androidjar包编译与反编译方法androidstudio jar包
梯度配置
apply plugin: 'java'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
jar {
archiveName 'alantest.jar'
manifest {
attributes 'Main-Class': 'com.actview.alantest.AlanTest'
}
}
主要用来制作可执行的java程序,比如写一个小辅助工具,需要指定jar包的名称和main函数所在的文件
方法是新建一个javalibrary
新创建的模块如下:
gradle配置如下
apply plugin: 'java-library'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
sourceCompatibility = "1.6"
targetCompatibility = "1.6"
jar {
archiveName 'mytest.jar'
}
新的android模块
新创建的模块如下
点击build==》》makemodule,编译模块,生成编译文件,结果如下android源码编译jar包,jar包已经生成
androidjar包反编译
在平时的开发过程中,有时会用到第三方jar包文件,因为第三方jar包文件集成度比较高,不满足我们自己项目的相关功能或者业务逻辑需求,所以我们需要修改将jar包文件更改为文件,然后重新打包成jar包使用,或者直接使用反编译后的jar包源文件作为依赖库。
以我们打出的jar包为例,我们收到的只是jar文件
首先我们需要将.class文件转换成java文件供我们更改
.class文件视图可以直接在androidstudio中查看,如下图
打开的.class文件与源文件相同,因为它没有使用混淆编译。 初始混淆和非混淆在机器前是一样的,只是降低了反编译的难度。 技能变量的名称并不容易理解。 一步步找麻烦
将.class文件反编译成java文件,使用androidstudio使用的开源工具fernflower,源码库可以从GitHub找到
将fernflower打包成jar工具包android源码编译jar包,
输入反编译命令进行反编译
D:mywork>java -jar fernflower.jar -dgs=true D:myworkmytest.jar D:myworkdecompile
跳转到fernflower所在工作目录,指定需要反编译的jar文件mytest.jar,进入decompile路径下
反编译结果在decompile文件夹中,生成jar包,解压到该目录即可。 解压后发现文件已转换为.java可编辑java源代码
将反编译后的java文件加载到新创建的同包名模块中。 更改后按照编译打包jar文件的步骤重新打包相关工作,即完成jar文件的反编译和替换,或者重新编译最终jar中的.class文件替换.class文件目标jar包中