自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(260)
  • 资源 (24)
  • 问答 (1)
  • 收藏
  • 关注

原创 linux文件系统相关文章汇总

vfs层教程中需要知道的所有知识:为pc编译配置安装当前最新的内核使用qemu调试arm、x86平台linux内核手把手教你改内核源码–sysfs虚拟文件系统1手把手教你改内核源码–sysfs虚拟文件系统2具体文件系统:minix v1文件系统结构mkfs.minix.c代码解析...

2021-10-09 11:45:14 181 2

原创 请亲们关注下我,谢谢了。

请亲们关注下我,谢谢了。由于博客专家认证需要粉丝超过500个人。所以我把很多文章设置成了粉丝可见,为了涨粉,请大家见谅。

2021-10-05 22:23:13 121

原创 所有文章汇总目录

所有文章汇总目录其他工具的使用:1.linux下怎样用ctags查看内核源码2.UNIX环境高级编程——学习路线图3.CentOS如何配置国内YUM源4.发现一份Vim 配置文件,自己感觉特别好的。5.处理程序时开启多少并发线程最合适?6.查看进程执行情况的几种方法7.cmake配置文件一些常用的配置基础知识:0.linux基本操作1.linux高级编程二基础知识2.linux高级编程三网络以及网络配置3.linux高级编程四shell编程/指针4.linux高级编程五结构体5

2021-10-04 22:26:29 487

原创 给计算机专业的同学一些职业规划建议

今天给本科大学生一些职业规划建议之前,我给大家推荐一篇文章,好像叫做 计算机专业的学生应该有更大的目标。这个文章链接我找不到了,找到了我就会放在这里。首先,作为一个计算机相关专业的大学生,都会围绕编程语言去讨论哪个他们的优略,所以,我们就从编程语言来分一个职业方向。1.java2.javascript3.Python4.Ruby5.PHP6.C7.C++8.C#9.Go10.TypeScript11.Objective- C12.VB(提早别学,浪费时间,我也就不介绍了)1.j

2021-10-04 22:00:49 244

原创 unity3d著名项目-Dark Tree翻译

Dark Tree组件概述•性格和生活统计•武器•控制器动画•库存和物品•建筑系统•教程和帮助感谢您购买DTFPS。此游戏模板允许您轻松制作生存游戏原型。在本手册中,我想对项目中使用的工具和方法以及一些入门教程该资产的主要目标是提供简单的设置体验和使射击游戏快速的能力但请记住,您的游戏需要的工作远不止资产商店中的现成模板。 它会 不是自己为您制作游戏,而是会给您一个很好的起点。 有时你仍然需要工作 如果您想扩展包并使您的游戏真正独特和原创,请使用代码。 如果你熟悉 C# 并且可以编写

2022-08-07 18:18:26 1515 1

原创 linux的initcall机制--应用层用链接脚本实现

initcall机制的由来我们都知道,linux对驱动程序提供静态编译进内核和动态加载两种方式,当我们试图将一个驱动程序编译进内核时,开发者通常提供一个xxx_init()函数接口以启动这个驱动程序同时提供某些服务。那么,根据常识来说,这个xxx_init()函数肯定是要在系统启动的某个时候被调用,才能启动这个驱动程序。最简单直观地做法就是:开发者试图添加一个驱动程序时,在内核启动init程序的某个地方直接添加调用自己驱动程序的xxx_init()函数,在内核启动时自然会调用到这个程序。但是,回头一

2022-03-04 17:21:45 309

原创 制作一个启动软盘并用bochs模拟器启动

1.bximage创建软盘。选1默认[1.44M]起名boot.imgstatus=inserted表示已经插入该软盘2.编译boot.asm汇编编写的引导程序。使用nasm编译器进行编译。-o 参数: nasm 文件名 -o 目标程序名-o 和gcc一样表示输出文件。编译命令:nasm boot.asm -o boot.bin3.使用dd命令把引导程序强制写入到虚拟软盘的固定扇区内。dd if=boot.bin of=./boot.img bs=512 count=1 conv=

