自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1181)
  • 资源 (46)
  • 收藏
  • 关注

原创 VSCode 和 CLion

各个 IntelliSense 都有自己的代码格式化,可以不使用 clang-format 进行格式化,此处列出备用。提供,以在 Windows、Linux 和 macOS 上实现跨平台 C 和 C++ 开发。选择活动栏上的扩展视图图标或使用键盘快捷键 ( Ctrl+Shift+X )。Visual Studio Code 的 C/C++ 支持由。打开终端(cmd或bash),进入当前代码所在的文件夹,输入。如果 designer 打不开 ui 文件,可以把。实参(Arguments)改为。

2023-09-25 10:34:36 931

原创 Go 围炉札记

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

2023-09-22 09:10:04 467

原创 Linux 知识

添加 PPA 源, PPA 全称为 Personal Package Archives(个人软件包档案)

2023-09-21 11:08:06 616

原创 Qt 围炉札记

【Qt调试技巧】Profile配置使用及一些坑QT运行时的Debug、Release、Profile选项区别Qt Creator release版本进行调试【Qt调试技巧】如何在Release下调试Qt程序?Qt如何在Release编译下怎么调试?怎么生成pdb文件Qt在Debug或者Release模式下怎么进入断点QT中配置MSVC编译环境 以及 VS中配置QT开发环境QT_Kits的MSVC2017不能用QT安装勾选了MSVC编译器,但是MSVC编译器灰色解决办法   

2023-09-14 13:55:40 344

原创 C++ 围炉札记

看不出右值引用对普通基本数据有任何实际意义,但是大量文章使用基本数据来讲解,完全没有讲到有意义的点子上,这样过于简化讲解,容易误导、困惑初学者。右值引用真正用意,是用于解决类对象内部拥有的动态数据的回收(转移),提高程序运行效率。这个简单的例子揭示了移动语义存在的价值,因为有些情况下,数据是可以转移所有权的,而不必拷贝一份。这里,我们实现了一个简单的数组类,自定义了拷贝构造函数和移动构造函数。说到实现,其实是变量替换,临时变量直接被构建在引用变量的位置,生命周期自然相同了。但移动后,需要把旧对象的。

2023-09-08 10:31:23 336

原创 机器学习围炉札记

AI Studio:飞桨官网:

2023-08-10 14:49:47 284

原创 软件升级相关

是一款免费的开源exe升级工具,支持自动下载最新的程序包、自动安装最新的程序包、自动卸载旧版本的程序等功能。是一款免费的开源exe升级工具,支持自动下载最新的程序包、自动安装最新的程序包、自动卸载旧版本的程序等功能。2)升级检测:当程序启动时,Squirrel会检测是否有新的程序包,并自动下载最新的程序包。2)升级检测:当程序启动时,Sparkle会检测是否有新的程序包,并自动下载最新的程序包。3)安装新程序包:Squirrel会自动安装最新的程序包,并将旧版本的程序卸载。

2023-07-25 09:35:49 427

原创 Linux 内核源代码情景分析(四)

也就是说,还不能按一定的路径名访问其中特 定的节点或文件(虽然作为 “设备” 是可访问的).只有把它 “安装” 到计算机系统的文件系统中某个 节点上,才能使设备上的文件和节点成为可访问的。一般而言,文件系统的结构就好像一棵倒立的树,不过由 于可能存在着的节点间的 “连接” 和 “符号连接” 而并不一定是严格的图论意义上的 “树”。同一个物理的设备,如果有两组不同的驱动程序,在 逻辑上就被视作两种不同的设备而在文件系统中有两个不同的 “设备文件1次设备号则指明该设备是 同种设备中的第几个。

2023-07-05 10:13:59 386

原创 Linux 内核源代码情景分析(三)

