自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

shadow_dance的专栏

路漫漫其修远兮

  • 博客(26)
  • 资源 (1)
  • 收藏
  • 关注

原创 ART学习笔记Thread SuspendAll部分

昨天碰到了一个Gc 时Suspend  All 超时导致的Runtime abort问题。顺带就研究了下Suspend的机制以及超时检查的机制。在进程被signal 3或者GC或者debugger尝试attach,就会suspend,那么suspend是如何实现的呢?

2015-07-23 15:58:19 12343 2

原创 ART学习笔记 Rosalloc alloc部分

Rosalloc就是google版本的Dlmalloc,负责连续地址的分配。分配策略和dlmalloc类似,也是分箱制,至于传言中的比dlmalloc效率高支持多核我是没看出来。不过代码倒是比dlmalloc写的较人能看懂了点。--------------------------------------免责声明:            |以下内容仅供参考       |--

2015-07-17 10:22:50 2141

原创 [Linux学习笔记] Zombie process

今天外面很冷,窝在酒店就看了下Unix环境编程,看到exit的时候发现了关于zombie 进程

2014-11-16 17:06:02 1035

原创 GDB 调试Native Crash 总结

Native Crash作为常见的exception之一,gdb是分析此类问题的利器。

2014-04-20 17:49:57 3404

原创 Android Binder 简介[施工中]

本文主要介绍Android Binder 通信的机制 (Driver 一下)

2014-04-15 20:41:24 856

原创 android JNI bridge ----- native和java世界的红娘 (施工中)

本文主要讲述Java程序如何调用native的程序以及native如何回调java,以及这种jiz

2014-04-14 21:20:33 2751

原创 2.3.5/4.0.3/4.1PowerManager简单总结和心得体会

4.4上的PMS被完全重构了,在接手4.4 PMS之前对之前PowerManagerService做一个总结。

2014-04-14 21:15:04 1074

原创 GDB调试和NATIVE内存问题分析整理

前段时间分析了一个疑似内存泄露的问题,自己总结下。 1.  当出现很大size的内存泄露的时候,一般情况下都是native的,很有可能会发生OOM导致的NE。2.  怀疑是内存泄露的时候,可以通过while脚本隔几秒打印一次procrank来确定,如果某个PID的PSS/USS 一直在上升,那么狠有可能就是他了。3. 当定位到某个PID之后,可以每隔一段时间将其 /proc/pid

2013-08-25 17:48:21 1189

原创 android webkit学习笔记1---url的load过程

webkit总体上分成两块,核心库,android适配层。下面通过webkit打开baidu来分析下具体的过程,就可以知道webkit的工作模式了。1. 首先是app中创建了webView,并调用它的loadurl方法:     mWebView.loadUrl("http://www.baidu.com");2.   frameworks/base/cor

2013-06-19 17:56:32 6484

原创 【android学习笔记】init.rc中声明的守护进程启动的流程

在Init.rc中,用service关键字声明了一系列服务.init.rc对service的说明如下:(详见system/core/init/readme.txt)Services--------Services are programs which init launches and (optionally) restartswhen they exit.  Services tak

2013-05-02 14:48:33 6987 3

原创 android学习笔记 匿名Binder

匿名binder就是没有向servicemanager提交注册的binder。对于已经建立好Binder通信的Client和server,server可以将一个Binder的引用传递给client,client可以通过这个引用来访问server。那么这种匿名的访问是怎么建立起来的?在server被唤醒后为什么可以通过target-ptr找到bbinder呢?答案就在第一次返回这

2013-04-07 22:51:21 4831 1

原创 Android Activity是怎么画出来的