2021-11-25 15:47:17 1448

原创 内核映像文件格式

1.vmlinuxvmlinux是一个包含linux kernel的静态链接的可执行文件,文件类型是linux接受的可执行文件格式之一(ELF、COFF或a.out)。2.vmlinuzvmlinuz是可引导的,压缩的linux内核,“vm”代表的“virtual memory”。vmlinuz是vmlinux经过gzip和objcopy(*)制作出来的压缩文件。vmlinuz不仅是一个压缩文件,而且在文件的开头部分内嵌有gzip解压缩代码。所以你不能用gunzip 或 gzip –dc解包vmlin

2021-11-25 15:45:13 470

原创 计算机是如何启动的?

从打开电源到开始操作,计算机的启动是一个非常复杂的过程。0、boot的含义先问一个问题,"启动"用英语怎么说?回答是boot。可是,boot原来的意思是靴子,"启动"与靴子有什么关系呢? 原来,这里的boot是bootstrap(鞋带)的缩写,它来自一句谚语:拽着鞋带把自己拉起来必须想尽各种办法,把一小段程序装进内存,然后计算机才能正常运行。所以,工程师们把这个过程叫做"拉鞋带",久而久之就简称为boot了。计算机的整个启动过程分成四个阶段。一、第一阶段:BIOS上个世纪70年代初,“只读内存

2021-11-25 15:44:30 104

原创 内核中高级语法和特殊数据结构

内核中高级语法和特殊数据结构attributeGNU C 的一大特色就是__attribute__ 机制。attribute 可以设置函数属性(Function Attribute )、变量属性(Variable Attribute )和类型属性(Type Attribute )。#书写特征是:前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attribute__ 参数。 __attribute__ #语法格式为: __attribute__ ((attribut

2021-11-25 15:42:55 466

原创 内核性能分析总结

1.unixbencha.测试介绍UnixBench源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。UnixBench也支持多CPU系统的测试,默认的行为是测试两次,第一次是一个进程的测试,第二次是N份测试,N等于CPU个数。这样的设计是为了以下目标:测试系统的单任务性能测试系统的多任务性能测试系统

2021-11-25 15:42:06 219

原创 qemu和主机共享磁盘

有时候需要在宿主机和qemu虚拟机之间共享文件,添加一个共享磁盘将有助于该项工作。创建64MB磁盘镜像文件,并格式化为ext4,作为共享磁盘备用。dd if=/dev/zero of=ext4.img bs=512 count=131072mkfs.ext4 ext4.img修改qemu启动命令,使用-hdb增加一个磁盘。qemu-system-x86_64 -kernel ~/linux-4.14.191/arch/x86_64/boot/bzImage -hda ~/busybox-1.

2021-11-25 15:40:51 2958 2

原创 mkfs.minix.c之minix_super_block.s_nzones获取解析

