2014年4月1日

[代码搜索]OpenGrok搭建简易教程

摘要: 面对着动辄几十GB且随时不断更新的大型代码,我们产生了以下需求:1.快速搜索代码2.代码存放于本地/服务器3.代码可跳转4.跨平台5.易于维护...显然SourceInsight、ctags、grep等工具在这些场景下就不太适合,于是有了OpenGrok这类代码搜索引擎。背景知识交给Wikipedi... 阅读全文

posted @ 2014-04-01 23:49 JacobChen2012 阅读(714) 评论(0) 推荐(0) 编辑

2014年3月13日

[Android]Dalvik的BOOTCLASSPATH和dexopt流程

摘要: BOOTCLASSPATH简介1.BOOTCLASSPATH是Android Linux的一个环境变量,可以在adb shell下用$BOOTCLASSPATH看到。2.BOOTCLASSPATH于/init.rc文件中export,如果没有找到的话,可以在init.rc中import的文件里找到(如import /init.environ.rc)。3.init.rc文件存在于boot.img的ramdisk映像中。如果仅仅是修改/init.rc文件,重启后会被ramdisk恢复,所以直接修改是没有效果的。4.boot.img是一种特殊的Android定制格式,由boot header,ker 阅读全文

posted @ 2014-03-13 22:29 JacobChen2012 阅读(9095) 评论(0) 推荐(1) 编辑

2014年3月3日

Android外部存储 - 官方文档解读

摘要: 预备知识:External Storage Technical Information摘要:"The WRITE_EXTERNAL_STORAGE permission must only grant write access to the primary external storage on a device. Apps must not be allowed to write to secondary external storage devices, except in their package-specific directories as allowed by synt 阅读全文

posted @ 2014-03-03 21:35 JacobChen2012 阅读(1894) 评论(0) 推荐(0) 编辑

2014年2月26日

Android Memory/Resource Leak总结

摘要: Android的内存/资源泄露,不容易发现,又会引发app甚至是system的一系列问题。在这里我根据以往碰到的相关问题,总结出了一些检测和修改方法。*有可能造成memory leak的代码是Framework层的文件,但最终影响了App层的进程;所以发现app进程出现memory leak的时候,... 阅读全文

posted @ 2014-02-26 00:14 JacobChen2012 阅读(18633) 评论(2) 推荐(2) 编辑

2013年5月12日

ime

摘要: Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard) android输入法01_02 阅读全文

posted @ 2013-05-12 22:09 JacobChen2012 阅读(203) 评论(0) 推荐(0) 编辑

2013年1月26日

bat批处理脚本实现proxy服务器设置

摘要: 由于使用代理服务,需要较频繁地设置代理服务器。平常的做法是到Internet选项中手动选择,但是时间久了还是觉得麻烦。于是想到了以下方法:1.编写reg文件在对话框中修改的参数最后还是对应到注册表的参数值,直接编写reg文件也能修改相应的值1 REGEDIT42 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]3 "ProxyEnable"=dword:000000014 "ProxyServer"="1.0.0.1:8080" 阅读全文

posted @ 2013-01-26 10:33 JacobChen2012 阅读(3027) 评论(2) 推荐(0) 编辑

2012年10月16日

AndroidSensor的exiting main sensor thread问题

摘要: 使用sensor的时候,有一个问题困扰了我很多天。每次打开app读取sensor数值,只要过了60秒,logcat就会出现:更奇怪的是,只要按过按键之后,出错时间就会重新被更新为60秒之后。在反复检查了driver和hal的代码并确认无误之后,终于不得不把目光转向了更上层。由于简短的jni代码只是负责调用,并没有再添加多少处理代码;而app代码非常简单,所以把问题锁定在了framework层。根据报错的调试信息,可以快速地通过ctrl + F定位到SensorManager.java所以问题出错的原因是sListeners.isEmpty()返回true,而sListeners的定义是:sta 阅读全文

posted @ 2012-10-16 21:50 JacobChen2012 阅读(362) 评论(0) 推荐(0) 编辑

2012年7月22日

如何记录Dijkstra最短路径的过程

摘要: Dijkstra算法 假设找出v0到其他顶点的最短路径 s[N]初始化为0,如果找到v0到vn的最短路径则把s[n]置一 dist[N]初始化为v0到其他顶点的直接路径,两个没相连的顶点用MAX值代入 1.从所有未找到最短路径的顶点中找出dist最小的数值的下标u,所以s[u]置位。 2.用v0到vu的长度加上vu到其他顶点的长度,如果发现比dist中的小,则更新dist中的数值,但注意此时无需把s[]置位,因为此时得到的并不一定是最短路径。然后跳回1,重新检查v0到s[]中还没被置位的顶点。通过算法我们可以写代码算出各个最短路径的数值,可是问题来了:最短路径是得到了,可是最短路径该怎么走,我 阅读全文

posted @ 2012-07-22 23:30 JacobChen2012 阅读(1473) 评论(1) 推荐(0) 编辑

2012年7月8日

Linux中避开执行权限的小技巧

摘要: 刚才在修改执行文件权限时,突然想到了一个可以绕过root对普通用户限制执行权限的好方法。如果文件file没有x权限而还有r权限的话,那么使用命令cat file > file2可以把file的二进制代码重定向到file2当中,此时ls -l file2,发现权限是-rw-rw-r--,但好处是所有者和所在组都变成当前用户了,那么此时只需chmod u+x file2,就可以顺利地执行file2了!原理就是file中存储的是可执行的二进制代码,读file显示出来的内容虽然我们无法理解,但却正是机器能理解的语言,所以只要想方法把这段二进制机器码存放在另外一个有执行权限的文件里,也就相当于获得 阅读全文

posted @ 2012-07-08 21:55 JacobChen2012 阅读(693) 评论(1) 推荐(0) 编辑

2012年5月19日

C/C++中的const

摘要: const是C和C++中的关键字,但是两者的const并不是完全相同的。其实在C语言中一开始只是用#define来表示常量,后来才引进C++中的const。那既然都有了#define,为什么还要再增加const呢?因为const比起#define有以下优点: 明确指定类型 灵活限制作用域 const可用于更复杂的数据类型,如数组、结构体等等 从汇编角度看,const定义常量只是给出了对应的内存地址,而#define给出的是立即数。所以const更节省程序空间,且在编译期没有存储于读内存的操作,效率高 一、那const定义的数据到底是常量还是只读变量?1 const int num = 10;. 阅读全文

posted @ 2012-05-19 16:27 JacobChen2012 阅读(1041) 评论(1) 推荐(0) 编辑

导航