自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不想做段子手的攻城狮不是好的运动员

从技术出发,把握技术的发展,跟上时代的浪潮

  • 博客(44)
  • 资源 (8)
  • 收藏
  • 关注

原创 C/C++系列——函数声明全解析

一. 函数是什么函数,从代码层面(逻辑上)来讲,就是一个功能模块,集成了若干程序语句;从运行时(硬件物理上)来讲,就包括了一个内存代码块和一个内存堆栈。程序员所实现的每个程序系统中往往包含了大量的函数,各个函数之间存在着直接或者间接的调用关系。我们知道,要想调用一个函数,就需要知道一个函数的声明情况(包括,函数名,返回类型,调用参数等),从系统层看,就需要知道函数的入口地址。给一个函数分配入口

2016-11-29 22:26:27 887

原创 Java系列——abstract, interface比较分析

1. 在abstract class方式中,Demo可以有自己的数据成员,也可以有非abstarct的成员方法; 而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的abstract clas

2016-09-09 10:42:56 527

原创 智能手机内外存可靠性研究

一. 研究目的Android手机目前还是会存在卡顿现象,该研究的目的是要从内核层的内存管理、外存管理,框架层的虚拟机垃圾回收、显存管理等方面找出卡顿的原因所在。对于内核层的内存管理,又细分为了三个研究方向:内存碎片化带来的影响,low memory killer(lmk)带来的影响以及交换分区带来的影响。对于框架层的垃圾回收,也细分为两个方向:传统Dalvik虚拟机垃圾回收所存在的问题,最新的

2016-09-01 17:23:50 919

原创 新型非易失性存储器作为交换分区的研究(能耗与性能的提升)

一. 动机1. 移动应用功能越来越强大,占用内存越来越大,功耗越来越高。同时由于Android进程管理的特性:将打开的进程缓存在后台,进程的数据包括代码,运行时数据,打开的文件缓存等统统驻留在内存。这就导致随着手机系统的使用,内存会越来越不够用。特别是对内存偏小的手机,内存不够用的情形会出现的更早,更频繁。2. 所以我们可以采用增加交换分区的方式来扩充内存容量。但是传统的交换分区会在某个时

2016-08-31 20:05:58 999

原创 C++系列——指针和数组详细分析

1. 指针和数组在编译阶段的区别指针:编译器符号指向的是指针变量的地址值,所以还要先得到指针变量所存放的地址值,然后根据该地址值取引用其所指向的对象内容,也就是间接引用其所值对象的值。数组:编译器符号指向的是数组的首个元素的地址,通过下标直接计算元素偏移量,从而直接得到元素的值。2. 指针和数组作为函数参数的区别一维数组和多维数组一维数组作为函数形参:形式:

2016-08-16 12:03:29 707

原创 C++系列——sizeof, strlen

一. sizeof的含义以及用法作用:返回一个对象(普通对象或类型实例化)或类型名(结构体或类类型名)的长度(占用内存的大小)。返回值类型为size_t,单位为字节。语法形式:sizeof (type name);sizeof (expr);sizeof expr;使用sizeof的结果会依赖于expr的类型:对普通对象,会返回其所占用的内存大小,比如32位机器

2016-08-12 15:29:39 557

原创 C++系列——重载(overload),重写(override),重定义(redefine)

1. 重载(overload)定义:出现在相同作用域中的两个函数,如果具有相同的名字而形参不同,则称为重载函数。返回值可以不同应用场景:2. 重写(override,一般也叫做覆盖)定义:出现在基类和派生类中,派生类重定义了基类中的virtual函数。返回值要相同,或者是协变应用场景:3. 重定义(redefine,一般也叫做隐藏,hide)

2016-08-08 17:59:32 896

原创 C++系列——const,引用,指针用法小结

1. const将变量设置为只读,任何对其进行的写操作(如赋值),都会导致编译错误。2. 引用引用(复合类型)就是对象的另外一个名字。关于定义引用几点要求:a. 定义引用的时候,必须初始化(指定引用指向对象的唯一方法)。非法情况:int &ref;b. 初始化引用的时候,必须是一个其他类型的对象。非法情况:int &ref=10;c. 正确形式:int

