Java Android SSL JNI结构?

Java Android SSL JNI结构?,java,c,android,java-native-interface,Java,C,Android,Java Native Interface,我一直在看Android的javax.net.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/jss

我一直在看Android的javax.net.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)中实现,该实现调用底层JNIC代码

如果用户直接从他们的代码调用抽象类,有人能告诉我提供者是如何链接到抽象类的吗。我认为用户通常会调用子类,但在本例中,情况似乎相反

谢谢,

克里斯

好吧,经过一些研究,我想我已经对这件事了如指掌了。看起来Apache Harmony充当了javax.net.ssl包的Java安全提供者

因为OpenSSL是在幕后使用的,所以必须使用JNI来允许Java与OpenSSL的C代码进行通信


提供者是在一个名为“java.security”的文件中定义的,在下面的链接中可以找到向java添加提供者的良好概述:

也许它与java提供者有关?这意味着apache/harmony包是javax.net.ssl包服务的“提供者”吗?如果是,它如何配合?