首先,其中“文件”的含义就自狭义与广义之分。以在网络环境中用来收发报文的“插口”机制来说,它就并不代表存储着的信息,但是插口的发送端“消耗”信息,而接收端则“产出”信息,所以把插口看成文件是合乎逻辑的。这样,用户程序就可以把所有的文件都看作一致的、抽象的 “VFS文件” ,通过这些系统调用对文件进行操作,而无需关心具体的文件属于什么文件系统以及具体文件系统的设计和实现。这样,就可以对用户程序隐去各种不同文件系统的实现细节,为用户程序提供一个统一的、抽象的、虚拟的文件系统界面,这就是所谓“虚拟文件系统”

2023-07-04 10:34:04 495

原创 Linux 内核源代码情景分析(二)

读者要注意,不要把这里的“线程”与有些系统中在用户空间的同一进程内实现的 “线程” 相混淆。而且,既然 Linux 内核提供了对线程的支持,一般也就没有必要再在进程内部,即用户空间中自行实现线程。之所以有这样的情况是因为 Linux 源自 Unix 和 i386 系统结构,而 Unix 中的进程在 Intel 的技术资料中则称为“任务”(严格说来有点差别,但是对 Linux 和 Unix 的实现来说是一码事)。另一方面,进程与线程的区分也不是十分严格的,一般在讲到进程时常常也包括了线程。

2023-06-29 17:31:27 695

原创 Linux 内核源代码情景分析(一)

可是,从系统 (PC) 的 CPU 的角度来说,它只知道这片物理存储区间是从 0x0000 f000 0000 0000 开始的,这就是该区间的物理地址,或者说 “总线地址”。其次,这样的需求只发生于对外部设备的操作,而这是内核的事,所以相应的虚存区间是在系统空间 (3GB 以上)。这里读者可能会有个问题,185 行的 if 语句检查的是当前的起始地址加上区间大小须小于下一个区间的起始地址,这是很好理解的。则不同,首先,我们先有一个物理存储区间,其地址就是外设卡上的存储器出现在总线上的地址。

2023-06-28 16:43:18 870

原创 Linux 设备驱动程序(四)

【代码】Linux 设备驱动程序(四)

2023-06-25 11:33:46 729

原创 深入理解Linux虚拟内存管理(九)

这是文件系统提供的回调函数,用于读取超级块。对于普通的文件系统,这可以从磁盘读取细节信息,但是,由于这个文件系统基于。这个函数更新文件系统中可用块和索引节点的数量。在文件系统挂载和卸载时进行设置。这是创建新文件时位于最顶层的函数。这个函数用于注册和挂载。

2023-06-20 15:42:52 880

原创 Modbus 红尘幻海

Modbus 简介Modbus协议简易入门教程详解ModBusmodbus 官网RS232/RS485的特性与区别分析【Qt】modbus之串口模式写操作【Qt Modbus通信】QModbus实现modbus的主机功能 源码分享【Qt】QModbusDevice类

2023-06-14 10:36:58 70

原创 深入理解Linux虚拟内存管理(七)

虽然有点容易混淆,但它们实际上都是一样的。将所有的已映射区域删除,而且所有的页表也将会销毁,因为已经没有任何使用用户空间部分的使用者。这个函数非常大,所以把它分成几个部分。链接到相应链表中的高层函数。它负责获取所需的锁来保证插入的安全性。这个函数负责在给定地址找到一个合适的位置来插入。它通过实际的返回和函数参数返回一系列的信息。插入地址空间的顶层函数。是前一个节点,这里需要它是因为链表是个单链表。的简单封装函数,它完成如下大部分工作。个链表中的辅助函数,这些链表把。链接到一个共享文件映射的链表中。

2023-06-13 16:59:31 997

原创 深入理解Linux虚拟内存管理(六)

