- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 android: busybox am aapt
busybox: 和linux一样,android常用的命令都是存放在/system/bin目录下的,不过和linux相比,android由于阉割还是少了不少命令的,诸如常用的find等命令,不过可以下载busybox,推送到/system/bin目录下,修改权限,即可增加一些常用的shell命令。使用方式就是在原有命令的前面加上busybox,如: busybox find . -
2015-05-02 12:40:46
462
原创 apk安装:adb push && adb install
android 常用的目录结构的作用:/system/app: 系统apk的存储目录/data/app: 用户(非系统)apk的存储目录/data/data: 存放所有软件(包括/system/app和/data/app)的lib和xml等文件信息安装APK的两种方式:1. adb push *.apk install_path2. adb install
2015-05-01 20:55:58
771
原创 javap查看函数签名
javap -s -p java.lang.String-s: 显示签名(只显示public类型的签名)-p:显示所有函数、成员变量的签名
2014-12-19 21:46:02
1194
原创 android ueventd
Android ueventd实现不做过多介绍,具体参见Init源码(ueventd是init的一个软连接,参见Init目录下的Android.mk),ueventd的主要功能是为cold plug和hot plug创建或删除设备节点。
2014-12-15 00:23:55
546
原创 PF_NETLINK
Netlink socket 是一种Linux特有的socket,用于实现用户进程与内核进程之间通信的一种特殊的进程间通信方式(IPC) ,也是网络应用程序与内核通信的最常用的接口。 Netlink 是一种在内核和用户应用间进行双向数据传输的非常好的方式,用户态应用使用标准的 socket API 就能使用 Netlink 提供的强大功能,内核态需要使用专门的内核 API 来使用 Net
2014-12-15 00:17:10
4466
1
原创 gdb调试core文件
1,程序crash,如何能生成core文件? ulimit -c unlimited(或者根据自己的经验值设置一个合理的数据)执行完上述命令后,当程序挂掉的时候会自动留下自己的墓碑信息,给后人留下线索信息!2,如何debug core文件? 这里假定core文件的name为corer, 与core文件对应的同一版本的程序(带symbol)name为crasher
2014-12-12 23:23:40
3774
转载 typeof 详解
一,说明 typeof的参数可以是两种形式:表达式或类型。 1,表达式的的例子: typeof(x[0](1) 这里假设x是一个函数指针数组,这样就可以得到这个函数返回值的类型了。 如果将typeof用于表达式,则该表达式不会执行。只会得到该表达式的类型。 以下示例声明了int类型的var变量,因为表达
2014-12-11 13:09:59
998
原创 android 编译image指令
system.imag: make systemimageuserdata.img: make userdataimageramdisk.img: make ramdiskmake snod: 打包system.img
2014-12-05 22:45:58
558
原创 linux shell 改变当前工作目录
#!/bin/bash dir=~/proj/android-2.3.4 #name:go.shcd $dir在终端上执行./go.sh,但是当前工作目录依旧保持不变,原因就是执行脚本时候,只是在当前的shell下开了一个子进程,切换目录是在子进程里面执行的,跟当前终端进程木关系。解决办法:方法一: source ./go.sh方法二::. ./go.sh 第一个.是
2014-12-04 23:33:32
9038
原创 android: ram rom sdcard
今天吃饭,还遇到有人在讨论这几个东西,简单说下我的理解:ram: 相当于电脑的内存rom: 相当于手机机身的存储空间,整个手机系统都是存储在rom空间里面的,当你安装app的时候通常也会使用一些rom空间sdcard: 买个Kingston卡插上,sdcard就指向Kingston的存储空间命令行配置模拟器ram、rom: emulator -memory -p
2014-11-26 20:55:00
618
原创 android: layout_gravity与gravity区别及动态设置
1. layout_gravity与gravity区别: gravity:是用来指定文字在控件中的对齐方式。 layout_gravity:是用来指定控件在父控件(布局)的对齐方式。 注意: 当LinearLayout的排列方式为horizontal时,只有垂直方向上的对齐方式才能生效; 当LinearLayout的排列方式为vertic
2014-11-12 20:24:58
8812
原创 Linux 互斥量Mutex 进程间共享
Mutex 本身是支持进程内和进程间两种类型的,平时在使用的时候用到的最多的还是进程内同步,昨天在看android framework的时候,发现其在barrier上还是使用了Mutex的进程间同步。实现方式还是蛮简单的,将pthread_mutex_t数据结构保存到共享内存上,从而实现多个进程共享同一内存,不像windows上指定一个名字就搞定了,废话少说,上代码:
2014-11-03 17:27:09
1120
原创 是该写博客了
好久没写文章了,每次都提醒自己该写点什么,可每次都搁浅了,渐渐发现,自己懒了,懈怠了,想想这些都后怕。有时候虽然想写点什么,可当提起笔的时候又不知道写啥了。回首毕业四年,感谢老婆的一路相随,感谢家人,尤其是岳父岳母,让我在上海的这个大都市有了了自己的小窝,有了自己的小车,也有了我们爱的结晶 --- 小妮妮,我想我是幸运的,也是幸福的,真心感谢你们!现在对我来说,可能也就是好
2014-10-21 23:21:54
421
原创 Ubuntu 下载镜像
网易下载镜像: http://mirrors.163.com/ubuntu-releases/ 搜狐下载镜像: http://mirrors.sohu.com/ubuntu-releases/
2014-10-19 16:00:39
457
转载 android中Intent详解
转自: http://bbs.hiapk.com/thread-7959-1-1.html 在一个Android应用中,主要是由四种组件组成的,这四种组件可参考“Android应用的构成”。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。 在这些组件之间的通讯中,主要是由Intent协助完成的。Intent负责对应
2014-02-19 20:24:18
554
转载 “android.intent.category.DEFAULT”的目的是什么?
转自: http://blog.sina.com.cn/s/blog_98a12cb701013vv2.html1、要弄清楚这个问题,首先需要弄明白什么是implicit intent什么是explicit intent。Explicit Intent明确的指定了要启动的Acitivity ,比如以下Java代码: Intent intent= new Intent(this, B
2014-02-19 20:19:34
785
1
转载 android 线程间通信
从网上找了下,下面几个比较详细具体,还不错,mark一下吧android线程间的通信: http://www.cnblogs.com/allin/archive/2010/05/19/1738800.htmlandroid线程间通信机制: http://www.cnblogs.com/leon19870907/archive/2012/02/25/2367549.htmlandro
2014-01-24 10:55:47
609
转载 android handler用法总结
转自: http://blog.sina.com.cn/s/blog_77c6324101016jp8.html一、Handler的定义: Handler主要接收子线程发送的数据, 并用此数据配合主线程更新UI,用来跟UI主线程交互用。比如可以用handler发送一个message,然后在handler的线程中来接收、处理该消息,以避免直接在UI主线程中处理事务导致影响UI主线程的其
2014-01-23 09:46:23
689
原创 git提交本地分支到远程分支
1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set-url --p
2014-01-21 11:06:02
1477
转载 设计模式Reactor和Proactor
转自: http://xmuzyq.javaeye.com/blog/783218=====================================================在高性能的I/O设计中,有两个比较著名的模式Reactor和Proactor模式,其中Reactor模式用于同步I/O,而Proactor运用于异步I/O操作。 在比较这两个模式之前,我们
2014-01-13 13:00:30
674
2
转载 linux 自定义信号(1)
从来没试过linux自定义信号,查了下,说是系统只提供了SIGUSR1和SIGUSR2两个,就两个够吗?更要命的是如果要自定义信号如#define SIG_MYSIG ....的话要改内核才行,哥瞬间就崩溃了,以前一直对linux的敬仰顿然全无,还好在这里找到了方法http://bbs.chinaunix.net/viewthread.php?tid=989499即是可以的,可
2014-01-13 11:09:33
929
转载 虚拟机缩小磁盘占用空间
解决办法如下:1) 首先将Guest机上的不用磁盘全部请0 cd ~ #进入Home目录 cat /dev/zero > zero.fill #将磁盘所有空余空间全部写成0,'''请耐心等待程序返回'''
2013-12-24 21:22:15
1285
原创 浮点数与零比较
#define FLOAT_PRECISION 0.000001fNP_BOOL isFloatEqual(FLOAT fValue1, FLOAT fValue2){ const FLOAT fPrec = FLOAT_PRECISION; return ((fValue2 > (fValue1 - fPrec)) && (fValue2 }
2013-12-18 20:58:22
577
原创 Linux cmd: ldd pmap nm
ldd命令:ldd是用来分析程序运行时需要依赖的动态库的工具。eg:jiangmingfu@ubuntu:~/work/code/gdb$ ldd debuglinux-gate.so.1 => (0x00e5f000)libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0x008ca000)libm.so.
2013-11-17 21:37:18
924
原创 使用符号表调试release程序
如果要生成单独的调试信息文件,命令如下:objcopy –only-keep-debug foo foo.dbg如果要去除调试信息(还可以使用strip命令),命令如下:objcopy --strip-debug foo foo.no_dbg (不从源文件拷贝调试符号信息和相关的段。对使用-g编译生成的可执行文件执行之后,生成的结果几乎和不用-g进行编译生成可执行文件一样).
2013-11-17 21:34:59
2140
1
原创 ndk crash分析
目前我所接触的android产品或项目,都是采用Java/JNI/C++的形式组织的。引擎或者数据处理的逻辑会通过C/C++处理,然后通过JNI封装,提供给Android UI(Java)调用。很多crash会发生在ndk这一层,crash后,logcat会疯狂的输出一堆信息,看着让人头疼,其实细看,还是能看出不少猫腻的。下面我就结合自身情况,简单介绍下如何给crash增加更多有用的输出信
2013-10-07 13:55:34
1410
转载 Linux Futex的设计与实现
转: http://blog.csdn.net/jianchaolv/article/details/7544316引子在编译2.6内核的时候,你会在编译选项中看到[*] Enable futex support这一项,上网查,有的资料会告诉你"不选这个内核不一定能正确的运行使用glibc的程序",那futex是什么?和glibc又有什么关系呢?1. 什么是FutexFutex
2013-10-05 22:10:36
665
转载 linux内存中buffer与cache的区别
free 命令相对于top 提供了更简洁的查看系统内存使用情况: $ free total used free shared buffers cached Mem: 255268 238332 16936 0 85540 126384-/+ buffers/cache: 26408
2013-10-05 21:52:43
724
转载 Linux内存占用过高的问题
最近这个月问题,老有人问为何开机后,还没有其他服务,mem就被用完了?是不是内存泄露?是否要重启服务?只能说不要看现象,要看本质才能找到问题的根源。往往给出这样的结果,怀疑内存用了90%:Mem: 4146788k total, 3825536k used, 321252k free, 213488k buffersSwap: 2650684k total, 80k use
2013-10-05 21:48:26
997
转载 Linux内存使用-free结果分析
Linux内存使用量查看free结果分析 Linux的内存管理,实际上跟windows的内存管理有很相像的地方,都是用虚拟内存这个的概念,说到这里不得不骂MS,为什么在很多时候还有很大的物理内存的时候,却还是用到了pagefile.所以才经常要跟一帮人吵着说Pagefile的大小,以及如何分配这个问题,在Linux大家就不用再吵什么swap大小的问题,我
2013-10-05 21:40:46
650
转载 服务器编程模型
从线程的角度,可以将服务器编程分为两类:单线程和多线程。 【单线程模型】 一个进程中只有一个线程,由于只有一个线程,所以要实现高性能,必须与 “non-blocking I/O + I/O multiplexing” 相结合,另外 libevent 本身也是单线程的。相对于多线程,单线程 server 没有线程切换以及加锁的开销,劣势是不能充分利用 CPU 的多核优势,不
2013-10-05 11:35:00
696
原创 重载箭头操作符
箭头操作符与众不同。它可能表现得像二元操作符一样:接受一个对象和一个成员名。对对象解引用以获取成员。不管外表如何,箭头操作符不接受显式形参。这里没有第二个形参,因为 -> 的右操作数不是表达式,相反,是对应着类成员的一个标识符。没有明显可行的途径将一个标识符作为形参传递给函数,相反,由编译器处理获取成员的工作。当这样编写时: point->action();由于优先
2013-10-04 13:12:13
668
原创 github下载工程
简单介绍下如何下载github下的project。第一步: 申请github.com账号。第二步: 如果是windows,请下载git preview并安装(安装完成会生成 git bash)第三步: 生成ssh keys:启动终端(windows 下就是git bash),敲入如下命令:ssh-keys -t -rsa -C "xxxx"中间会让你建立passphras
2013-09-28 16:43:52
653
转载 Git常用操作命令
Git常用操作命令收集:1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git re
2013-09-16 18:10:24
807
转载 Git fetch和git pull的区别
原文: http://www.tech126.com/git-fetch-pull/ Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log -p master..origin/mastergit merge origin/master
2013-09-16 18:10:19
621
转载 fatal: CRLF would be replaced by LF
转自: http://toub.es/2012/05/28/fatal-crlf-would-be-replaced-lfI remember it was a Friday, I wanted to commit my changes and go home to start a good weekend.When I tried to add new files to my l
2013-09-10 20:43:59
1720
转载 adb logcat查看日志
转自:http://blog.csdn.net/xyz_lmn/article/details/7004710使用 logcat 命令 查看和跟踪系统日志缓冲区的命令logcat的一般用法是:[adb] logcat [option>] ... [filter-spec>] ... 下文介绍过滤器和命令选项,详细内容可参见Listing o
2013-08-30 15:16:28
647
转载 MySQL集群:主从数据库配置 实现查询负载
原文出自: http://www.cnblogs.com/luoine/archive/2010/12/14/1906001.html在做web应用系统中,如果数据库出现了性能瓶颈,而你又是使用的MySQL数据库,那么就可以考虑采用数据库集群的方式来实现查询负载了。因为一般来讲任何一个系统中数据库的查询操作比更新操作要多的多,因此通过多台查询服务器将数据库的查询分担到不同的查询数据库从而提
2013-08-11 22:16:48
594
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人