Android开发笔记(五)
-- Android底层通信调研(部分)
Socket/ServerSocket.java (java.net)
=> SocketImpl.java (java.net)
=> PlainSocketImpl.java (java.net)
=> libcore.io.IoBridge (libcore.io)
SocketChannel.java (java.nio.channels)
=> SocketChannelImpl.java (java.nio)
=> libcore.io.IoBridge (libcore.io)
> 资料
需要使用Git版本工具从网上获取,具体操作可以在网上搜索ca。话说Linux的内核代码绝对是精良之作,值得学习的地方太多了:D ~!截图如下:
Android开发的SDK源码,可以用Eclipse的“Android SDK Manager”帮助获取得到,都是Java源文件。分类很清晰,一看即明白那种所以不必多说了。截图如下:
这里值得一提的是,这些源码也只是包装了下,对于更加底层一点的内容没包含在里面比如IoBridge类等libcore的代码。
> Java-Socket的来源
以下内容,就简单地针对Socket源码(封装)实现逻辑的层次说明。
Socket/ServerSocket.java (java.net)
=> SocketImpl.java (java.net)
=> PlainSocketImpl.java (java.net)
=> libcore.io.IoBridge (libcore.io)
SocketChannel.java (java.nio.channels)
=> SocketChannelImpl.java (java.nio)
=> libcore.io.IoBridge (libcore.io)
libcore OS => libcore.io.Posix.java => libcore_io_Posix.cpp => linux posix api <sys/socket.h>
libcore IoBridge => libcore/io/Posix.java => libcore_io_Posix.cpp => linux posix api <sys/socket.h>
引用别人的一张描述的层次图,如下:
Posix.java通过JNI (libcore_io_Posix.cpp)调用linux的底层网络通信接口posix API,例如accept, sendto, recvfrom等。
上面整理的内容都是概要说明,主要想帮助我们如何快速地上手、研究android底层结构与细节。至于细节的了解说明,需后续针对性地进行分析解读(源码)。后续再分享。
(完)
没有评论:
发表评论