[03/31/2013][Android]Power off Charge 总结

本文仅供个人参考,由于还是初学,出错之处望能指出。由于没有源码,好多东西靠回忆,难免有出入,我会完善的。

最近在做Android 4.1 关机充电的实现,前后历经各种问题,基本解决。现总结如下:

1 关机充电代码具体实现在system/core/charger/charger.c, 编译时编进boot.img, 打log方法:LOGI(“  \n”);


2 具体代码流程:

先从system/core/init/init.c说起。在init.c里解析init.rc文件,将service加入队列。在builtins.c里执行do_class_start()按照class 开启服务。当检测到时charger service 时,进入关机充电程序-----charger.c.

在main函数中,首先检测usb线是否存在,之前没加这个检测,发现关机状态插usb线立马拔掉,机子还是会显示1~2秒的关机充电动画,显然,这不科学。之后就是各种初始化,包括kmsg, kernel 事件上报的回调函数input_callback; 然后是加载关机充电动画的图像,由于加入了低电量警示动画,加载图片好多。然后申请wake_lock, 之后charger->next_key_check = -1;

charger->next_screen_check = -1;reset_animation; kick_animation,set_brightness(100), 进入event_loop

在event_loop, 进入while (true)的无限循环。

(1) 读取当前时间,后面会用来判断动画是否超时(如超时,亮度调至0,关闭动画)。ps:正在播放Bandar演奏的sound of silence, wonderful !

(2) 读取完时间,进入按键事件处理函数----handle_input_state-->process_key,整个的按键事件处理都是在process_key, 关

上一篇: [转载]如何分析 kernel panic
下一篇: 【转载】vim入门使用命令
Wonderself
博客等级 码龄14年 1粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值