自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(351)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 安卓市场--框架搭建5

在上一篇中,我们已经把框架搭建的差不多了,只剩下最后一个需要的功能框架,就是右滑栏。对于右滑栏的使用,我们使用在github上比较火热的SlidingMenu来创建我们需要的侧滑栏。首先我们需要为我们的侧滑栏创建一个布局文件,在res/layout文件夹下面创建一个activity_left_layout.xml文件,并选择RelativeLayout布局。在我们的侧滑栏中肯定放一些选项,那么我们就

2015-07-23 10:58:33 1218

原创 安卓市场---框架搭建4

书接上回,在上面一片博客中,我们添加了TabHost,我们接着进行我们的框架搭建。在这里,我们首先完成需要的那几个类,包括 “首页”, “分类”, “排行”, “推荐”, “主题”,仅仅就是搭建一个小型的框架,其中,稍微麻烦一点的就是首页的界面。我们先来看下。根据我们上文中的关于首页的图片,我们知道,在我们的首页中,有上中下三个,下面的TabHost已经有了,我们来定义一下上面的框框。首先,在我们的

2015-07-23 09:21:40 896

原创 安卓市场--框架搭建3

在我们的上一篇博客中,最基本的框架已经搭建完成了,那我们为什么这篇文章还叫做框架搭建呢?原因就是之前我们搭建的是贯穿这个项目,要对这个项目的声明周期进行管理的框架,而后面我们需要做的是搭建一个我们需要的与内容有关的框架。下面我们先来看一下我们这个框架最终的效果:在这个框架中,我们需要做的有下面几个工作:1:添加一个TabHost,tab分别是首页,分类,排行,推荐和主题2:首页上方有一个用户按钮

2015-07-20 09:21:34 1106

原创 SEAndroid和普通android的区别

首先我们需要知道,在普通android中使用的是DAC访问方式,即 Discretionary Access Control,顾名思义,该访问方式是自由的访问控制,由此,他有一些本身自有的缺点。在DAC 中,普通app只能通过系统服务来访问系统资源。同时,DAC 通过用户和组来分隔app。每一个app在安装的时候都被分配一个独一无二的用户id和组id,这个id对被他的所有进程和私有数据文件使用。只有

2015-07-17 16:56:59 1757

原创 安卓市场--框架搭建2

在上一篇中,我们回顾了android的activity的生命周期以及Application的基本知识,在这一篇中,我们正式开始我们的项目之旅。在我们进行项目开发的时候,首先需要做的就是搭建一个项目框架,由于我也没有正式的去公司工作过,仅仅就是按照自己的理解来搭建一个小型的项目框架,我们先来完成第一步。在我们的任何一个android程序中,都需要一个对activity进行管理的类,我们现在称作AppM

2015-07-17 11:24:26 1274 2

原创 安卓市场-框架搭建

在我们学习完android的基础知识之后,肯定很想通过自己所学习的基础知识来构建一个自己的安卓项目,但是又不知道从何下手,我们这个专题就是为了学习完安卓的基础知识之后,来练手用的。我们这款项目是通过编写一个我们经常用到的安卓市场来对知识的一个综合应用,该应用具体有以下功能:1:有这么几个tab,首页,分类,推荐和主题2:首页分为上中下三个部分,分别为搜索,推荐栏和app列表3:分类使用格子效果

2015-07-17 00:16:36 1421 2

原创 3.1. 内核体系结构

SELinux对所有的内核资源都提供了强制访问控制。在他当前的格式下,SELinux是通过LSM框架合并到内核中的。3.1.1. LSM框架LSM框架背后的思想是允许安全模块插入到内核中以便能够更好的控制Linux默认的基于身份的任意访问控制安全模式。在内核系统调用逻辑中,LSM提供了一系列的钩子(hooks)。这些钩子通常被放置在标准Linux访问检查之后,在内核调用访问真实资源之前。下面的图阐释

2015-07-15 14:46:46 1155

原创 中断与中断处理(二)

**书接上回**(六):中断上下文当执行一个中断处理程序的时候,内核处于中断上下文中.中断上下文由于没有后备进程,所以不可以睡眠,同时中断上下文具有严格的时间限制,因为他打断了其他代码.中断处理程序栈的设置是一个配置选项.原来的时候,中断处理程序共享所中断进程的内核栈,大小是两页的大小,即在32位系统上是8KB,在64位系统上是16KB.现在每一个中断处理程序都有自己的一个中断栈,大小是原来的一半,