先看结构体:struct minix_super_block { uint16_t s_ninodes; //i节点数 uint16_t s_nzones; //区块数 uint16_t s_imap_blocks; //i节点位图所占块数 uint16_t s_zmap_blocks; //区块位图所占块数 uint16_t s_firstdatazone; //数据区中第一个逻辑块块号 uint16_t s_log_zone_size; //磁盘块数/区块数 uint32_t

2021-10-19 11:17:12 156

原创 mkfs.minix.c之minix_super_block.s_ninodes获取解析

struct minix_super_block { uint16_t s_ninodes; //i节点数 uint16_t s_nzones; //区块数 uint16_t s_imap_blocks; //i节点位图所占块数 uint16_t s_zmap_blocks; //区块位图所占块数 uint16_t s_firstdatazone; //数据区中第一个逻辑块块号 uint16_t s_log_zone_size; //磁盘块数/区块数 uint32_t s_max_

2021-10-18 21:22:09 149

原创 util-linux中的setbit函数解析

先看如下代码:如果分析代码时嫌麻烦。可以直接运行调试,查看结果是否符合预期结果。如果符合预期结果,就没有必要查看过程。从函数名猜测该宏定义为给某个比特位置位。然后调试, 编写测试代码,将2位置位。调试时查看值是否正确。如下,给第二位置位时,二进制表示为:100, 转换成10机制为4.猜想正确。/** * setbit宏定义解析实验*/static char *inode_map;#define CHAR_BIT __CHAR_BIT__ //获得一个字符对象的比特的

2021-10-18 16:53:43 352

原创 手把手教你改内核源码--sysfs虚拟文件系统2

环境:uos内核代码版本:4.19.90首先,上篇文章中在/sys/中创建了自定义的文件夹和文件。那么,提出一个问题:为啥使用kobject_create_and_add()内核接口创建节点的时候默认在 /sys/ 文件夹下了?带着问题去从start_kernel开始找答案。这是我自己找的调用过程。最后一个函数sysfs_create_dir_ns()创建文件夹,已经被我改了。改的那一部分就是答案。先看代码:/** * 找到接口为NULL时,为啥默认是在/sys 目录下了 */

2021-10-09 11:36:39 335

原创 手把手教你改内核源码--sysfs虚拟文件系统1

在虚拟文件系统sysfs下创建一个目录和文件

2021-10-09 10:17:49 148

原创 最简单的字符设备驱动

1.需要先创建设备节点mknod /dev/xxx c 111 0创建一个名字为xxx的字符设备, c表示字符设备, 主设备号是111, 此设备号是0。2. 驱动程序#include <linux/fs.h>#include <linux/init.h>#include <linux/module.h>static int first_drv_open(struct inode *inodep, struct file *filep){ pr

2021-10-05 22:56:02 194

原创 KDE框架介绍

KDE框架介绍KDE是目前最好看的桌面框架https://api.kde.org/frameworks-api/frameworks-apidocs/frameworks/index.htmlKDE 框架建立在 Qt 框架上,提供从简单实用程序类(例如 KCoreAddons 中的类)到针对桌面应用程序的常见需求(例如 KNewStuff)的集成解决方案,以在应用程序中获取可下载的附加内容,或者提供强大的功能 KIO 多协议文件访问框架)。KDE 框架可用于基于 CMake 和基于 QMake 的项

2021-10-05 22:49:00 1255

原创 内核性能分析总结

# 内核性能分析总结1.unixbencha.测试介绍UnixBench源于1995 年,基线系统是“George”,一个工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此系统的指数值被设定为10,所以,如果一个系统的最后结果分数为520,意思是指此系统比基线系统运行快52 倍。UnixBench也支持多CPU系统的测试,默认的行为是测试两次,第一次是一个进程的测试,第二次是N份测试,N等于CPU个数。这样的设计是为了以下目标:测试系统的单任务性能测试系统

2021-10-05 22:45:51 235

原创 minix v1文件系统结构

minix v1文件系统结构介绍

2021-10-01 13:23:23 195

原创 mkfs.minix.c代码解析

int main(int argc, char ** argv){ struct fs_control ctl = { .fs_namelen = 30, /* keep in sync with DEFAULT_FS_VERSION */ 0 }; int i; struct stat statbuf; char * listfile = NULL; enum { OPT_LOCK = CHAR_MAX + 1 }; static const struct option lo

2021-10-01 13:11:38 335

原创 开源项目-tomato

开源项目-tomato此文章为tomato项目的介绍。

2021-09-26 13:49:10 165

原创 centos下rpm包

参考博客:https://www.cnblogs.com/michael-xiang/p/10480809.htmlhttps://www.cnblogs.com/SQL888/p/5776442.html一、rpm包制作1.安装打包工具yum install -y rpm-buildyum install redhat-rpm-config2.打包文件的配置安装完成后会在root目录下生成BUILD BUILDROOT RPMS SOURCES SPECS SRPMS五个文件夹,都是空的

2021-09-15 15:26:33 617

原创 使用qemu调试arm、x86平台linux内核

1.ARMsudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi buildessent 安装编译需要的工具包。下载linux源码,和下载busybox工具包:https://busybox.net/downloads/busybox-1.24.0.tar.bz2利用busybox编译最小文件系统: cd busybox export ARCH=arm export CROSS_COMPILE=

2021-07-28 10:05:05 1210

原创 qemu基础知识、编译、安装以及虚拟机创建

0.qemu和kvm的区别​ 首先KVM(Kernel Virtual Machine)是Linux的一个内核驱动模块,它能够让Linux主机成为一个Hypervisor(虚拟机监控器)。​ 在支持VMX(Virtual Machine Extension)功能的x86处理器中,Linux在原有的用户模式和内核模式中新增加了客户模式,并且客户模式也拥有自己的内核模式和用户模式,虚拟机就是运行在客户模式中。​ KVM模块的职责就是打开并初始化VMX功能,提供相应的接口以支持虚拟机的运行。​ QEMU(

2021-07-28 09:42:40 3626

原创 STM32中使能时钟的目的

首先强调:时钟使能必须在外设初始化之前!!!!!!!在这引用一个解释,“ARM的芯片,外设通常都是给了时钟后才能设置它的寄存器(即才能使用这个外设)。STM32、LPC1XXX等等都是这样,这么做的目的是为了省电,使用了所谓时钟门控的技术。寄存器是基于什么的?当然是触发器!!!准确地说应该是D触发器触发器的赋值是一定需要时钟的, 而寄存器的时钟是由总线时钟提供的,就是说没有总线时钟的话,你给寄存器值它是不会读入的。换句话说,只有送来了时钟,触发器才能被改写值,这样寄存器才会工作。又会有人说为什

2021-06-28 15:37:50 1591 2

原创 JZ2440裸机学习之从led学gpio

JZ2440学习之gpio第一步:开发环境配置先安装linux操作系统。在windows系统上安装linux子系统,或者在linux系统上安装windows虚拟机。(作者使用windowsOS,安装的ubuntu子系统,烧写工具用oflash工具)搭建交叉编译环境。 安装arm-linux-gcc, 或者其他的编译工具。连接Opne JTAG线到开发板和电脑。就可以进行裸机程序烧写。第二步:查看原理图查看原理图,看led接线原理。因为Led一端为3.3v高电平,所有要点亮Led需

2021-06-26 13:35:26 207

转载 图解 Linux 文件系统

之前我写过有关 Linux 文件系统源码分析的文章,但从源码角度分析文件系统略显枯燥(对新手不友好),所以这次主要通过图文的方式来讲解 Linux 文件系统的原理,而不用陷入源代码的深渊之中。一、硬盘简介在介绍文件系统前,我们先来了解一下 硬盘。众所周知,内存在断电后数据就会丢失,所以现代计算机都通过 硬盘 来进行数据存储。也就是说,硬盘中的数据在断电后依然能够保存下来。现在比较流行的硬盘分为:机械硬盘(HDD) 和 固态硬盘(SSD)。由于本文重点介绍的对象是 文件系统,所以对于硬盘的原理就不进行

2021-06-03 14:12:14 304

原创 arm体系结构与汇编指令

https://github.com/qwe624758472/Learning_set/blob/master/BookNote/ARM.md

2021-05-07 18:01:24 157

原创 x86汇编语言

第一章 基础知识Intel 8086 在实模式下可以访问 1MB 的内存空间,地址范围为 0x00000 到 0xFFFFF。出于各方面的考虑,计算机系统的设计者将这 1MB 的内存空间从物理上分为几个部分。8086 有 20 根地址线,但并非全都用来访问 DRAM,也就是内存条。事实上,这些地址线经过分配,大部分用于访问 DRAM,剩余的部分给了只读存储器 ROM 和外围的板卡.1.0x00000-0x9FFFF:DRAM(动态随机访问存储器):2.0xA0000-0xEFFFF: 分给外

2021-04-27 16:17:10 580

原创 30天自制操作系统:第六天:代码架构整理与中断处理

1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):​ 在设计上,cpu单独只能处理一个中断。 而pic是将8个中断信号集合成一个中断信号的装置。 只要有一个中断信息进来,就将唯一的输出管脚信号变成ON。后期扩充到了15个, 使用了主从PIC。8259a可编程中断控制器介绍:https://blog.csdn.net/navysniper/article/details/4380306初始化pic代码:void init

2021-04-07 11:41:55 202 2

原创 进程的表现形式

进程的表现形式1.进程生命周期运行:该进程此刻正在执行。等待:进程能够运行,但没有得到许可,因为CPU分配给另一个进程。调度器可以在下一次任务切换时选择该进程。睡眠:进程正在睡眠无法运行,因为它在等待一个外部事件。调度器无法在下一次任务切换时选择该进程。2.进程表示include/linux/sched.h中有结构体struct task_struct;表示了进程的所有信息。struct task_struct { volatile long state; /* -1表示不可运

2021-03-18 16:40:14 399

原创 Makefile详解

Makefile详解1.makefile的规则 target... : prerequisites ... command ... ...target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label:伪目标)prerequisites就是,要生成那个target所需要的文件或是目标。command也就是make需要执行的命令。(任意的Shell命令)1.target这一个或多个的

2021-03-03 14:15:40 823

原创 Docker编译流程、代码框架分析、自定义docker功能

Docker编译流程与代码框架分析所有文章皆可以在以下链接中找到:https://github.com/qwe624758472/Learning_set/tree/master/BookNoteDocker整体编译打包教程环境搭建docker的编译,需要在宿主机预先安装docker软件。因为编译docker的源码时,会构建一个docker镜像并运行,在这个容器里面进行build操作。由于这个容器已经包含了go语言环境,故宿主机无须额外安装golang。宿主机系统:uos宿主机docker版本:

2021-01-12 10:33:47 542

原创 NAT详解与网络穿透原理分析

网络穿透原理1.什么是nat?NAT(Network Address Translation,网络地址转换),也叫做网络掩蔽或者IP掩蔽。NAT是一种网络地址翻译技术,主要是将内部的私有IP地址(private IP)转换成可以在公网使用的公网IP(public IP)。2.为什么会有nat?NAT的本质就是让一群机器公用同一个IP,这样就暂时解决了IP短缺的问题。NAT技术能够兴起的原因还是因为在我们国家公网IP地址太少了,不够用,所以才会采取这种地址转换的策略。3.实现方式及主要类型[外链图

2020-12-23 20:28:51 1442 1

原创 http简介并用go实现

1.HTTP协议简介超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。就是常用的浏览器和服务器通信协议. 将tcp进行封装后的一种应用层协议.2.HTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状

2020-12-18 10:21:29 384

原创 linux下可以进行进制转换的计算器

apt-get install galculatorlinux下可以进行进制转换的计算器.

2020-12-09 16:51:15 450

原创 Docker总结

Docker总结0.docker组件和历史[Docker 引擎]是用来运行和管理容器的核心软件。通常人们会简单地将其代指为 Docker 或 Docker 平台。如果你对 VMware 略知一二,那么可以将 Docker 引擎理解为 ESXi 的角色。基于开放容器计划(OCI)相关标准的要求,Docker 引擎采用了模块化的设计原则,其组件是可替换的。从多个角度来看,Docker 引擎就像汽车引擎——二者都是模块化的,并且由许多可交换的部件组成。汽车引擎由许多专用的部件协同工作,从而使汽车可以行

2020-11-05 10:44:26 248

原创 30天自制操作系统:第五天:文字显示与GDT/IDT初始化

第五天:文字显示与GDT/IDT初始化1.从内存中读出保存的值.昨天程序中300x200都是直接写入程序,本来应该从asmhead.nas先前保存的值中取,不然当画面模式改变时,系统就挂了.所以得修改bootpack.c文件代码从asmhead.nas写入的内存中取值.2.显示字符原理:将每一个bit当成一个黑点,那么,字符a就可以当成下图所示:那么字符a要显示赋值给显卡的话,用字符数组表示就变成:static char font_A[16]= {0x00,0x18, 0x18, 0x18

2020-10-30 16:36:23 375

ucosiii工程任务间的通信.rar

ucosiii工程任务间的通信.rar

2020-06-08

UCOSIII中断管理工程.rar

UCOSIII中断管理工程.rar

2020-06-08

linux设备驱动程序源码code.rar

linux设备驱动程序源码code.rar

2020-06-08

stm32移植ucosiii实例工程.zip

stm32移植ucosiii实例工程

2020-06-01

arm-elf-tools-20040427.rar

arm-elf-tools-20040427.rar

2020-05-13

pandoc-2.6-windows-x86_64.rar

pandoc-2.6-lsh makedown

2020-04-26

重解几道华为经典C语言面试题.doc

重解几道华为经典C语言面试题

2020-04-13

Ezreal.FBX

伊泽瑞尔Fbx模型伊泽瑞尔Fbx模型

2019-09-10

LOL简化版源码.zip

LOL简化版源码.zip

2019-08-19

树莓派下编译seafile文档

树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile

2018-05-14

树莓派下编译seafile

树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile树莓派下编译seafile

2018-04-28

C++标准程序库

C++标准程序库C++标准程序库C++标准程序库C++标准程序库C++标准程序库C++标准程序库

2018-04-28

Shell学习笔记

Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记Shell学习笔记

2018-04-28

Linux多线程服务端编程

Linux多线程服务端编程 Linux多线程服务端编程 Linux多线程服务端编程 Linux多线程服务端编程 Linux多线程服务端编程

2018-04-28

项目管理修炼之道

项目管理修炼之道项目管理修炼之道项目管理修炼之道项目管理修炼之道项目管理修炼之道

2018-04-28

IT职业发展路径

IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径IT职业发展路径

2018-04-28

树莓派下编译seafile需要的git包源码

树莓派下编译seafile需要的git包源码树莓派下编译seafile需要的git包源码

2018-04-28

UML小游戏小游戏

UML小游戏小游戏

2017-03-08

Linux多人聊天室

Linux多人聊天室

2016-12-08

老飞飞游戏源代码

老飞飞游戏源代码

2016-06-17

安卓组建库

安卓组建库详细介绍看博客 Andbase主要功能列表: 1.andbase中包含了大量的开发常用的组件。 如网络下载,多线程与线程池的管理,数据库ORM,图片缓存管理,图片文件下载上传,Http请求工具,SOAP工具类,异步Task,常用工具类(字符串,日期,文件处理,图片处理工具类等),能够使您的应用在团队开发中减少冗余代码,很大的提高了代码的维护性与开发高效性,能很好的规避由于开发疏忽而导致常犯的错误。 2.andbase封装了大量的常用控件。 如list分页,grid分页,下拉刷新,进度框,图片轮播,表格,多线程下载器,侧边栏,图片上传,轮子选择,图表,Tab滑动,日历选择器等。 3.强大的AbActivity,您没有理由不继承它。 继承它你能够获得一个简单强大可设置的操作栏,以及一系列的简单调用,如弹出框,提示框,进度框,副操作栏等。 4.提供效率较高图片缓存管理策略,使内存大幅度节省,利用率提高,效率提高。 程序中要管理大量的图片资源,andbase提供简单的方法,几步完成下载与显示,并支持缩放,裁剪,缓存功能,OOM不在有。 5.封装了大量常见工具类。 包括日期,字符,文件,图片,数学,View万能适配工具类等各种处理函数, 多而全。 6.用andbase大量减少handler的使用,而采用回调函数,代码更整洁。 handler会产生大量代码,并且不好维护,andbase对handler进行了封装,你会发现用了andbase基本代码中不会再有大量的handler判断语句。 7.简单轻量支持注解自动建表的ORM框架(支持一/多对多的关联操作)。 写sql,建表,工作量大,andbase提供更傻瓜异步增删改查工具类,数据库在内置卡和外置卡都可以。 8.异步请求http框架,网络请求标准化,支持文件上传下载,get,post,进度显示。 包含了异步与http请求的工具类,SOAP请求工具类,简单实用。

2016-01-18

数据结构 C语言版

这个文档时一个关于数据结构的文档 C语言版的

2013-11-20

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

TA关注的人

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