李鼎

Results 125 comments of 李鼎

See [`Android 4.4`的`InetAddress`类源代码](http://code.metager.de/source/xref/android/4.4/libcore/luni/src/main/java/java/net/InetAddress.java),和`JRE`一样也包含了Java-side DNS cache的功能。 PS: 实现和`JRE`的不同。 以目前对`Android`开发的了解,目前没有`dns-cache-manipulator`的需求,这个Issue暂时挂起吧。 :smile_cat:

@wangkaisdu 多谢反馈 看了一下`Android`的`dns cache`,从`Android 4`开始主要交由`c lib`: `java lib`的`dns cache`只由静态字段维护了`LRU Map`大小16项,时长2秒。 要想想怎么hack :smile: 有好的思路欢迎交流~ PS:修改`vm dns cache`可以对应用使用透明,值得搞一下。

@wangkaisdu 好!有空就来聊聊。 ## 相关资料 - 国内最大的域名解析商`DNSPod`为`app`开发者推出了[`D+(http dns)`](https://www.dnspod.cn/httpdns) - [`android-httpdns`](https://github.com/onlytiancai/android-httpdns) ,提供了`D+`的封装。封装方式是提供了一个工具方法,完成常用操作。工具方法的实现需要主动调用`httpdns`: - 不透明,即走[`D+`](https://www.dnspod.cn/httpdns)工具方法的实现(应用实现)需要主动调用httpdns - 因为不透明,其它使用域名的网络库 不能直接用上`D+`的域名解析能力,即需要一个一个修改或特殊配置网络库。

顶!同感~ 目前`HttpDns`的使用方式,确实是用户不方便友好、功能不全。值得深入研究搞一把~ 修改`Android`系统类`InetAddress`/`AddressCache`是一种可以 无缝的方式。咨询了 @Trinea ,提到 [alibaba/dexposed](https://github.com/alibaba/dexposed) 可以修改系统类,可以研究一下后面的解法。

@wangkaisdu > 我也主要是想完善httpdns.所以想搞个无缝埋点的,现在的方式用户需要操心的事很多。比如代理,https就玩不转 关于 > 看了一下Android的dns cache,从Android 4开始主要交由c lib: > java lib的dns cache只由静态字段维护了LRU Map大小16项,时长2秒。 可以考虑`C`实现(`NDK`),做成`Android Lib`(`AAR`),这个应该难度不大,有空就搞一下 :smile_cat:

是的。 hook `C`的代码,或者改`C`内存里的`DNS Cache`的数据。 你可以一起找找Android c是如何管理`DNS Cache`的资料。

关于异步执行上下文的问题,可以看看 - https://github.com/alibaba/transmittable-thread-local/issues/123

`TTL v2.14.0+`支持注册其它的`ThreadLocal`(如`Netty FastThreadLocal`),可以由外部来实现支持。 https://github.com/alibaba/transmittable-thread-local/releases/tag/v2.14.0 这个 issue 先 close了。