为了在windows上用Source Insight查看android源码,我们通常会把从linux下check out的代码拷贝一份至windows下。这样会带来一个问题,源码里面的.git版本库信息也同时被拷贝了一份,而在查看源码的时我们是不需要这些信息的,同时.git文件会占用你几个G的空间。所以与Swan一起写了这个删除.git文件的工具,一下是源代码,仅供参考:
#include <dirent.h> #include <stdio.h> #include <string.h>
#include <sys/stat.h>
阅读全文…
一、理解Linux的单用户多任务,多用户多任务概念
Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念。
1、Linux 的单用户多任务
单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点音乐;当然听点音乐还不行,MSN 还得打开,想知道几个弟兄现在正在做什么,这样一样,我在用beinan 用户登录时,执行了gedit 、xmms以及msn等,当然还有输入法fcitx ;这样说来就有点简单了,一个beinan用户,为了完成工作,执行了几个任务;当然beinan这个用户,其它的人还能以远程登录过来,也能做其它的工作。
阅读全文…
gcc生成静态库和动态库
一、库文件简介
简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态库文件的扩展名是.a,共享库文件的扩展名是.so(在CYGWIN环境下,分别叫做.o和.dll)。共享库现在常常被叫做动态库,是由于很多人借用了MS Windows的DLL(Dynamic Linked Library)这个词。
(1)静态库
静态是指每个用到该库的应用程序都拥有一份自己的库拷贝;应用程序运行的时候,即使将库删除也没有问题,因为应用程序自己已经有了自己的拷贝。
(2)共享库
一个共享库有可能被多个所有应用程序共享。因此,对每个应用程序来说,即使不再使用某个共享库,也不应将其删除。此外,应用程序需要正确的环境变量设置(LD_LIBRARY_PATH),从而找到共享库所在的位置,否则,应用程序运行时会报告找不到这个库。
阅读全文…
目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序.GCC不仅功能非常强大,结构也异常灵活.最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等.
Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
使用GCC编译程序时,编译过程可以被细分为四个阶段:
◆ 预处理(Pre-Processing)
◆ 编译(Compiling)
◆ 汇编(Assembling)
◆ 链接(Linking)
阅读全文…
好久没更新博客,最近写了一段文件夹遍历的代码,实现删除文件夹下所有文件的功能
贴上来供大家参考
#include <dirent.h>
#include <stdio.h>
#include <string.h>
void rm_dir(char *path);
void usage();
int main(int argv, char *argc[]) {
if(argv != 2) usage();
rm_dir(argc[1]);
return 0;
}
阅读全文…
有时候有些命令需要用C代码写,编译成可执行程序放到Android系统里,结果不能运行,说找不到文件,而明明文件就在眼前。
有时候想运行一下系统编译出来的工具,结果说不能执行,Can’t execute,而明明就具有执行权限。
这些问题,在很多情况下可以如下解决,而且解决起来居然就这么简单。
对于自己写的C代码,如test.c
#include <stdio.h>
int main() {
printf(“OK”);
return 0;
}
阅读全文…
命令选项参考
下表中列出了Monkey命令行可用的全部选项。
–help
列出简单的用法。
-v
命令行的每一个-v将增加反馈信息的级别。Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息。Level 1提供较为详细的测试信息,如逐个发送到Activity的事件。Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity。
事件
-s <seed>
伪随机数生成器的seed值。如果用相同的seed值再次运行Monkey,它将生成相同的事件序列。
–throttle <milliseconds>
在事件之间插入固定延迟。通过这个选项可以减缓Monkey的执行速度。如果不指定该选项,Monkey将不会被延迟,事件将尽可能快地被产成。
阅读全文…
1、
issue “You are attempting to build on a 32-bit system”
My ubuntu-9.04 is 32-bits system,and android-gingerbread need 64-bits system to build it,so I modified the build system in build to void this issue, if your system is 64-bits, you will not meet this issue.
build/core/main.mk
change
ifneq (64,$(findstring 64,$(build_arch)))
to
ifneq (i686,$(findstring i686,$(build_arch)))
external/clearsilver/cgi/Android.mk,
external/clearsilver/java-jni/Android.mk,
external/clearsilver/util/Android.mk,
external/clearsilver/cs/Android.mk
change
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
to
LOCAL_CFLAGS += -m32
LOCAL_LDFLAGS += -m32
阅读全文…
近期评论