Activity是在onResume里显示出来的,下面看下具体的流程。 ActivityThread.java final void handleResumeActivity(IBinder token, boolean clearHide, boolean isForward) {// ... if (r.window == null && !a.mF

2013-03-31 16:40:36 2402

原创 android TP虚拟按键

在TP的driver中,报虚拟按键的方法常见的有两种:1.直接报键值(kernel的)2.报一个坐标,上层通过KL的解析来判定是哪个键。下面说下第二种:TP的kl被存放在/sys/board_properties/virtualkeys.devicename中,pull出来后可以看看内容:0x01:139:100:900:40:60:0x01:158:400:9

2013-02-27 14:48:30 4180

原创 android 自定义preference的属性

最近碰到了个问题,我想调整checkboxpreference中的图片的大小以及位置,学习了下发出来:1. 拷贝并重命名framework/base/core/res/res/layout/preference.xml到你的工程目录res/layout/,如mypreference.xml2. 修改mypreference中你想修改对应的属性,不赘述,大家都会。3. 如果是用静态加载p

2013-02-21 11:40:35 4564

原创 android学习笔记7 android简略开机流程(从u-boot 到Idle)

本来应该说说kernel中的input子系统和上层的对应关系的,但是碰到了开机的一些问题,下定决心把这个过程搞清楚。U-boot之前的SPL的启动暂且不提,我们从U-boot在上电后被SPL从NAND中拷贝至SDRAM,然后执行board_init_f  跳转到board_init_r开始。u-boot里的流程大家可以通过打串口log来看。u-boot\arch\arm\lib\boa

2012-11-26 23:58:33 7232 9

原创 android学习笔记6 eventhub

Eventhub是在Native 的inputmanager创建的时候被创建的,inputreadthread就通过eventhub的getevent方法来源源不断的获取driver上报的input事件。  bool EventHub::getEvent(RawEvent* outEvent){    if (!mOpened) {       mError = ope

2012-11-02 11:12:21 4287

原创 android学习笔记5 android按键事件处理代码走读[framework]

上层的对按键事件的侦听和纷发处理是通过inputmanager及其组件inputreader,inputdispatch,eventhub构成的。在system_server被创建的时候就会创建WMS,并调用inputmanager的start方法来启动read和dispatch线程。 1.      Inputmanager的创建Systemserver的ServerThread

2012-10-23 17:17:36 4329

原创 android学习笔记 按电源键屏幕唤醒和屏幕睡眠流程(从上层到kernel)

一. 屏幕的唤醒      首先inputread在读取到有keyboard事件上报后,会调用到keydispatch的notifykey,去询问wm是否会对这次按键特殊处理,如果WM不处理,则此处会点亮或者熄灭屏幕。     inputReader.cpp                                 KeyboardInputMapper::processKey

2012-10-14 20:12:57 32736 15

原创 android 学习笔记3--静默安装功能的实现

静默安装的实现比较简单,但是有个前提:你的应用必须有system权限。所以分为两步:1. 如何获取system权限。    ①. 修改androidmanifest.xml ,       android:sharedUserId="android.uid.system"    ②. 修改android.mk ,增加LOCAL_CERTIFICATE := platform

2012-09-27 11:07:09 2600 1

原创 android学习笔记2 彩信APN切换流程(framework)

TransactionService之前的流程比较简单不在赘述,现在主要理清下从TransactionService到framework的流程。 首先会走到TransactionService的onStartCommand,在此函数中会对当前网络状态进行判断,然后调用到launchTransaction,如果此时网络不可用,会弹出toast,否则就向自己的handler发送EVENT_TR

2012-04-19 16:05:32 5008

原创 [android学习1]横竖屏切换的机理

因为最近遇到了几个奇怪的bug,所以下定决心把横竖屏切换的机制搞清楚,现在和大家分享下:首先是phonewindowmananger里会注册windoworientationlistener,当sensor有事件上报后,会调用onOrientationChanged,继续调用WMS里的接口setRotation。在setRotation里会对config进行判断,如果发生了变化

2012-03-28 11:25:03 2225

原创 linux学习笔记3 初始化的一些补充

在kernel_init里会调用do_basic_setup();按照level依次调用moduleinit()声明过的模块初始化函数来初始化编译进内核的模块在随后的init_post()里会起init进程,会加载各个动态模块,同样也是module_init()声明的函数动态模块的makefile是 obj-m:*.0静态是 obj-y:*.0在menuconfig里也可以看到

2012-02-02 14:40:40 1067 1

原创 linux学习笔记2--diver初始化及设备模型

driver的初始化,主要是填充了device_driver里的driver_private这个结构体:struct driver_private {struct kobject kobj;struct klist klist_devices;struct klist_node knode_bus;struct module_kobject *mkobj;struct

2012-01-18 10:39:46 1787 1

原创 Linux 学习笔记1 --- kernel初始化以及module_init(x)解析

粗略的看了下,kernel大致的初始化流程为:setup.c   kernel/\arch\parisc\kernel    start_parisc     // init arm main .c   kernel/init/          start_kernel   // init main .c   kernel/init/           rest_init ma

2012-01-13 22:39:02 3582 1

原创 linux wine最新版本 的安装

sudo add-apt-repository ppa:ubuntu-wine/ppa sudo apt-get update sudo apt-get install wine~/.wine/drive_c/windows/Fonts/   #只留一个你想要显示的中文字体在这

2012-01-13 20:38:27 778

原创 PC-lint9 集成至vs2008及配置

Setp 1:运行config.exe对std.lnt进行配置时,勾上对VS2008的支持,这里不在赘述,网上关于此的文章非常多。Setp 2:打开vs 2008,点击Tools->External ToolsSTEP 3 : 选择ADD,输入如下内容:Title : 随便起个,方便记忆command: 输入你lint的路径arguments: -i

2011-12-16 12:12:02 1610

pc-lint 9.0

PC-Lint 最新版本,可以去官网升级

2011-12-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除