2015-07-13 09:22:50 2040

原创 中断和中断处理(一)

(一):中断中断本质上是一种特殊的电信号,由硬件设备发向处理器。处理器在接收到中断后,会马上向操作系统反映此信号的到来,然后就u由操作系统来处理这些新到来的数据。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标志。这些中断值被称为中断请求线(IRQ)。中断是随时随地发生的,也就是说中断并不考虑与处理器的时钟同步。异常:异常的产生必须与处理器时钟同步,异常也被成为同步中断。在处理器执行到由于

2015-07-13 07:45:34 3327 2

原创 模拟社会关系

本实例有求设计一个模拟社会关系的数据结构,每个人的信息用结构表示,包含名字,性别和指向父亲,母亲,配偶,子女的指针(设只限两个子女)。要求编写以下函数:增加一个新人的函数 建立人与人之间关系的函数,父子 、母子、配偶等 检查某两人之间是否是堂兄妹该实例的主要目的是联系C中结构体的使用,下面是函数的实现:#include <stdio.h>#include <stdlib.h>#inclu

2015-07-11 10:41:08 1820 2

模拟社会关系

本实例有求设计一个模拟社会关系的数据结构,每个人的信息用结构表示,包含名字,性别和指向父亲,母亲,配偶,子女的指针(设只限两个子女)。要求编写以下函数:增加一个新人的函数 建立人与人之间关系的函数,父子 、母子、配偶等 检查某两人之间是否是堂兄妹该实例的主要目的是联系C中结构体的使用,下面是函数的实现:#include &lt;stdio.h&gt;#include &lt;...

2015-07-11 10:41:00 499

原创 android回调函数

