2010-06-28 85 views
1

我一直在寻找Android的javax.net.ssl包,但我仍然困惑于它如何与底层的JNI胶水一起工作。Android SSL JNI结构?

从我看到的,javax.net.ssl包(/ libcore/x-net/src/main/java/javax/net/ssl)下的所有类都是抽象的,不直接实现功能。

以上所有功能都是在org.apache.harmony.xnet.provider.jsse文件夹(/ libcore/x-net/src/main/java/org/apache/harmony/xnet/provider/jsse),并且这个实现调用底层的JNI C代码。

任何人都可以告诉我提供程序如何链接到抽象类,因为用户直接从他们的代码调用抽象类。我认为通常用户会调用子类,但在这种情况下,它似乎是相反的。

谢谢,
克里斯

+0

或许这是与一个Java提供?含义htat apache/harmony包是javax.net.ssl包的服务的“提供者”?如果是这样,它是如何配合的? – Chrisc 2010-06-29 16:54:17

回答

0

好了,经过一番研究,我想我已经得到了我的头周围包裹着这个。它看起来像Apache Harmony充当javax.net.ssl包的Java安全提供程序。

由于OpenSSL正在使用,所以必须使用JNI来允许Java与OpenSSL的C代码进行通信。

的提供者在一个名为“java.security”文件中定义,并增加了供应商的Java的一个很好的概述,可以在此链接中找到:http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html