2010-06-28 84 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