首页 文章 精选 留言 我的

精选列表

搜索[环境],共10000篇文章
优秀的个人博客,低调大师

Android NDK环境搭建及调用JNI的简单步骤

转载请注明:http://www.cnblogs.com/tiantianbyconan/p/3396595.html Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互。JNI 是本地编程接口,它使得在 Java 虚拟机 (VM) 内部运行的 Java 代码能够与用其它编程语言(如 C、C++ 和汇编语言)编写的应用程序和库进行交互操作。 1. 下载NDK(http://developer.android.com/tools/sdk/ndk/index.html),并解压,配置Path路径 2. 在项目中新建一个名为jni的文件夹,在jni中新增Android.mk文件,文件内容如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := PhotoUtil LOCAL_SRC_FILES := PhotoUtil.c LOCAL_LDLIBS := -llog -ljnigraphics include $(BUILD_SHARED_LIBRARY) LOCAL_MODULE:当前模块的名称 LOCAL_SHARED_LIBRARIES:当前模块需要依赖的共享库。 LOCAL_SRC_FILES:所要调用的C源码 3. 把PhotoUtil.c文件复制到jni目录下 PhotoUtil.c,包含一个图片处理方法: JNIEXPORT void JNICALL Java_com_wangjie_customviews_PicturesDialog_functionToBlur(JNIEnv* env, jobject obj, jobject bitmapIn, jobject bitmapOut, jint radius) { …… } 方法Java_com_wangjie_customviews_PicturesDialog_functionToBlur的取名方式: Java_:固定 com_wangjie_customviews:java包名 PicturesDialog:java类名 functionToBlur:java使用的方法名 4. 编译C源码,生产so库文件 进入jni目录: ndk-build 或者 ndk-buildAPP_PLATFORM=android-8 1 2 3 "Compile thumb : PhotoUtil <= PhotoUtil.c SharedLibrary : libPhotoUtil.so Install : libPhotoUtil.so => libs/armeabi/libPhotoUtil.so 执行完毕之后,android项目的libs目录下就会生成so文件: \libs\armeabi\libPhotoUtil.so 5. 在android中java代码调用: static{ System.loadLibrary("PhotoUtil"); } 加载photoUtil库(libPhotoUtil.so) 并添加: private native void functionToBlur(Bitmap bitmapIn, Bitmap bitmapOut, int radius); 然后在其他地方只需要调用该functionToBlur()方法即可: functionToBlur(bgBitmap, bitmapOut, 50); 参考: http://www.ibm.com/developerworks/opensource/tutorials/os-androidndk/section5.html http://developer.android.com/tools/sdk/ndk/index.html#Installing http://stackoverflow.com/questions/2067955/fast-bitmap-blur-for-android-sdk 本文转自天天_byconan博客园博客,原文链接:http://www.cnblogs.com/tiantianbyconan/p/3396595.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

如何在Ubuntu环境下搭建邮件服务器(一)

