应用程序初始化时需要批量的向sqlite中插入大量数据,单独的使用for+Insert方法导致应用响应缓慢,因为 sqlite插入数据的时候默认一条语句就是一个事务,有多少条数据就有多少次磁盘操作。我的应用初始5000条记录也就是要5000次读写磁盘操作。
而且不能保证所有数据都能同时插入。(有可能部分插入成功,另外一部分失败,后续还得删除。太麻烦)
解决方法:
添加事务处理,把5000条插入作为一个事务
我们使用SQLite的事务进行控制:
db.beginTransaction(); //手动设置开始事务
try{
//批量处理操作
for(Co...
android, sqlite, 数据库优化阅读全文
很多初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于 iPhone下有诸如Cocos2d-iphone之类的免费游戏引擎可供使用,一边自暴自弃的抱怨Android平台游戏开发难度太高,又连个像样的游戏引擎也没有,甚至误以为使用Java语言开发游戏是一件费力不讨好且没有出路的事情。
事实上,这种想法完全是没有必要且不符合实际的,作为能和苹果iOS分庭抗礼的Android(各种意义上),当然也会有相当数量的游戏引擎存在。仅仅因为我们处于这个...
android, 游戏开发, 游戏引擎阅读全文
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
说明:把档案串连接后传到基本输出(萤幕或加 > fileName 到另一个档案)
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2 把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >> text...
阅读全文
功能说明:查找文件里符合条件的字符串。
语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
补充说明:grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设grep指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为“-”,则grep指令会从标准输入设备读取数据。
参 数:
-a或--...
阅读全文
2012年05月18日
⁄ C++, 操作系统
⁄ 被围观 1,488 次+
项目背景:
在自己的电脑装了linux 虚拟机,想要在外网也能ssh到虚拟机进行开发,由于路由ip是动态ip,想到网上找一些动态dns域名解析,但是效果不大好,所以想到自己进行外网ip的管理。
想法:
用C++写一个界面客户端,随系统启动,定时访问自己的cgi,更新自己的外网ip;这个客户端能支持简单的几个操作:启动,退出,设置更新间隔,是否随系统启动等。
写一个cgi,接收client请求,并记录最新的外网ip到数据库;
写另外一个cgi,在其他地方访问能列出当前最新的外网ip,以及历史ip列表。
可以再写一个跳...
阅读全文
下面是网上找的方法:
注意:这里的修改要非常小心,出来命令不能敲错之外,一定要记得执行chmod +x autologin,不然搞不好可能会导致启动不了,我在操作的时候就因为忘了执行chmod +x autologin,导致系统一直启动不起来,最后只能通过其他引导系统,并且改回原先的配置(我用的是recovery进入系统,可以直接执行chmod +x autologin)。
一、写脚本autologin
代码:
#!/bin/bash
/bin/login -f <username> #你的用户名
chmod +x autologin设置可执行权限,移动到/usr/bin/下。
...
阅读全文
首先安装ctags,安装过程网上很多,就不多讲,安装之后执行ctags -R,就可以在本项目内实现代码跳转了,但不能跳转到不是在本项目的代码中定义的tag。例如在上面的图中,本地定义了一个类A,在main函数中定义了一个A类的对象,我们可以按“Ctrl+]”组合键跳转到class A那一行。然后可以按“Ctrl+O”跳转回来。
如果想实现跳转到非本项目的tag,则必须让Vim知道这些tag在哪。刚才的项目在/home/user/code/目录下,现在假设又有一个项目在/home/user/program/下,那么我们需要在此项目下生成program这个项目的tags文件(...
阅读全文
Linux中的man是按照章节和档案名字来编排的,man的格式是:
Man [章节] [档案名字]
例如要查询系统调用connect函数的帮助,则可以用:man 2 connect;
查看C库函数printf:man 3 printf
在C/C++编程中如果想知道一个函数的用法和声明头文件,则可以通过man来查看 。
具体章节:
编号
代表內容
1
使用者在shell中可以操作的指令或可执行档
2
系統核心可呼叫的函数与工具等
3
一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)
4
装置档案的说明,通常在/dev下的档案
5
...
阅读全文
概述
——
什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些 Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile 了,会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。
因为,makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别...
阅读全文
protobuf
项目主页:http://code.google.com/p/protobuf/
下载:http://code.google.com/p/protobuf/downloads/list protobuf-2.4.1.tar.gz
解压后进入protobuf-2.4.1目录进行安装:
1、./configure(注:默认可能会安装在/usr/local目录下,可以加--prefix=/usr来指定安装到/usr/lib下,可以免去路径的设置,路径设置见Linux命令pkg-config)
./configure --prefix=/usr/local/protobuf
2、make
3、make check
4、make install(需要超级用户root权限)
二、使用
1、写proto文件,定义消息具体格式。如:helloworld...
阅读全文