要想学习网络编程,需要学习计算机网络基础知识。比如,TCP/IP 协议栈工作原理,分组在路由器中的存储、转发原理,可靠协议 TCP 的工作原理,不可靠协议 UDP 的工作原理等。由于网络协议栈的发展是离不开操作系统的,所以需要学习操作系统的基础知识,比如进程、线程的基本概念。学习编程必须要动手实践,只有当你亲自上机调试一些程序,你才能体会的更深刻,掌握的更牢固。最后,你需要学会使用 tcpdump 和 Wireshark 这两个抓包工具,这俩个工具是解决很多网络相关问题的利器,可以说是开发人员工具箱里面必备工具。tcpdump 是 linux 系统自带的工具,而 Wireshark 是具有图形界面的工具,一般在 Windows 系统上使用。同时,要学会应用 ipconfig、netstat 等网络工具。本系列文章的所有示例代码路径:https://github.com/haska1025/imooc-sock-core-tech/tree/master/java_netprogramming
常用选项命令选项说明-no-snapshot-load执行冷启动,并在退出时保存模拟器状态。-no-snapshot-save执行快速启动,但在退出时不保存模拟器状态。-no-snapshot彻底停用快速启动功能。-camera-back-camera-front设置后置或前置相机的模拟模式。emulated:模拟器在软件中模拟相机。webcamn:模拟器使用连接到开发计算机的摄像头,由数字指定,例如 webcam0。none:在虚拟设备中停用相机。-webcam-list列出开发计算机上可用于模拟的摄像头。-memory指定物理 RAM 大小,范围为从 128 MB 到 4096 MB。-sdcard指定 SD 卡分区映像文件的文件名和路径。-wipe-data删除用户数据并从初始数据文件中复制数据。-debug启用或停用一个或多个标记的调试消息显示。-logcat启用一个或多个标记的 logcat 消息显示,并将其写入终端窗口。-show-kernel在终端窗口中显示内核调试消息。-verbose将模拟器初始化消息输出到终端窗口。-dns-server使用指定的 DNS 服务器。-http-proxy通过指定的 HTTP/HTTPS 代理进行所有 TCP 连接。-netdelay模拟设置网络延迟-netfast停用网络节流功能。-netspeed设置网络速度模拟。-port设置用于控制台和 adb 的 TCP 端口号。-tcpdump捕获网络数据包并将其存储在文件中。-accel配置模拟器虚拟机加速。-accel-check检查是否已安装模拟器虚拟机加速所需的管理程序(HAXM 或 KVM)。-engine指定模拟器引擎:auto:自动选择引擎(默认值)。classic:使用较旧的 QEMU 1 引擎。qemu2:使用较新的 QEMU 2 引擎。-gpu选择 GPU 模拟模式。-version显示模拟器版本号。-no-boot-anim在模拟器启动期间停用启动动画以加快启动速度。-screen设置模拟触摸屏模式。touch:模拟触摸屏(默认值)。multi-touch:模拟多点触控屏幕。no-touch:停用触摸屏和多点触控屏幕模拟。高级选项命令选项说明-bootchart启用 bootchart,设有超时(以秒为单位)。-cache指定缓存分区映像文件。-cache-size设置缓存分区大小(以 MB 为单位)。-data设置用户数据分区映像文件。-datadir使用绝对路径指定数据目录。-force-32bit在 64 位平台上使用 32 位模拟器。-help-disk-images获取有关磁盘映像的帮助。-help-char-devices获取有关字符 device 规范的帮助。-help-sdk-images获取与应用开发者相关的磁盘映像的帮助。-help-build-images获取与平台开发者相关的磁盘映像的帮助。-initdata指定数据分区的初始版本。-kernel使用特定的模拟内核。-noaudio停用对此虚拟设备的音频支持。-nocache启动没有缓存分区的模拟器。-no-snapshot禁止自动加载和保存操作。-no-snapshot-load阻止模拟器从快照存储加载 AVD 状态。-no-snapshot-save阻止模拟器在退出时将 AVD 状态保存到快照。-no-window停用模拟器上的图形窗口显示。-partition-size指定系统数据分区大小(以 MB 为单位)。-prop在启动时在模拟器中设置 Android 系统属性。-ramdisk指定 ramdisk 启动映像。-shell在当前终端上创建根 shell 控制台。-sysdir使用绝对路径指定系统目录。-system指定初始系统文件。-writable-system使用此选项在模拟会话期间创建可写系统映像。