在我们进行android开发的时候,经常遇到一些回调函数,其中,我们最常用的回调就是,当我们对一个组件设置监听的时候,其实就相对于设置的回调函数。例如:Button btn = (Button)findViewById(R.id.btn);btn.setOnClickListener(new Button.OnClickListener(){//创建监听 public

2015-07-11 00:48:42 1710

android回调函数

在我们进行android开发的时候,经常遇到一些回调函数,其中,我们最常用的回调就是,当我们对一个组件设置监听的时候,其实就相对于设置的回调函数。例如:Button btn = (Button)findViewById(R.id.btn);btn.setOnClickListener(new Button.OnClickListener(){//创建监听 ...

2015-07-11 00:48:00 220

原创 报数游戏

(1):问题提出设由n个人站成一个圈,分别编号1,2,3,4….n。从第一个人开始报数每次报数为m的人被从圈中推出,其后的人再次从1开始报数,重复上述过程, 直至所有人都从圈中退出。要求程序由用户输入整数m和n,求这n个人从圈中推出的先后顺序。(2):解决思路可利用链表求解这个问题,先由n形成一个有n个表元组成的环,其中n个表元依次置值1~n。然后,从环的第一个表元出发,连续掠过m-1个表元,第m-

2015-07-05 12:41:00 1003

报数游戏

(1):问题提出设由n个人站成一个圈,分别编号1,2,3,4….n。从第一个人开始报数每次报数为m的人被从圈中推出,其后的人再次从1开始报数,重复上述过程, 直至所有人都从圈中退出。要求程序由用户输入整数m和n,求这n个人从圈中推出的先后顺序。(2):解决思路可利用链表求解这个问题,先由n形成一个有n个表元组成的环,其中n个表元依次置值1~n。然后,从环的第一个表元出发,连续掠过m-...

2015-07-05 12:41:00 184

原创 失算问题(一)

1:问题提出相传现在流行的国际象棋是古代舍罕王的在想达依儿发明的。舍罕王十分喜爱象棋,决定让宰相自己要求得到什么赏赐。这位聪明的宰相指着8x8共64格的象棋盘说:陛下,请赏赐给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格放2粒,第3格放4粒,以后每一格子都比前一格增一倍,依次放完棋盘上的64格,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的诺言吗?共有多少麦子赏

2015-06-29 00:48:44 1177

失算问题(一)

1:问题提出相传现在流行的国际象棋是古代舍罕王的在想达依儿发明的。舍罕王十分喜爱象棋,决定让宰相自己要求得到什么赏赐。这位聪明的宰相指着8x8共64格的象棋盘说:陛下,请赏赐给我一些麦子吧,就在棋盘的第1个格子中放1粒,第2格放2粒,第3格放4粒,以后每一格子都比前一格增一倍,依次放完棋盘上的64格,我就感恩不尽了。舍罕王让人扛来一袋麦子,他要兑现他的许诺。请问,国王能兑现他的诺言吗...

2015-06-29 00:48:00 247

原创 系统调用(二)

(五):系统调用的实现1:实现系统调用实现一个系统调用就是考虑他的用途,每一个系统调用都有一个确定的用途,在Linux中不提倡采用多用途的系统调用(一个系统调用通过传递不同的参数值来选择完成不同的工作)。2:参数验证系统调用必须仔细检查他们所有的参数是否合法有效。最重要的一项检查就是检查用户提供的指针是否有效。 在接收一个用户空间的指针之前,内核必须保证:​1:指针指向的内存区域属于用户空间,进程

2015-06-23 20:35:29 974

系统调用(二)

(五):系统调用的实现1:实现系统调用实现一个系统调用就是考虑他的用途,每一个系统调用都有一个确定的用途,在Linux中不提倡采用多用途的系统调用(一个系统调用通过传递不同的参数值来选择完成不同的工作)。2:参数验证系统调用必须仔细检查他们所有的参数是否合法有效。最重要的一项检查就是检查用户提供的指针是否有效。 在接收一个用户空间的指针之前,内核必须保证:​1:指针指向的内...

2015-06-23 20:35:00 194

原创 系统调用(一)

(一):与内核通信系统调用在用户空间和硬件设备之间添加了一个中间层。该层主要有三个作用:​1:他为用户空间提供了一种硬件的抽象接口​2:系统调用保证了系统的稳定和安全。​3:每个进程都运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑。在Linux中,系统调用是用户空间访问内核的唯一手段。(二):API,POSIX,C库一般情况下,应用程序通过在用户空间实现的

2015-06-23 20:31:14 1182

系统调用(一)

(一):与内核通信系统调用在用户空间和硬件设备之间添加了一个中间层。该层主要有三个作用:​1:他为用户空间提供了一种硬件的抽象接口​2:系统调用保证了系统的稳定和安全。​3:每个进程都运行在虚拟系统中,而在用户空间和系统的其余部分提供这样一层公共接口,也是出于这种考虑。在Linux中,系统调用是用户空间访问内核的唯一手段。(二):API,POSIX,C库一般情况下,应用...

2015-06-23 20:31:00 196

原创 进程调度(四)

紧接上一篇!!(二)抢占和进程上下文上下文切换,就是从一个可执行进程切换到另一个可执行进程,由定义在kernel/sched.c中的context_switch()函数处理,该函数主要完成两项基本工作:​1:调用声明在asm/mmu_context.h中的switch_mm(),该函数负责把虚拟内存从上一个进程映射切换到新进程中。​2:调用声明在asm/system.h文件中的switch_to(

2015-06-23 11:13:22 942

进程调度(四)

紧接上一篇!!(二)抢占和进程上下文上下文切换,就是从一个可执行进程切换到另一个可执行进程,由定义在kernel/sched.c中的context_switch()函数处理,该函数主要完成两项基本工作:​1:调用声明在asm/mmu_context.h中的switch_mm(),该函数负责把虚拟内存从上一个进程映射切换到新进程中。​2:调用声明在asm/system.h文件中的sw...

2015-06-23 11:13:00 149

原创 进程调度(三)

(一)睡眠和唤醒休眠(被阻塞)的进程处于一个特殊的不可执行状态。无论什么原因,导致进程进入休眠状态,内核的操作都是相同的:进程把自己标志成休眠状态,从可执行红黑树中移出,放入等待队列,然后调用schedule()选择和执行一个其他进程。唤醒的过程正好相反,进程把自己标志成可运行状态,然后再从等待队列中移到可执行红黑树中。1:等待队列 休眠通过等待队列进程处理,等待队列是由等待某些事件的发生的进程组

2015-06-23 11:08:10 818

进程调度(三)

(一)睡眠和唤醒休眠(被阻塞)的进程处于一个特殊的不可执行状态。无论什么原因,导致进程进入休眠状态,内核的操作都是相同的:进程把自己标志成休眠状态,从可执行红黑树中移出,放入等待队列,然后调用schedule()选择和执行一个其他进程。唤醒的过程正好相反,进程把自己标志成可运行状态,然后再从等待队列中移到可执行红黑树中。1:等待队列 休眠通过等待队列进程处理,等待队列是由等待某些事件的...

2015-06-23 11:08:00 148

原创 使用“结构”统计学生成绩

设学生信息包括学号,姓名和五门功课的成绩,要求编写输入输出 学生信息的函数。在输入一组学生信息后,以学生成绩的总分从高 到低顺序输出学生信息。这个相对来说比较简单,可以创建一个学生的结构体,结构体里面有三个成员:学号,姓名和五门功课的成绩。下面请看一下我的整体代码。这个思路也比较简单,主要是为了练习使用结构体。#include <stdio.h>#include <stdlib.h>#i

2015-06-19 01:34:28 2162

使用“结构”统计学生成绩

设学生信息包括学号,姓名和五门功课的成绩,要求编写输入输出 学生信息的函数。在输入一组学生信息后,以学生成绩的总分从高 到低顺序输出学生信息。这个相对来说比较简单,可以创建一个学生的结构体,结构体里面有三个成员:学号,姓名和五门功课的成绩。下面请看一下我的整体代码。这个思路也比较简单,主要是为了练习使用结构体。#include &lt;stdio.h&gt;#include &...

2015-06-19 01:34:00 462

原创 进程调度(二)

紧接上一文!!!!​3:进程选择在CFS调度里面,当需要选择下一个进程的时候,将会选择最小的vruntime的进程。这个其实就是CFS调度的算法的核心。CFS使用红黑树来组织可运行进程队列,并利用其迅速找到最小的vruntime值的进程。在Linux中,红黑树是一个子平衡的二叉搜索树。下面我们就来看一下如何挑选下一个vruntime最小的进程。1):挑选下一个任务根据红黑树的原理,假设vruntim

2015-06-18 21:28:09 890

进程调度(二)

紧接上一文!!!!​3:进程选择在CFS调度里面,当需要选择下一个进程的时候,将会选择最小的vruntime的进程。这个其实就是CFS调度的算法的核心。CFS使用红黑树来组织可运行进程队列,并利用其迅速找到最小的vruntime值的进程。在Linux中,红黑树是一个子平衡的二叉搜索树。下面我们就来看一下如何挑选下一个vruntime最小的进程。1):挑选下一个任务根据红黑...

2015-06-18 21:28:00 224

原创 进程调度(一)

调度程序负责决定将哪个进程投入运行,何时运行,以及运行多长时间。进程调度程序可看作在可运行态进程之间分配有限的处理器时间资源的内核子系统。(一):多任务多任务操作系统就是能并发的交互执行多个进程的操作系统,多任务系统可以分为两类:非抢占式多任务和抢占式多任务。Linux提供了抢占式多任务,在这个模式下,由调度程序来决定什么时候停止一个进程的运行,以便其他进程能够得到执行机会,这个强制挂起的动作就叫做

2015-06-18 21:24:27 1082

进程调度(一)

调度程序负责决定将哪个进程投入运行,何时运行,以及运行多长时间。进程调度程序可看作在可运行态进程之间分配有限的处理器时间资源的内核子系统。(一):多任务多任务操作系统就是能并发的交互执行多个进程的操作系统,多任务系统可以分为两类:非抢占式多任务和抢占式多任务。Linux提供了抢占式多任务,在这个模式下,由调度程序来决定什么时候停止一个进程的运行,以便其他进程能够得到执行机会,这个强制挂起...

2015-06-18 21:24:00 200

原创 进程管理(四)

接着上一文,我们看一下do_fork()函数:long do_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, unsigned long stack_size, int __user *parent_tidp

2015-06-16 20:55:44 1102

进程管理(四)

接着上一文,我们看一下do_fork()函数:long do_fork(unsigned long clone_flags, unsigned long stack_start, struct pt_regs *regs, unsigned long stack_size, int __user *parent_...

2015-06-16 20:55:00 149

原创 进程管理(三)

(一):进程创建linux不同于其他操作系统,linux在进程的创建的时候,将进程的创建和执行程序分成了两个函数,fork()和exec()。进程在创建的过程中,首先通过fork()函数拷贝一份当前进程来创建一个子进程。子进程和父进程的区别仅仅在于PID,PPID(父进程的进程号,子进程将其设置为被拷贝进程的进程号)和某些资源以及统计量(被挂起的信号等)。exec()函数负责执行负责执行可执行文件并

2015-06-16 20:49:21 863

进程管理(三)

(一):进程创建linux不同于其他操作系统,linux在进程的创建的时候,将进程的创建和执行程序分成了两个函数,fork()和exec()。进程在创建的过程中,首先通过fork()函数拷贝一份当前进程来创建一个子进程。子进程和父进程的区别仅仅在于PID,PPID(父进程的进程号,子进程将其设置为被拷贝进程的进程号)和某些资源以及统计量(被挂起的信号等)。exec()函数负责执行负责执行可执...

2015-06-16 20:49:00 159

原创 扑克牌的结构定义

使用结构定义一副扑克牌,并对变量赋值 扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。下面是代码的实现部分:#include <stdio.h>#include <stdlib.h>#include <string.h>/** * 使用结构定义一副扑克牌, * 并对变量赋值 * * 扑

2015-06-16 10:49:44 5054

扑克牌的结构定义

使用结构定义一副扑克牌,并对变量赋值 扑克牌有四种花色:草花,方块,红心和黑桃,可将花色说明为枚举类型。扑克牌类型为结构类型,包含两个成分:分别存储牌的花色和牌的面值,其中面值为字符数组。下面是代码的实现部分:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;string.h&gt;/** * 使用结构...

2015-06-16 10:49:00 633

原创 进程管理(二)

进程描述符中包含的数据能完整地描述一个正在执行的程序:他打开的文件,进程的地址空间,挂起的信号,进程的状态等。​1:分配进程描述符linux通过使用slab分配器分配task_struct结构,这样能够达到对象复用和缓存着色的目的。现在只需在栈底或栈顶创建一个新的结构struct thread_info结构即可。首先我们先看一下thread_info的结构:struct thread_info {

2015-06-16 01:10:59 804

进程管理(二)

进程描述符中包含的数据能完整地描述一个正在执行的程序:他打开的文件,进程的地址空间,挂起的信号,进程的状态等。​1:分配进程描述符linux通过使用slab分配器分配task_struct结构,这样能够达到对象复用和缓存着色的目的。现在只需在栈底或栈顶创建一个新的结构struct thread_info结构即可。首先我们先看一下thread_info的结构:struct thre...

2015-06-16 01:10:00 136

原创 进程管理(一)

(一):进程的概念​线程,是在进程中活动的对象。每个线程都拥有一个独立的程序计数器,进程栈和一组进程寄存器。内核调度的是线程而不是进程。在Linux中,进程和线程的区别比较微妙,一会我们通过源码来查看其两个的区别。进程提供两种虚拟机制,虚拟处理器和虚拟内存。其中在线程之间可以共享虚拟内存,但是每个线程都拥有各自的虚拟处理器。在linux中,创建一个进程的函数是fork(),该系统调用通过复制一个现有

2015-06-16 01:00:12 898

framebuffer绘图

该资源实现了对framebuffer进行编程在命令行界面上进行编程的实例.

2015-10-26

selinux by example

这本书通过实例讲解了selinux中的一些特性,讲解比较透彻易懂

2015-08-17

安卓市场框架搭建--3

这是进一步完成框架搭建所完成的代码,添加了首页,分类,主体,推荐等activity

2015-07-23

seandroid论文(注释版)

该文档是我的学习SEAndroid的时候加上注释之后的论文。

2015-07-17

androidMarket01

这个是和我的博客中《一步一步完成安卓市场》同步的,这个是第一个版本,小型框架的搭建。

2015-07-17

android教程

该书籍能够使读者更快的入门android开发!

2013-06-29

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

TA关注的人

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