在这个系列的文章中,我们将通过使用 Postfix、Dovecot 和 openssl 这三款工具来为你展示如何在 ubuntu 系统上搭建一个既可靠又易于配置的邮件服务器。 在这个容器和微服务技术日新月异的时代,值得庆幸的是有些事情并没有改变,例如搭建一个 Linux 下的邮件服务器,仍然需要许多步骤才能间隔各种服务器耦合在一起,而当你将这些配置好,放在一起,却又非常可靠稳定,不会像微服务那样一睁眼有了,一闭眼又没了。 在这个系列教程中我们将通过使用 Postfix、Dovecot 和 openssl 这三款工具在 ubuntu 系统上搭建一个既可靠又易于配置的邮件服务器。 Postfix 是一个古老又可靠的软件,它比原始的 Unix 系统的 MTA 软件 sendmail 更加容易配置和使用(还有人仍然在用sendmail 吗?)。 Exim 是 Debain 系统上的默认 MTA 软件,它比 Postfix 更加轻量而且超级容易配置,因此我们在将来的教程中会推出 Exim 的教程。 Dovecot(LCTT 译注:详情请阅读维基百科)和 Courier 是两个非常受欢迎的优秀的 IMAP/POP3 协议的服务器软件,Dovecot 更加的轻量并且易于配置。 你必须要保证你的邮件通讯是安全的,因此我们就需要使用到 OpenSSL 这个软件,OpenSSL 也提供了一些很好用的工具来测试你的邮件服务器。 为了简单起见,在这一系列的教程中,我们将指导大家安装一个在局域网上的邮件服务器,你应该拥有一个局域网内的域名服务,并确保它是启用且正常工作的,查看这篇“使用 dnsmasq 为局域网轻松提供 DNS 服务”会有些帮助,然后,你就可以通过注册域名并相应地配置防火墙,来将这台局域网服务器变成互联网可访问邮件服务器。这个过程网上已经有很多很详细的教程了,这里不再赘述,请大家继续跟着教程进行即可。 一些术语 让我们先来快速了解一些术语,因为当我们了解了这些术语的时候就能知道这些见鬼的东西到底是什么。 :D MTA:邮件传输代理(Mail Transfer Agent),基于 SMTP 协议(简单邮件传输协议)的服务端,比如 Postfix、Exim、Sendmail 等。SMTP 服务端彼此之间进行相互通信(LCTT 译注 : 详情请阅读维基百科)。 MUA: 邮件用户代理(Mail User Agent),你本地的邮件客户端,例如 : Evolution、KMail、Claws Mail 或者 Thunderbird(LCTT 译注 : 例如国内的 Foxmail)。 POP3:邮局协议(Post-Office Protocol)版本 3,将邮件从 SMTP 服务器传输到你的邮件客户端的的最简单的协议。POP 服务端是非常简单小巧的,单一的一台机器可以为数以千计的用户提供服务。 IMAP: 交互式消息访问协议(Interactive Message Access Protocol),许多企业使用这个协议因为邮件可以被保存在服务器上,而用户不必担心会丢失消息。IMAP 服务器需要大量的内存和存储空间。 TLS:传输套接层(Transport socket layer)是 SSL(安全套接层(Secure Sockets Layer))的改良版,为 SASL 身份认证提供了加密的传输服务层。 SASL:简单身份认证与安全层(Simple Authentication and Security Layer),用于认证用户。SASL进行身份认证,而上面说的 TLS 提供认证数据的加密传输。 StartTLS: 也被称为伺机 TLS 。如果服务器双方都支持 SSL/TLS,StartTLS 就会将纯文本连接升级为加密连接(TLS 或 SSL)。如果有一方不支持加密,则使用明文传输。StartTLS 会使用标准的未加密端口 25 (SMTP)、 110(POP3)和 143 (IMAP)而不是对应的加密端口 465(SMTP)、995(POP3) 和 993 (IMAP)。 啊,我们仍然有 sendmail 绝大多数的 Linux 版本仍然还保留着 /usr/sbin/sendmail 。 这是在那个 MTA 只有一个 sendmail 的古代遗留下来的痕迹。在大多数 Linux 发行版中,/usr/sbin/sendmail 会符号链接到你安装的 MTA 软件上。如果你的 Linux 中有它,不用管它,你的发行版会自己处理好的。 安装 Postfix 使用 apt-get install postfix 来做基本安装时要注意(图 1),安装程序会打开一个向导,询问你想要搭建的服务器类型,你要选择“Internet Server”,虽然这里是局域网服务器。它会让你输入完全限定的服务器域名(例如: myserver.mydomain.net)。对于局域网服务器,假设你的域名服务已经正确配置,(我多次提到这个是因为经常有人在这里出现错误),你也可以只使用主机名。 图 1:Postfix 的配置。 Ubuntu 系统会为 Postfix 创建一个配置文件,并启动三个守护进程 : master、qmgr 和 pickup,这里没用一个叫 Postfix 的命令或守护进程。(LCTT 译注:名为 postfix 的命令是管理命令。) $psax 6494?Ss0:00/usr/lib/postfix/master 6497?S0:00pickup-l-tunix-u-c 6498?S0:00qmgr-l-tunix-u 你可以使用 Postfix 内置的配置语法检查来测试你的配置文件,如果没用发现语法错误,不会输出任何内容。 $sudopostfixcheck [sudo]passwordforcarla: 使用 netstat 来验证 postfix 是否正在监听 25 端口。 $netstat-ant tcp000.0.0.0:250.0.0.0:*LISTEN tcp600:::25:::*LISTEN 现在让我们再操起古老的 telnet 来进行测试 : $telnetmyserver25 Trying127.0.1.1... Connectedtomyserver. Escapecharacteris'^]'. 220myserverESMTPPostfix(Ubuntu) EHLOmyserver 250-myserver 250-PIPELINING 250-SIZE10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250DSN ^] telnet> 嘿,我们已经验证了我们的服务器名,而且 Postfix 正在监听 SMTP 的 25 端口而且响应了我们键入的命令。 按下 ^] 终止连接,返回 telnet。输入 quit 来退出 telnet。输出的 ESMTP(扩展的 SMTP ) 250 状态码如下。 (LCTT 译注: ESMTP (Extended SMTP),即扩展 SMTP,就是对标准 SMTP 协议进行的扩展。详情请阅读维基百科) PIPELINING 允许多个命令流式发出,而不必对每个命令作出响应。 SIZE 表示服务器可接收的最大消息大小。 VRFY 可以告诉客户端某一个特定的邮箱地址是否存在,这通常应该被取消,因为这是一个安全漏洞。 ETRN 适用于非持久互联网连接的服务器。这样的站点可以使用 ETRN 从上游服务器请求邮件投递,Postfix 可以配置成延迟投递邮件到 ETRN 客户端。 STARTTLS (详情见上述说明)。 ENHANCEDSTATUSCODES,服务器支撑增强型的状态码和错误码。 8BITMIME,支持 8 位 MIME,这意味着完整的 ASCII 字符集。最初,原始的 ASCII 是 7 位。 DSN,投递状态通知,用于通知你投递时的错误。 Postfix 的主配置文件是: /etc/postfix/main.cf,这个文件是安装程序创建的,可以参考这个资料来查看完整的 main.cf 参数列表, /etc/postfix/postfix-files 这个文件描述了 Postfix 完整的安装文件。 下一篇教程我们会讲解 Dovecot 的安装和测试,然后会给我们自己发送一些邮件。 作者:CARLA SCHRODER 来源:51CTO