2016-08-04 08:29:28 550

原创 Android系统实现用户态swap(研究贴)

一. Android下用户态swap的意义二. Android下用户态swap的实现方法1. 首先实现系统调用swap_process(在Andriod的内核层实现系统调用,可以参考我前面的文章。)2. $kernel/mm/swap_state.c定义系统调用函数swap_process,参数为pid(用户层传过来的进程id)/** * swap inactive pa

2016-07-18 16:43:59 1235

原创 Android平台cocos2d-x学习之——平台搭建

一. 系统概览操作系统:Fedora 19开发IDE:Eclipse with ADT二. 搭建过程1. 下载稳定的cocos2d-x代码我下载的是3.11版本。2. 安装依赖库文件由于我的系统不是Ubuntu,所以需要手动地安装依赖库文件。就我的系统而言,需要安装的库文件包括:(具体可以参考build目录下的install-deps-linux.s

2016-05-17 23:34:49 655

原创 c++知识整理(一)

一. 类和数据抽象二. 面向对象编程三. 泛型编程

2016-05-12 16:19:01 602

原创 Android平台cocos2d-x 学习揭幕 (2016-05-11开始啦。。。)

一. 为什么要学习cocos2d-x由于自己对Android系统的酷爱与了解,同时结合自己的一些调研与总结。个人决定要探索一番该平台上还没有涉足过的领域,并在短时间内从入门到精通。(能不能精通就看这两个月了,哈哈哈,加油,不要让自己两个月后(2016-07-11)后悔!)二.  学习目标利用cocos2d-x,在两个月内开发出一款自己的Android游戏。三. 学习

2016-05-11 15:55:57 425

原创 Android系统进程之Activity管理——ActivityManagerService(AMS)

一. 为什么会有AMS对于Android app开发人员来说,Activity是其打交道最多的组件了:App的每一个界面都对应于一个Activity。每个Activity都有他的生命周期(那几个生命周期应该已经烂熟于心了吧),所以我们应该有一种机制来记录并管理这些Activity的状态信息,从而根据这些信息,来对App的内存进行分配回收等管理操作。综上,掌握好AMS的工作原理,可以较好地理解A

2016-04-06 11:55:04 1674

原创 Android进程/线程管理——深入源码解读+分析

一. 为什么要了解进程/线程二 . 进程三. 线程四. Handler,MessageQueue,Runnable,Looper

2016-03-26 17:48:48 595

原创 Android如何进行进程间通信之——Binder

一. 为什么会有Binder首先我们来看一句话:Binder是Android中使用最广泛的IPC(进程间调用)机制。所以说白了,Binder的存在是为了Android系统中的跨进程函数(包括服务等)调用。这是操作系统的基本功能之一。在Android系统中的具体表现形式就是应用进程与系统服务进程之间的交互,或者是用户进程与用户进程之间的交互,又或者是系统进程与系统进程之间的交互。例如Activi

2016-03-22 11:41:13 1112

原创 对Trie单词树的实现与思考

一. 为什么要使用Trie树Trie树可以将大量字符串通过树形结构组织起来,前缀相同的字符串共享存储空间,从而达到1)节约存储空间,2)加快特定查找速度(例如,以给定字符串开头的字符串的个数等)。二. C实现Trie树Trie树的建立void create_tree(struct Node* T, char dir[]){ int jc=1; //root节点已经在main函数中

2016-03-15 22:29:21 527

原创 一个例子看懂递归

一、为什么要搞定递归在计算机科学与技术中,递归思想是简单而且复杂的。它可以将复杂的数学问题用简单的代码实现,但是要理解它却是需要复杂的思考。大多数算法中都巧妙的使用了,或者可以使用递归来完成,比如排序算法中的快速排序、堆排序、归并排序等,数据结构中树的遍历、平衡树的判断、二叉查找树的建立与维护以及图的遍历与最短路径求解等,动态规划、贪心算法等等,实在事太多太多,就不一一列举了。所以掌握好递归对

2016-03-08 22:00:12 1923

原创 检测链表环路引发的思考

一个小小的数学游戏引发的奇妙思路之旅!如题:请在O(n)时间复杂度内找出链表(存在环路)中环路的起点。解答:设定双(快慢)指针,慢指针每次向后移动一个元素,快指针每次向后移动两个元素。两指针依次向后遍历,直到相遇。相遇时,将慢指针指向头节点,将快指针设置为慢指针,继续向后遍历,直到相遇。相遇节点即为环路的起始节点。思考:实际上,巧妙地运用了速度为两倍的追赶相遇问题:他们会在前者的对称位

2016-03-07 11:32:33 501

原创 树莓派(Raspberry pi)下安装七牛云c/c++ SDK时遇到的问题及解决方案

问题1:linux下编译c代码时,出现缺少curl/curl.h文件的错误。但是明明curl就已经安装了,怎么会这样子,而且/usr/include/目录下确实没有curl库文件目录。问题就来了,怎么破?解决:当然是安装对应的curl库文件啦。在我的平台(Raspberry pi)上是这个库文件是libcurl4-openssl-dev。对应的安装命令是sudo apt-get insta

2015-12-04 21:47:39 2237

原创 一次修复磁盘的记录 (ext4 mount: wrong fs type, bad option, bad superblock)

$ sudo e2fsck -f /dev/sdb1e2fsck 1.41.4 (27-Jan-2009)e2fsck: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdb1Could this be a zero-length partition?

2015-10-30 21:30:02 7959 2

原创 算法中的一些符号 O(big-Oh) Ω(big-theta) Θ(big-theta)

O(big-Oh)    Ω(big-theta)    Θ(big-theta)一、概述这是我们在算法的时间复杂度分析中经常会碰到的几个符号。符号后面括号里的是他们相应的读法。简单来说,第一个符号的意义相当于“小于等于”;第二个符号的意义相当于“大于等于”;第三个符号的意义相当于“等于”。其实还有一个o(little-oh),它的意义相当于“小于”,这里不做讨论。后面的讨论中都用比较通俗

2015-10-30 21:15:01 20851 1

原创 Linux系统C语言读写文件总结 (二)

1. 概述这里所说的是标准I/O库。这里所说标准,是因为接下来介绍的I/O函数由ISO C标准说明并在诸多操作系统上都进行了实现,包括UNIX like OS, Linux, Mac, Windows等。标准I/O库处理了很多细节,例如缓冲区分配,以优化长度执行I/O等。这些处理使得用户不必担心如何使用正确的块长度。标准I/O库实际上就是在我在上一片博客中所将的基本I/O操作函数的一个封装

2015-10-21 21:44:28 2164

原创 Linux系统C语言读写文件总结 (一)

1. 概述一般来说,linux系统中对文件的读写操作只需要几个基本函数就可以搞定,包括open, read, write, lseek以及close等函数。这里所说的函数就是所谓的不带缓冲的I/O。这里不带缓冲指的是这些个函数(read, write等)都对应与系统内核的一个系统调用。它们也不是ISO C的组成部分,但是,它们是POSIX.1和Single UNIX Specification

2015-10-21 17:38:20 2588

原创 [回顾] 如何在Nexus 5(Android 4.4.4)上开启交换分区swap

1. 编译内核(kernel)开启swap需要内核支持,所以第一步需要得到支持swap特性的内核镜像文件。a. 下载Android系统对应内核源代码;b. make menuconfig -> 开启 Support for paging of anonymous memory (swap)选项c. 编译(需要相应编译环境,具体请参考google 官网)2. 通过aboo

2015-10-12 16:35:20 2281

原创 Linux脚本备忘

1. 每隔一秒记录free命令的输出中swap分区还剩余的存储空间while [[ 1 ]]do free | grep Swap | awk '{print $3}' >> $1 sleep 1done引申:重点主要是awk命令。简单来说awk就是把文件逐行地读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。使用方法:awk '{pattern +

2015-07-20 22:52:30 510

原创 dumpsys meminfo 说明

PSS: PSS differs from RSS in that it reports the proportional size of its shared libraries, i.e. if three processes all use a shared library that has 30 pages, that library will only contribut

2015-06-24 10:19:47 3049

原创 如何通过InstallShield打包应用程序

有视频教程为什么不看呢http://resources.flexerasoftware.com/web/demos/IS2010_VSLE_Demo/IS2010_VSLE_Demo-lite.html

2015-06-12 22:29:08 560

原创 如何在Android4.4(内核3.4.0)上使用zram

问题:要使用zram需要内核支持,所以我们需要加入ZRAM的内核编译选项。但是它依赖于ZSMALLOC。在3.4.0内核版本中ZSMALLOC又依赖于x86架构,但是我们的手机又是arm架构。问题就来了!解决方法:很简单,去该手机对应高版本的内核中找到zsmalloc对应的模块替换当前版本中的部分。实验配置:平台:Nexus 5内核版本:3.4.0Andro

2015-02-03 11:36:32 3636

原创 Android 内存分析

详细见链接,分析的比较细节。点击打开链接

2014-11-23 19:40:25 623

原创 如何在Android平台上使用IO分析工具(blktrace)

1. In order to use blktrace, the kernel has to be compiled with block tracing supportkernel hacking => tracer => enabling IO tracerCONFIG_BLKDEV_IO_TRACEI also enabled a few other tracing option

2014-11-06 22:35:04 2142

原创 解压并重新打包 initrd.img

Extractgunzip Repackfind ./ | cpio -H newc -o > initrd.cpiogzip initrd.cpiomv initrd.cpio.gz initrd.img

2014-09-23 20:22:47 3058

原创 Android jni 编程

javah -classpath ../bin/classes com.package.Class

2014-09-11 21:48:48 537

原创 如何在Linux系统下将Android的系统镜像system.img拆包,打包

1. 拆包mkdir syssimg2img system.img sys.rawsudo mount -t ext4 -o loop sys.raw sys/

2014-09-09 22:44:16 1269

原创 如何使用mount重新挂载设备

简单命令:

2014-09-09 14:52:22 2822

原创 如何在arm linux kernel(内核)中添加系统调用

主要分为如下四1. 添加系统调用号

2014-08-30 12:31:26 2334 1

原创 编程小记(一)—— 小技巧篇

一. 如何高效地做标记

2014-08-25 17:13:42 1011

原创 Android系统中添加内存分区(Zone)

1. 添加zone_type枚举类型2.

2014-05-26 17:19:17 2112

原创 Android通过adb命令与Linux系统连接

1.添加配置文件2.启动和关闭adb server3.重新家在

2014-05-22 10:34:16 1354

原创 C语言 printf 格式输出指针总结

1.  代码

2014-04-14 16:54:37 51285 5

原创 Linux 环境下如何使用NDK进行Android开发

下载NDK

2014-04-08 11:33:47 1218

javaWeb网络相册

javaweb MVC模式编写的网络共享相册,适合入门者学习,可以较快掌握jsp servlet技术,以及web开发的基本框架

2013-04-10

java编写雷电游戏

闲着没事,边看边学,做出了一款模拟雷电游戏的小东西,比较粗略,适合入门者学习

2013-04-10

java学生分数管理应用

java编写的学生分数管理简单应用 在窗口模式下输入管理,实现对象序列化存储

2013-04-10

java编写的文件管理系统

java编写的文件管理系统,通过文件路径索引到文件目录以及文件项从而实现对整个磁盘上的文件管理

2013-04-10

MIT Press - Introduction To Algorithms, 2nd Edition

MIT Press - Introduction To Algorithms, 2nd Edition 好资源大家一起用,相信这本书可以让你更加深入的了解到算法的精髓,麻省理工学院教授关于算法的心得体会

2012-05-05

动态规划问题分析课件(教程)

算法分析 dp动态规划问题 重庆大学算法教程(动态规划部分)

2012-05-05

汇编masm50用法指南

汇编masm50用法指南 新手入门最佳指南

2012-05-04

c语言课件 from 著名大学 标准学习教程

名校c语言学习统一课件 现在分享给大家 共同成长 共同进步

2012-04-29

空空如也

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

TA关注的人

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