爱我所爱

与狼共舞

androld入门一: @+id与@string

首先来看id=@+id/xxx, 很显然,就是给这个元素设置一个id值,id当然是一个数字,而且设置这个id的目的,当然是为了以后查找用,跟数据库一样,有了这个id, 我们就可以找到对应的记录项。但是程序中很多元素都需要id, 如果每个查找时都是指定一个数字,那程序的可读性也就太糟糕了,android平台给开发者想到的一个办法是,用一个对开发者最简便的办法,来使得元素的 名称和它的id关联起来,使得在资源文件中和在java程序中,都不需要出现元素的数字id, 只需要出现元素的名称即可。

android的办法是资源文件编译的时候,自动生成一个java类R.java,  这个R.java下面又有一个id子类,在id子类里面,就是一些id常量的定义,常量的名字就是资源文件里的文本名,而常量值就是随机分配的一个数字 id, 这些在编译的时候就确定好了,而且是静态的,所以,在其他程序中,用R.id.元素名就可以取得唯一分配的id值。

android自学:搭建android开发环境

摘要:android 开发环境搭建,先下载书上说的google官方的开发包,发现sdk不完整,尤其缺system iamge , 很难下载,最后从百度网盘下载了个完整板,sdk超级全,啥层api都有, 下载下来解压后就直接能用,起eclipse, 新建项目,运行项目一气呵成,不过加压后有小30G, 需要很大的空间,适合我这样的有空间的初学者。下载地址:

http://pan.baidu.com/s/1c0AfYso

虚拟化架构粗体验

我觉得kvm的总体架构还是比较清晰的,总结下,有三点


1,客户os代码工作在非根模式下,这个模式下,敏感指令能得到拦截,由kvm(vmm)接管。


2,kvm(vmm)工作在根模式下,跟客户虚拟机打交道,比如可以直接给虚拟机注入中断等,同时对用户提供/dev/kvm设备文件,用户进程通过这个设备文件与kvm(vmm)打交道,比如qemu用户进程申请创建虚拟机,注册io设备,申请io空间等等。


3,qemu-kvm作为普通用户进程,他现在负责模拟绝大部分io设备,首先设备需要向kvm注册,包括读写函数的注册, kvm截获对该设备的io请求,转交给qemu处理,处理结果最后可能由kvm注入到虚拟机里面。
...

KVM虚拟机代码揭秘——时钟模拟之PIT(8254)

前言:本文归纳了现在的Linux时钟源的种类,并且针对PIT时钟设备分析了KVM是如何模拟时钟的。
 

1. Linux 时钟

时钟是一个系统工作的灵魂,时钟硬件的发展也非常的快,Linux内核里面兼容的时钟种类也非常的多,为了让大家更了解时钟,我先归纳一下 Linux里面的时钟。本文分析的时钟是比较新的linux内核2.6.33,架构是改变最迅速的x86。 linux时钟发展到现在,很多东西已经面目全非了,要理出个头绪来不是很容易。

...

kvm-qemu 设备IO虚拟化

1. 虚拟设备的IO地址注册

 

如我们所知,KVM虚拟机的设备模拟是在QEMU中实现的,而KVM实现的实质上只是IO的拦截。换句话说,真正的虚拟设备IO地址注册是在QEMU代码里面实现的。

在QEMU中,在初始化我们的硬件设备的时候需要注册我们的IO空间,在这里有下面两种IO注册方法:

(1) PIO(port IO) 端口IO

...

第一个拦路虎,多线程编程

        在msql开发设计中,遇到的第一个拦路虎,是多线程程序设计,因为现在的cpu是多核时代,尤其对于负载较高的数据库项目,不使用多线程是不可能的,而多线程的使用也会引人很多问题,甚至包括编程的习惯,而我以前显然没有在多线程上有足够积累,所以,还是老实点,先好好的系统性的学习下多线程编程的相关知识吧。

        还好,很快就锁定了pthreads, 很快就锁定了posix 多线程程序设计这本书,csdn上有下载地址...

我的第一个开源项目

 很多年来,一直靠着google, baidu解决平时遇到的诸多问题,一直以来也想向网络上贡献自己的一点东西,光拿不贡献,还是稍微有点不安,呵呵!

今年夏季以来,持续保持了对数据库实现方面的兴趣,终于决定再好好玩一把,写一个轻量级的数据库管理系统,定位是这样的,构建一个数据库管理系统,满足中小型论坛的基本需求,支持并发,力求快速,确保安全, 尽量具有维护性,可扩展性。我不知道,这个项目我能坚持多久,毕竟不确定性因素太多,但是目前,我还是有很大决心的,不管能走多远,希望自己能一直坚持下去。

...

程序员技能 之 回溯

 以0-1背包问题为例,使用递归回溯和迭代回溯分别实现。

递归回溯:

#include <stdio.h>

#define SIZE 5

#define MAX 140

int w[5] = {10,40,60,20,30};

int v[5] = {8,7,3,6,2};

int you[5];

int cur[5];

 

...

程序员技能之 排序算法

程序员应该拥有哪些技能呢,排序应该是最基本的,且看排序算法:

1, 选择排序 vs  冒泡排序

 基本思想都是按次序找值, 冒泡次序是稳定的,代价是数据移位比较多,保持了(相等值)的原有次序。复杂度都是 0(n2).

2 插入排序
 插入排序的优点是稳定,假如数据本身有序,则效果很好,最坏时间复杂度o(n2)

3, 希尔排序,插入排序的改进,利用局部数据的有序性,以及分治改进排序效率。但不稳定,时间复杂度o(n1.3).

...

数据表schemal文件为什么要用二进制读写

 其实文件的二进制读写和文本文件的读写的主要区别是对数字的读写,写入一个多位数,如果采用文本读写需要占用很多字节,而且这个数字不确定,而如果采用二进制读写,可以采用固定的位数来表示这个一定大小的数字,一来可以节省空间,二来方便读入。所以像数据表的schemal存取,这种高度规范化的数据采用二进制读写是最优的。

分页:[«]1[2][»]

日历

<< 2014-11 >>

Sun

Mon

Tue

Wed

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

控制面板

最新评论及回复

最近留言

Search

站点统计

  • 文章总数:18
  • 评论总数:2
  • 引用总数:0
  • 浏览总数:720
  • 留言总数:0
  • 当前主题:Default主题
  • 当前样式:default

图标汇集

  • RainbowSoft Studio Z-Blog
  • RainbowSoft Studio Z-Blog
  • 本站支持WAP访问
  • 订阅本站的 RSS 2.0 新闻聚合

Powered By Z-Blog 1.8 Walle Build 100427

Copyright xxxx-xxxx Your WebSite. Some Rights Reserved.