当卸载某个模块时,如果创建了高速缓存,则它负责销毁高速缓存。内核代码经常不销毁它自己的高速缓存,因为它们在整个系统生命周期中都一直存在。这在销毁高速缓存时比较重要,在那时,释放的内存量并不很重要,重要的是安全地删除高速缓存,且不泄漏内存。在创建高速缓存时,可以存放多少个对象以及需要耗费多少空间是确定的。这个函数负责创建一个新的高速缓存,然后根据大小进行批量处理。这在销毁高速缓存时比较重要,在那时它不关心释放的页面数,而只关心高速缓存是否为空。这个函数进行基本的调试检查,然后获取高速缓存描述符,接着释放。

2023-06-10 10:08:10 900

原创 信息收藏(工具类)

为“全角空格” 为“全角空格” 为“不换行空格”123。

2023-06-09 09:19:17 122

原创 深入理解Linux虚拟内存管理(八)

其原因是页面只在此处自动映射,那么在解除映射以前只会在很小的范围且较短的时间内被使用。保留页面在那里是安全的,因为在解除映射之后不会再引用它们,而对同一个槽的另一个映射会简单地替换它。它是创建弹性缓冲区的高层函数。在系统启动时调用它,接着就删除它的代码,因为不再需要它。由于缓冲区用于从高端内存复制数据到设备,除了回收资源没有其他更多的任务待处理。在数据从设备读出且待复制到高端内存时,调用该函数。在设备完成写数据到弹性缓冲区后,从中断中调用该函数。它首先尝试从伙伴分配器分配页面,如果失败则从紧急池中分配。

2023-06-08 17:50:25 1138

原创 深入理解Linux虚拟内存管理(五)

这些函数与页面分配的辅助函数非常相似,因为它们也不完成 “实际” 的工作,它们依赖于。这个函数将完成实际的释放页面工作,并在可能的情况下合并伙伴。这个函数的调用图如图 6.4 所示。是一个以地址为参数的辅助函数。描述,具体可参考 ⇒。函数来完成实际的释放。

2023-06-07 14:59:12 1062

原创 深入理解Linux虚拟内存管理(四)

一旦确定了可用物理页面的界限,系统将从两个引导内存的初始化函数中选择一个,并以待初始化的节点的起始和终止PFN作为调用参数。在UMA结构中,用于初始化,而在NUMA则初始化一个具体的节点。这两个函数主要通过调用来完成实际工作。内核函数首先要把插入到pgdat_list链表中,因为这个节点在函数末尾很快就会用到。然后它记录下该节点的起始和结束地址(该节点与有关)并且分配一个位图来表示页面的分配情况。

2023-06-05 16:05:47 710

原创 深入理解Linux虚拟内存管理(三)

