2012年9月20日星期四

Android开发笔记(五)


Android开发笔记(五)

    -- Android底层通信调研(部分)

> 资料
      Android 底层内核的实现源码,即Linux的Kernel代码,纯C实现的。来自网上https://android.googlesource.com/kernel/common
     需要使用Git版本工具从网上获取,具体操作可以在网上搜索ca。话说Linux的内核代码绝对是精良之作,值得学习的地方太多了:D ~!截图如下:

     
     
     Android开发的SDK源码,可以用Eclipse的“Android SDK Manager”帮助获取得到,都是Java源文件。分类很清晰,一看即明白那种所以不必多说了。截图如下:

     
     这里值得一提的是,这些源码也只是包装了下,对于更加底层一点的内容没包含在里面比如IoBridge类等libcore的代码。
     可参考在线源码http://source-android.frandroid.com/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底层结构与细节。至于细节的了解说明,需后续针对性地进行分析解读(源码)。后续再分享。

    (完)

没有评论:

发表评论