android
AKeywordSE
74.125.205.147
展开
-
通过ddms无法检查的内存泄漏如何查
Ps找到对应的进程pidadb shell cat /proc/pid/smaps > d:smaps_data001.txtadb shell cat /proc/pid/smaps > d:smaps_data002.txt比较这2个文件差异原创 2014-06-24 14:04:31 · 634 阅读 · 0 评论 -
内存泄漏调试-调Native Heap
$ adb shell setprop libc.debug.malloc 1 $ adb shell stop $ adb shell startOpen C:\Users\ian\.android\ddms.cfgAdd a line "native=true"打开DDMS,点Native Heap标签,就可以Snapshot了原创 2014-07-09 10:15:23 · 1055 阅读 · 0 评论 -
android调试时候的堆栈打印
../boot/frameworks/native/libs/utils/CallStack.cpp的dump函数中的ALOGD打印改为ALOGE,并重编libutils.so打印堆栈的文件里:#include CallStack stack; stack.update();stack.dump();原创 2014-06-17 10:03:01 · 834 阅读 · 0 评论 -
黑屏或特殊情形下查看对应进程的栈和调用情况
在黑屏问题分析时,可以分2个类别:1、adb可用2、adb不可用在adb不可用时,我们需要d原创 2014-06-16 09:35:58 · 747 阅读 · 0 评论 -
利用addr2line来定位问题
[] (msmfb_suspend+0x1c/0x2c) from[] (early_suspend+0xf8/0x1a4)[] (early_suspend+0xf8/0x1a4) from[] (worker_thread+0x14c/0x240)[] (worker_thread+0x14c/0x240) from[] (kthread+0x88/0x90)[] (kthread原创 2014-06-16 09:24:26 · 1033 阅读 · 0 评论 -
android app不受build.prop中的dalvik heapsize限制
dalivik的heap配置一般在下述文件中:\frameworks\native\build\PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapstartsize=4m \ dalvik.vm.heapgrowthlimit=32m \dalvik.vm.heapsize=64m第一个是每个dalvik原创 2014-06-13 09:27:49 · 1409 阅读 · 0 评论 -
编译默认root的android的user版本
在adb.c里面修改if (should_drop_privileges()),直接修改为if(should_drop_privileges() 因为默认user版本中should_drop_privileges() 返回值为true。原创 2014-06-11 21:07:33 · 1637 阅读 · 0 评论 -
zram和swap
首先谈下EMMC上做个swap分区,经验:只会更差,速度会更差,试过这个方案后,睡眠唤醒后非常慢。内存优化一般有几个方向:1) 具体内存消耗比较大的应用,存在泄漏的应用2) 内存裁剪、资源优化、显存裁剪(咨询高通)3) AMS的trimapplication和kernel的lowmemorykiller的两个调度机制优化。4) zram、swapzram是个以内存为原创 2014-06-13 08:55:42 · 5981 阅读 · 0 评论 -
利用shc加密生成可以在手机里执行的程序
加密:编译生成shc可执行文件并转换sh到c源文件cd ~/buildsh/shc-3.8.9make./shc -r -f sample_r1.2.sh搞一个arm-linux-gcc 4.4.3的tar包或者现成的环境[现成环境可能缺少某些头文件导致后面c文件编译不过]做一个交叉编译环境export PATH=$PATH:~/buildsh/4.4.3/binarm原创 2014-07-18 16:15:12 · 1780 阅读 · 1 评论 -
高通平台采用gpu-mmu的时候发生显存耗完而整个系统内存尚有的情况导致crash和重启
原因在于kgsl_mmu.c中,定义了gpu使用的内存大小,7x30中限定了256MB,当显存耗光而内存尚剩余很多的时候就会发生问题:不能触发LMK或OOM来释放内存,而又没有显存可用,进而可能引起各进程watchdogtimeout,如果系统进程发生watchdogtimeout,会导致system serverrestart,而restart之后也不能释放gpu显存,会一直反复重启:原创 2014-06-26 08:35:16 · 2942 阅读 · 4 评论 -
android模块版本控制
模块的makefile文件中都有下面的tagLOCAL_MODULE_TAGS:=user eng tests optionaluser:指该模块只在user版本下才编译eng: 指该模块只在eng版本下才编译tests:指该模块只在tests版本下才编译optional:指该模块在所有版本下都编译注意,user版本不能模块化编译,所以要验证需要完整重编整个项目原创 2014-06-18 15:19:19 · 468 阅读 · 0 评论