Darwin

史上最详细的JNI入门教程HelloNative

我怕爱的太早我们不能终老 提交于 2020-04-15 14:27:34
【推荐阅读】微服务还能火多久?>>> 欢迎点击 「算法与 编 程之美」 ↑ 关注我 们 ! 本文首发于微信公众号:"算法与编程之美",欢迎关注。 1 为什么写本文 互联网上已经有很多介绍 JNI 的入门教程,为什么还要多此一举写本文呢? 相信大家在平时阅读一些教程类文章时都遇到过这样的情况,按照教程描述的步骤一步步的来操作,结果却并没有得到教程期望的结果。遇到各种各样的问题,最后解决不了这些问题,进而放弃,放弃的原因很简单那就是对于一个未知的领域,读者遇到问题后无法自己解决,而所阅读的教程类文章并没有对这一问题进行详细的描述,导致最后选择了放弃。 通过分析我们发现,大多的教程类文章都有一个共同的问题,就是 重步骤而忽视读者在阅读过程中可能遇到的问题的分析。 我们期望改变这一现状,对于教程类文章,我们不仅介绍具体的操作步骤,而且更重要的是介绍读者在进行操作时可能遇到的一些关键问题,并对这些问题进行详细分析,从而帮助您彻底的解决问题。 2 HelloNative教程 下面将介绍编写 JNI 入门教程HelloNative程序的编写。 主要的步骤为: 1) 编写 HelloNative.java 程序; 2) 编译并得到 HelloNative.h 头文件; 3) 编写 HelloNative.c 程序; 4) 编译动态链接库libHelloNative.jnilib; 5)

最新adb下载地址

独自空忆成欢 提交于 2020-04-12 09:17:15
以下是adb工具包最新Google官方版下载地址: ADB和Fastboot for Windows https://dl.google.com/android/repository/platform-tools-latest-windows.zip ADB和Fastboot for Mac https://dl.google.com/android/repository/platform-tools-latest-darwin.zip ADB和Fastboot for Linux https://dl.google.com/android/repository/platform-tools-latest-linux.zip 由于这些是直接的 Google 链接,用户可以确保下载不仅是官方的,而且将始终能够获得最新版本的 ADB 和 Fastboot 。 来源: oschina 链接: https://my.oschina.net/u/4309973/blog/3230542

C4D R19插件:Solid Angle Cinema4D To Arnold for Mac(c4d阿诺德渲染器) 3.0.2

柔情痞子 提交于 2020-03-24 14:41:47
3 月,跳不动了?>>> Solid Angle Cinema4D to Arnold for Mac先进的蒙特卡罗光线追踪渲染器,专为长度动画和视觉效果而设计。可以在Linux,Windows和Mac OS X上作为独立的渲染器使用,可以通过maya,Softimage,Houdini和Katana插件访问。 功能介绍 • 毛皮和头发 高效的光线追踪曲线基元使Arnold成为使用极少内存渲染毛发和头发的完美选择。它的着色器具有双倍偏移投影,传输,并且专门设计用于减少细长毛发的闪烁。 • 运动模糊 准确的三维运动模糊正确地与阴影,体积,间接照明,反射或折射相互作用。变形运动模糊非常有效,适用于多边形,毛发和粒子。旋转运动描述精确的圆弧。 • 次表面散射 我们的基于光线跟踪的子表面散射方法使调谐点云成为过去。它易于使用,不需要额外的内存,支持运动模糊照明,交互式照明以及随着更多CPU线程的使用而优化其性能。 • 卷 体积渲染系统基于专有重要性抽样算法,可以渲染烟雾,云雾,火山碎屑流或火灾等效果。体积与来自任意区域光源的直接和间接照明相互作用。支持OpenVDB和mayaFluids。 • 灵活性和可扩展性 由于易于使用带Python绑定的C ++ API,TD和程序员可以将Arnold集成到外部应用程序中,并创建自定义着色器,相机,滤光片和输出驱动程序

用Electron打造跨平台APP