file_operations 由 shmem_file_operations 调用,它提供函数实现 mmap(),read(,write()和。由一个类型为 shm_vm_ops 的 vm_operations_struct()来维护,它分别注册了 open())和 close())inode i_mapping a_ops,inode i_op 和 inode→i_fop 字段。同样 tmpfs 也没有使用 shmem_prepare_write()和 shmem_commit_write(,

2023-06-03 10:24:23 373

原创 深入理解Linux虚拟内存管理(二)

在 SMP 系统中,有另外的方案来利用高速缓存,即每一个高速缓存都有一个小的对象数组,而这些对象就是为每一个 CPU。分配器的基本思想是:将内核中经常使用的对象放到高速缓存中,并且由系统保持为初始的可利用状态。由连续的页面帧组成,它们被划分成许多小的块以存放由高速缓存所管理的数据结构和对象。分配器的论文,并进一步做了大量的改进,这在他最近的论文中 [BA01] 有所描述。在编译的时候,如 果设置了选项 CONFIG_SLAB_DEBUG,slab 分配器会提供额外的。初始化内核中许多数据结构所需要的。

2023-05-31 16:09:59 1214

原创 深入理解Linux虚拟内存管理(一)

本文基于 Linux 2.4.22。开始启程管理源码浏览代码阅读代码提交补丁。

2023-05-25 15:27:11 2294

原创 Linux 设备驱动程序(三)

内核逻辑地址组成了内核的常规地址空间。在大多数体系架构中,逻辑地址和与其相关联的物理地址的不同,仅仅是在它们之间存在一个固定的偏多量。逻辑地址使用硬件内建的指针大小,因此在安装了大量内存的。内核虚拟地址和逻辑地址的相同之处在于,它们都将内核空间的地址映射到物理地址上。内核虚拟地址与物理地址的映射不必是线性的和一对一的,而这是逻辑地址空间的特点。所有的逻辑地址都是内核虚拟地址,但是许多内核虚拟地址不是逻辑地址。位的,这取决于硬件的体系架构。分配的内存具有一个虚拟地址(但并不存在直接的物理映射)。

2023-05-23 16:55:32 844

原创 Linux 设备驱动程序(二)

顶半部处理例程和底半部处理例程之间最大的不同,就是当底半部处理例程执行时,所有的中断都是打开的 —— 这就是所谓的在更安全时间内运行。信号线不能为一个以上的设备服务,它们从来都是不够用的,结果,许多没有经验的用户总是花费很多时间试图找到一种方法使所有的硬件能够协同工作,因此他们不得不总是打开自己计算机的外壳。无论何时,当两个或者更多的驱动程序共享同一根中断信号线,而硬件又通过这根信号线中断处理器时,内核会调用每一个为这个中断注册的处理例程,并将它们自己的。未被设置),将重新启用硬件中断,并调用处理例程。

2023-05-16 17:34:18 748

原创 深入理解 Linux 内核(二)

在请求分配的情况下,该部分搜索一个能满足所请求的一组连续页框内存的管理区(参见后面的 “管理区分配器” 一节)。定时器的警告:因为对定时器函数的检查总是由可延迟函数进行,而可延迟函数被激活以后很长时间才能被执行,因此,内核不能确保定时器面数正好在定时到期时开始执行,而只能保证在适当的时间执行它们,或者假定延迟到几百毫秒之后执行它们。结构中,把物理内存分组在一个单独的节点中可能显得没有用处,但是,这种方式有助于内存代码的处理更具有可移植性,因为内核假定在所有的体系结构中物理内存都被划分为一个或多个节点。

2023-05-05 10:47:15 610 1

原创 Linux设备驱动开发详解

本文主要用来摘录《Linux设备驱动开发详解第四版》一书中学习知识点,本书基于 Linux 4.0 版本,源代码摘录基于 Linux 4.15.18 ,两者之间可能有些出入。资源链接:宋宝华《Linux设备驱动开发详解》设备驱动的作用无操作系统时的设备驱动有操作系统时的设备驱动Linux设备驱动Linux设备驱动的开发环境构建设备驱动Hello World:LED驱动。

2023-04-27 10:26:54 531

原创 Linux 设备驱动程序(一)

本文主要用来摘录《Linux 设备驱动程序第三版》一书中学习知识点,本书基于 Linux 2.6.10 版本,源代码摘录基于 Linux 2.6.34 ,两者之间可能有些出入。驱动模块构建【视频】 Linux之驱动开发篇Linux内核模块分析(module_init宏)Linux驱动编程中EXPORT_SYMBOL() 介绍Linux EXPORT_SYMBOL宏详解return 0;

2023-04-27 10:26:26 348

原创 深入理解 Linux 内核

本文主要用来摘录《深入理解 Linux 内核》一书中学习知识点,本书基于 Linux 2.6.11 版本,源代码摘录基于 Linux 2.6.34 ,两者之间可能有些出入。

2023-04-26 16:24:43 3745 2

原创 Linux 内核设计与实现

那样寄存器较少的硬件体系结构只要通过栈指针就能计算出它的位置,而避免使用额外的寄存器专门记录。本章主要用来摘录《Linux 内核设计与实现》一书中学习知识点,其基于。包含了一个具体进程的所有信息。在 2.6 以前的内核中,各个进程的。存放在它们内核栈的尾端。这样做是为了让那些像。,所以只需要在栈底创建一个新的结构。

