Я недавно изучал, почему браузер в ОС Android
не поддерживает доступ к веб-сайтам IPv6 через URL-адреса IPv6 и
Я думаю, что это связано с нативным методом getaddrinfo
, вызываемым android/dalvik/libcore/luni/src/main/java/java/net/
InetAddress.java
, который затем вызывается приложением Browser.
выдает UnknownHostException
при попытке конвертировать URL IPv6 в
его адреса.
Начиная со строки 507, код InetAddress.java
:
try {
InetAddress[] addresses = bytesToInetAddresses(getaddrinfo(host), host);
addressCache.put(host, addresses);
return addresses;
и нативный метод объявлен в строке 516 как:
private static native byte[][] getaddrinfo(String name)
throws UnknownHostException;
Но я не нашел ни одного намека на то, где реализация этого
родной метод getaddrinfo
, хотя я обнаружил, что есть два файла
по имени getaddrinfo.c
. Здесь следует правилам JNI или NDK? Если
Итак, заявление System.loadLibary("NameOfTheLibrary")
должно быть
нашел, но не нашел.
Любой мог бы дать мне подсказку по поиску реализации этого
нативный метод getaddrinfo
?
Полный исходный файл InetAddress.java
можно найти по адресу http://ooowjc.wikispaces.com/Attachments