[亡魂溺海] 提交于 2020-03-11 17:46:40
关于electron Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的,下面直接上代码。 基础代码 基础目录结构 electron-demo/ ├── app ├─── index.html ├─── icon.icns ├── package.json ├── main.js package.json 跟常规 Node 程序一样,将 main.js 作为 程序的启动入口文件 { "name": "electron-demo", "version": "1.0.0", "description": "测试electron打包以及跟html5通信", "main": "main.js", "scripts": { "start": "electron .", "packager:os": "electron-packager ./ XXX教师端-非官方 --platform=darwin --out ./outApp --overwrite --icon=./app/icon.icns", "packager:win64": "electron-packager .

用Java增加Map值的最有效方法

与世无争的帅哥 提交于 2020-03-03 12:17:05
我希望这个问题对于本论坛来说不是太基本了,但是我们会看到的。 我想知道如何重构一些代码以获得更好的性能,而这些性能已经运行了很多次。 假设我正在使用地图(可能是HashMap)创建一个单词频率列表,其中每个键是一个带有要计算单词的String,并且值是一个Integer,每次找到该单词的标记时都会增加。 在Perl中,增加这样的值非常容易: $map{$word}++; 但是在Java中,它要复杂得多。 这是我目前的操作方式: int count = map.containsKey(word) ? map.get(word) : 0; map.put(word, count + 1); 当然,哪个依赖于较新的Java版本中的自动装箱功能。 我想知道您是否可以建议一种更有效的递增此值的方法。 避开Collections框架并改用其他东西,甚至有良好的性能原因吗? 更新:我已经测试了几个答案。 见下文。 #1楼 一些测试结果 对于这个问题,我已经得到了很多很好的答案-谢谢大家-因此,我决定进行一些测试,找出哪种方法实际上最快。 我测试的五种方法是: 我在 问题中 介绍的“ ContainsKey”方法 Aleksandar Dimitrov建议的“ TestForNull”方法 Hank Gay建议的“ AtomicLong”方法 jrudolph建议的“激励”方法 phax

Dep | remote: The project you were looking for could not be found.

烂漫一生 提交于 2020-02-29 16:44:39
原因: 依赖的包里面有个引用包的域名做了变更,但是包里面又没有更新,导致找不到包. 报错: failed to list versions for [project]: remote: The project you were looking for could not be found. dep: version : v0.5.4 build date : 2019-06-14 git hash : 1f7c19e go version : go1.12.6 go compiler : gc platform : darwin/amd64 features : ImportDuringSolve=false 通过dep check可知是因为项目不是直接依赖的包. 最后采用overwrite来解决 来源: oschina 链接: https://my.oschina.net/3233123/blog/3175165

Go 语言环境安装

倾然丶 夕夏残阳落幕 提交于 2020-02-27 00:45:55
Go 语言环境安装 Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Window 安装包下载地址为(go语言环境配置安装包下载安装教程): https://golang.org/dl/ 各个系统对应的包名: UNIX/Linux/Mac OS X, 和 FreeBSD 安装 以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法: 1、下载源码包:go1.4.linux-amd64.tar.gz。 2、将下载的源码包解压至 /usr/local目录。 tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz 3、将 /usr/local/go/bin 目录添加至PATH环境变量: export PATH=$PATH:/usr/local/go/bin 注意:MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。 Windows 系统下安装 Windows 下可以使用 .msi 后缀(在下载列表中可以找到该文件,如go1.4.2.windows-amd64.msi)的安装包来安装。 默认情况下.msi文件会安装在 c:\Go 目录下。你可以将 c:\Go\bin 目录添加到 PATH 环境变量中

electron-vue跨平台桌面应用开发实战教程(七)——ffi调用C++(macOS平台)

老子叫甜甜 提交于 2020-02-26 09:33:19
electron功能很强大,但是有一些跟操作系统底层交互的功能,electron无法实现,这个时候我们就可以调用原生来配合完成对应功能,本文主要讲解在macOS平台下,调用C++的dylib文件 在开始之前我们要安装 1.node-gyp npm install node-gyp -g 使用ffi-napi调用dll(c++) 1. 安装ffi-napi 执行 npm install ffi-napi --save 2. 准备C++动态链接库libdemo.dylib文件 libdemo.dylib文件可以去gitee中获取,也可以自己编译 gcc -g -shared demo.cpp -o libdemo.dylib electron-vue-demos gitee 地址 3. 调用libdemo.dylib文件中的方法 这里dll是找的别的写好的,dylib是我自己写的 let cpplib if (process.platform === 'darwin') { // 在使用libdemo的时候最好自己编译下cpp,命令gcc -g -shared demo.cpp -o libdemo.dylib let libPath // 在这儿需要判断下是开发环境还是打包环境,在mac上这两个环境用的路径不一样 if (process.env.NODE_ENV ===

Mac 下 clone SVN

百般思念 提交于 2020-02-26 01:43:22
看到一篇 博文 ,提到了已经死去的 Google Wave(已经捐给 : Apache ),想看看他们的 源码 : 于是想到了 Git 操作 SVN brew install git subversion 安装了以后,还是不能执行,报错: Can't locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) 执行下面命令: sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/SVN/ /Library/Perl/5.18/SVN sudo mkdir /Library/Perl/5.18/auto sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/auto/SVN/ /Library/Perl/5.18/auto/SVN 来源: oschina 链接: https://my.oschina.net/pauli/blog/3161177

How to properly use CFNotificationCenterAddObserver in Swift for iOS

半世苍凉 提交于 2020-01-20 21:56:59
问题 Pulling my hair out getting CFNotificationCenterAddObserver to work in Swift. CFNotificationCenterAddObserver(CFNotificationCenterGetDarwinNotifyCenter(), UnsafePointer<Void>(self), iosLocked, "com.apple.springboard.lockcomputer" as CFString, nil, CFNotificationSuspensionBehavior.DeliverImmediately) The iOS docs have it listed and I have tried countless iterations on the callback and the unsafe pointer with no success. The above function call results in this error message, which seems to be