2023-04-21 17:56:29 1781 1

原创 Linux内核学习

仅仅只在kconfig中添加选项,只会在菜单界面中显示,即使此时选择y或m,也不会编译文件。make menuconfig 配置好的文件保存为.config文件,直接以当前运行的X86平台的配置作为参考(cp /boot/config-2.6.18.el5 .config),若要配置2440开发板,则可以参考arch/arm/configs/s3c2410_defconfig 将其拷贝到内核源代码根目录(cp arch/arm/configs/s3c2410_defconfig .config)

2023-04-21 16:52:36 1100

原创 C 语言与嵌入汇编

MASM (微软汇编)是Windows流行的汇编。SET(CMAKE_ASM_NASM_SOURCE_FILE_EXTENSIONS asm) # 设置NASM的文件扩展名为asm。NASM (网际汇编器)是Linux的流行汇编,但可以用的Windows了。EFLAGS(保存的是根据运算得到的结果设置的条件码ZF,CF,SF,OF)EIP(程序计数器,存储的是将要执行的下一条指令放在内存中的地址)EBX(基址寄存器,在内存中寻址时存放基址)EAX(累加器,是算术运算的主要寄存器)EDX(数据寄存器)

2023-04-21 16:49:24 1588

原创 Linux0.11 信号(十二)

信号机制是 Linux 0.11 为进程提供的一套"局部的类中断机制",即在进程执行的过程中,如果系统发现某个进程接收到了信号,就暂时打断进程的执行,转而去执行该进程的信号处理程序,处理完毕后,再从进程"被打断"之处继续执行。

2023-04-14 18:00:34 533

原创 Linux0.11 管道(十一)