优秀的个人博客,低调大师

科普:KVM与XEN虚拟化环境究竟有何不同?

虚拟化的概念在近些年收到了很大程度上的普及,求其原因很简单:虚拟化能够最大程度利用资源,为企业节约成本。目前市面较受欢迎的虚拟架构主要有KVM、XEN和VMware,其中,KVM和XEN都是免费开源的,而VMware则是付费的,所以,此次笔者只对比KVM、XEN之间的差别。 如果给KVM、XEN简单归类的话,KVM是完全虚拟化技术又叫硬件辅助虚拟化技术(Full Virtualization)。相反,XEN是半虚拟化技术(paravirtualization),也叫做准虚拟化技术。 全虚拟化技术(左)与半虚拟化技术(右) KVM是在虚拟机和硬件之间加了一个软件层--Hypervisor,或者叫做虚拟机管理程序(VMM),KVM的hypervisor是直接运行在物理硬件之上的。XEN是在全虚拟化的基础上,把客户操作系统进行了修改,增加了一个专门的API,使客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作。 KVM架构 也有人将KVM架构分解为两部分:KVM驱动,即linux kernel的一个模块和Qemu,即用于模拟虚拟机的用户空间组件,提供I/O设备模型,访问外设的途径。其最大的优势在于KVM使用Linux内核集成的,所以速度较快,同时,KVM是完全虚拟的,所以不需要区分pv和hvm,可以安装各种Linux发行版和Windows发行版,可以运行在支持虚拟化扩展的X86和X86-64硬件架构上。 XEN实际上出现的时间要早于KVM,它是由剑桥大学开发的,一个开源的虚拟机监视器。半虚拟化架构决定了它注定不是真正的虚拟机,只是自己运行了一个内核的例子,同时区分Xen+pv+和Xen+hvm,其中pv只支持Linux,而hvm则支持Windows系统。除此之外,XEN还拥有更好的可用资源、平台支持、可管理性、实施、支持动态迁移和性能基准等优势。 目前来看,从性能和成熟度上而言,XEN要优于KVM,但是红帽等公司在KVM上的投入也越来越多,但诸如AWS、阿里云等云服务提供商仍然使用的XEN半虚拟化技术,XEN也积累了很多优秀的解决方案,稳定性更优,而KVM最大的好处就在于它是与Linux内核集成的,可以说KVM与ESX拥有相同的架构,这也让KVM今年得到大批用户的支持。 虚拟化拓扑架构图(图片来源sinosoft) 在网络技术、云计算迅速发展的今天,数据量迅速增加,虚拟化技术也得到了发展的土壤,甚至可以说云技术就是新型的虚拟化技术。无论软件虚拟化还是硬件虚拟化都受到企业的关注,而虚拟化所带来的降低企业TCO,快速部署等优势也让其需求不断增加。 未来虚拟化技术将想着开源的XEN与KVM发展,还是闭源的VMware更胜一筹,在开源的世界中,XEN能否守住阵营,KVM又将如何发展都值得我们关注。 本文转自d1net(转载)

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册