现在Linux进程间通信方式包括:匿名管道(pipe)及有名管道(fifo)、信号(signal)、消息队列()、共享内存()、信号量(semaphore)、套接字(socket管道:把一个程序的输出直接连接到另一个程序的输入。匿名管道只能用于具有亲缘关系的进程之间的通信(父进程和子进程之间)单工通信模式,固定读端和写端特殊的文件,可以使用普通的read()、write()等函数,不属于文件系统,只存在于系统中。

2023-04-14 10:56:18 449

原创 Linux0.11 进程切换(十)

sched.c是内核中有关任务(进程)调度管理的程序,其中包括有关调度的基本函数(sleep_on()、wakeup()、schedule()等)以及一些简单的系统调用函数(比如getpid())。系统时钟中断处理过程中调用的定时函数do_timer()也被放置在本程序中。另外,为了便于软盘驱动器定时处理的编程,Linus 也将有关软盘定时操作作的几个函数放到了这里。这几个基本函数的代码虽然不长,但有些抽象,比较难以理解。好在市面上有许多教科书对此解释得都很清楚,因此可以参考其他书籍对这些函数的讨论。

2023-04-12 15:35:44 818

原创 Qt 窗口置顶

我们使用QT进行界面开发时,可能会遇到需要将窗口置顶的情况。最常见的就是,需要制作一个悬浮工具栏,悬浮菜单,甚至是悬浮的画板。这就意味这我们需要将这个窗口置顶于“系统”以及我们自己“软件”的窗口之上。其实实现的方法很简单,就是在创建这个窗口类的时候,在构造函数中的加一个枚举标识Qt::WindowStaysOnBottomHint 值为:0x04000000。

2023-04-11 18:03:32 4301

原创 Linux0.11 系统调用进程创建与执行(九)

的段 1,其索引字段值是 1,TI 位是 1,指定 LDT 表。,其索引字段值是 2,TI 位是 1,指定 LDT 表。函数之前,其进行了一系列初始化操作。,其索引字段值是 1,TI 位是 0,指定 GDT 表。,其索引字段值是 2,TI 位是 0,指定 GDT 表。描述符地址,其值为:8201:F4300068,其段基址为。描述符地址,其值为:8B01:F4480068,其段基址为。(128),idt[128] 其值为:EF00:87632。(调用 sys_fork 函数时压入栈的返回地址),

2023-04-07 11:58:42 624

原创 Linux0.11 内核体系结构(八)

对于系统中需要使用的一些中断,内核会在其继续初始化的处理过程中(init/main.c)重新设置这些中断的中断描述符项,让它们指向对应的实际处理过程。如果不使用 cli、sti 指令对,即在需要修改一个文件超级块时不使用 cli 来关闭对外部中断的响应,那么在修改之前判断出该超级块锁定标志没有置位而想设置这个标志时,若此时正好发生系统时钟中断而切换到其他任务去运行,并且碰巧其他任务也需要修改这个超级块,那么此时这个其他任务会先设置超级块的锁定标志并且对超级块进行修改操作。的中断调用功能向量等。

2023-04-06 11:36:20 596

原创 Linux0.11 80X86知识(七)

在上一节概述中已经提到,保护模式中 80X86 提供了 4GB 的物理地址空间。这是处理器在其地址总线上可以寻址的地址空间。这个地址空间是平坦的,地址范围从 0 到 0xFFFFFFFF。这个物理地址空间可以映射到读写内存、只读内存以及内存映时 I/O 中。分段机制就是把虚拟地址空间中的虚拟内存组织成一些长度可变的称为段的内存块单元。80386 虚拟地址空间中的虚拟地址(逻辑地址)由一个段部分和一个偏移部分构成。段是虚拟地址到线性地址转换机制的基础。段基地址。

2023-04-01 13:41:41 1188

原创 Linux0.11 execve函数(六)

当一个程序使用fork函数创建了一个子进程时,通常会在子进程中调用exec()簇函数之一以加载执行另一个新程序。此时子进程的代码、数据段(包括堆、栈内容)将完全被新程序的替换掉,并在子进程中开始执行新程序。提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2023-03-31 16:11:04 2138

了解历史,带领大家重温经典

带领大家重温经典

2024-04-04

Icons8 PPT制作

Icons8 PPT制作

2021-12-22

疯狂Kotlin讲义分卷二,共两卷!

疯狂Kotlin讲义分卷一,共两卷!高清版,目前发现csdn上都是链接外部,下载很慢,故分卷上传。

2018-12-19

疯狂Kotlin讲义分卷一,共两卷

疯狂Kotlin讲义分卷一,共两卷!高清版,目前发现csdn上都是链接外部,下载很慢,故分卷上传。

2018-12-19

UNIX环境高级编程第三版(英文)

UNIX环境高级编程第三版,linux下编程必不可少的参考书。

2016-09-19

深入理解LINUX网络技术内幕02

深入理解LINUX网络技术内幕02

2016-09-05

深入理解LINUX网络技术内幕

深入理解LINUX网络技术内幕

2016-09-05

TCPIP协议详解卷二:实现

TCPIP协议详解卷二:实现

2016-09-05

TCPIP协议详解卷一:协议

TCPIP协议详解卷一:协议

2016-09-05

linux内核完全注释

Linux内核完全注释,ISBN:9787111149682,作者:赵炯编著

2016-09-05

GNU make v3.80完整版中文指南

GNU make v3.80完整版中文指南

2016-09-05

Linux 与 Unix shell 编程指南

Linux 与 Unix shell 编程指南。linux shell编程介绍。

2016-09-05

Linux C 函数详解

Linux C 函数详解,一本linux下C编程工具书

2016-09-05

UNIX环境高级编程第二版

UNIX环境高级编程第二版。一本学习linux C编程的好书。

2016-09-05

Android设计招式之美

Android设计招式之美,高焕堂

2016-09-05

Android系统源代码情景分析随书源码

Android系统源代码情景分析随书源码

2016-08-30

Android系统源代码情景分析03

Android系统源代码情景分析。一本介绍android系统框架的书籍。写的非常不错。

2016-08-30

Android系统源代码情景分析02

Android系统源代码情景分析。一本介绍android系统框架的书籍。写的非常不错。

2016-08-30

Android系统源代码情景分析

Android系统源代码情景分析。一本介绍android系统框架的书籍。写的非常不错。

2016-08-30

Android内核剖析

由柯元旦编著的《Android内核剖析》详细分析了Android内核的内部机制,包括窗口管理系统、Activity管理系统、输入法框架、编译系统等,为Android内核定制及高级应用程序开发提供技术参考。, 《Android内核剖析》适合于所有Android相关的工程师及产品经理,还可作为相关培训机构的教材。

2016-08-30

深入理解Android网络编程技术详解与最佳实践05

深入理解Android网络编程技术详解与最佳实践,高清带书签,共5卷。适合入门者,内容一般般,参考看看吧。

2016-08-30

深入理解Android网络编程技术详解与最佳实践04

深入理解Android网络编程技术详解与最佳实践,高清带书签,共5卷。适合入门者,内容一般般,参考看看吧。

2016-08-30

深入理解Android网络编程技术详解与最佳实践03

深入理解Android网络编程技术详解与最佳实践,高清带书签,共5卷。适合入门者,内容一般般,参考看看吧。

2016-08-30

深入理解Android网络编程技术详解与最佳实践02

深入理解Android网络编程技术详解与最佳实践,高清带书签,共5卷。适合入门者,内容一般般,参考看看吧。

2016-08-30

深入理解Android网络编程技术详解与最佳实践

深入理解Android网络编程技术详解与最佳实践,高清带书签,共5卷。适合入门者,内容一般般,参考看看吧。

2016-08-30

Android开发艺术探索随书源码之PinExpandableListView

Android开发艺术探索随书源码之PinnedHeaderExpandableListView-master。随书源码的扩展阅读,开源项目,源码中未包含

2016-08-30

疯狂Android讲义第2版随书源码

疯狂Android讲义第2版随书源码

2016-08-30

疯狂Android讲义第2版03

疯狂Android讲义第2版,作者李刚。高清带标签。文件太大,分三卷压缩。

2016-08-30

疯狂Android讲义第2版02

疯狂Android讲义第2版,作者李刚。高清带标签。文件太大,分三卷压缩。

2016-08-30

疯狂Android讲义第2版

疯狂Android讲义第2版,作者李刚。高清带标签。文件太大,分三卷压缩。

2016-08-30

Android开发艺术探索随书源码

Android开发艺术探索随书源码

2016-08-30

Android开发艺术探索04

Android开发艺术探索,高清带书签。文件太大,分四卷压缩

2016-08-30

Android开发艺术探索03

Android开发艺术探索,高清带书签。文件太大,分四卷压缩

2016-08-30

Android开发艺术探索02

Android开发艺术探索,高清带书签。文件太大,分四卷压缩

2016-08-30

Android开发艺术探索

Android开发艺术探索,高清带书签。文件太大,分四卷压缩

2016-08-30

Android群英传源代码

Android群英传随书源代码

2016-08-30

Android群英传03

Android群英传高清扫描版。文件太大,采用分卷压缩,共三个压缩包。 一本Android提升的好书籍。

2016-08-30

Android群英传02

Android群英传高清扫描版。文件太大,采用分卷压缩,共三个压缩包。 一本Android提升的好书籍。

2016-08-30

Android群英传

Android群英传高清扫描版。文件太大,采用分卷压缩,共三个压缩包。 一本Android提升的好书籍。

2016-08-30

stevens 1990源码

stevens 1990源码,及Unix网络编程

2013-12-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除