- 博客(31)
- 资源 (1)
- 收藏
- 关注
转载 Android休眠机制
Android休眠机制,最近修复一个遗留的bug,定时检测,超过多长时间则弹出一个Tip,在debug跟进这个bug的时候,并没有发现问题,Timer和TimerTask实现的定时任务,但是在实际使用的时候,产品等很多人都遇到不弹Tip的问题。回过神来一想,应该是掉进了Android休眠机制的坑里了。趁此机会对Android的休眠机制进行一个总结。 Linux的休眠机制An
2017-12-20 22:37:36
1217
转载 Android睡眠唤醒机制--Kernel态
一、简介 Android系统中定义了几种低功耗状态:earlysuspend、suspend、hibernation. 1) earlysuspend: 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉; 2) suspend: 是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的状态
2017-12-20 22:34:40
401
转载 earlysuspend、autosleep以及wakeup_count三种休眠机制的分析和比较
一、Opportunistic sleep引言1. 背景(1) android 面临的问题 Opportunistic sleep: 当没有任务时,需要寻找时机,进入suspended(2) 3类同步问题 a. 内核:driver处理event的过程中,系统不能suspend b. 用户:用户进程
2017-12-20 22:32:00
615
转载 onInterceptTouchEvent、onTouchEvent、onTouch
老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了:1、onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),
2016-06-12 22:40:20
423
转载 ActivityManager之Task、Process
android.app.ActivityManager这个类主要用来管理所有设备上的Activities。权限:android.permission.GET_TASKS方法:| 返回类型 方法|1.List getRecentTasks(int maxNum, int flags) 返回用户最近使用过的应用程序信息集合。第一个参数是
2016-04-08 19:37:52
907
转载 Android 进程生命周期 Process Lifecycle
进程的生命周期 Android系统会尽力保持应用的进程,但是有时为了给新的进程和更重要的进程回收一些内存空间,它会移除一些旧的进程。 为了决定哪些进程留下,哪些进程被杀死,系统根据在进程中在运行的组件及组件的状态,为每一个进程分配了一个优先级等级。 优先级最低的进程首先被杀死。 这个进程重要性的层次结构有五个等级,下面就列出这五种进程,按照重要性来排列,最重
2015-11-08 22:03:52
428
转载 xargs用法详解
简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find /sbin -perm +700 |ls -l这样才是正确的find /sbin -perm +700 |xargs ls -l xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 s
2014-08-27 23:34:14
591
转载 Android WiFi 扫描和连接热点
本章主要介绍用户手动的在Settings中点击Scan和Connect按钮,输入密码后的连接过程,先看整体流程图:WiFi Scan过程分析当用户进入Settings点击Scan后,就会调用到WifiManager的startScan()方法,当然在Settings里面有设置Scan的定时器,每隔一段时间就会去scan,在Wifi Framework中也有scan的定时
2014-08-25 23:36:44
1061
转载 Android WiFi Toggle ON/OFF流程分析
WiFi toggled on流程分析这一章来分析一下从Settings打开wifi后,framework所有的流程以及状态转换,调用的主要函数就是WiFiMananger的setWifiEnabled(boolean enabled),这个函数在前面介绍的WifiService启动流程中也有提到,当SystemServer 创建了个WifiService后,就会调用它的checkAn
2014-08-25 23:33:56
1873
转载 Android WifiService的启动流程分析
最近在学习Android WiFi framework的相关知识,这里总结以下。WiFi framework的内容大致可以分为以下几个模块:1. WiFi相关内容2.WiFi P2P相关内容3.Hotspot相关内容4.WiFi Display相关内容后面就将从这四个方面一一介绍。WiFi service的启动流程Wifiserv
2014-08-25 23:32:58
1228
转载 Android StateMachine和AsyncChannel
在学习Android Wifi的code时,到处可以看到StateMachie和AsyncChannel的影子,这里我们先大致分析一下它们两个的原理。StateMachine原理分析顾名思义,StateMachine就是状态机的意思,从Goolge给出的解释:The state machine defined here is a hierarchical s
2014-08-25 23:32:41
670
转载 AndroidManifest.xml详解
关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services,和Intent
2014-06-22 22:40:24
482
原创 signapk.cmd
set signroot=D:\apksignerset projectName=%1set certificate=%2cd binif not exist %projectName%.apk goto apkNotExistif not exist %signroot%\security\%certificate%.pk8 goto certNotExist
2014-03-21 15:49:49
461
转载 Android的系统服务
System_Server进程运行在system server进程中的服务比较多,这是整个android框架的基础 Native服务SurfaceFlinger 这是framebuffer合成的服务,将各个应用程序及应用程序中的逻辑窗口图像数据(surface)合成到一个物理窗口中显示(framebuffer)的服务程序 Java服务:这部分的服务大部分都有一个
2014-03-10 22:02:57
395
转载 Linux命令:vi
一、Unix编辑器概述 编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix 操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和 vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。值得庆
2013-12-24 22:39:38
436
转载 约瑟夫问题
首先是经典的约瑟夫问题的解法#include #include #include using namespace std; /* * * 典型的约瑟夫问题 * 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开 * 始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。 * 例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后
2013-12-23 22:28:28
564
转载 取石子问题
/* POJ 1067 取石子游戏 ----问题描述: 7有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中 同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。
2013-12-23 22:17:21
1328
转载 Linux命令:git
功能说明:文字模式下的文件管理员。语 法:git 命令补充说明:git命令是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样,略诉如下: F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。 F2 :执行cat指令,列出文件内容。 F3 :执行g
2013-12-23 21:55:33
598
转载 Linux命令:tar
tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzi
2013-12-23 21:54:32
540
原创 VS2010 快捷键
VS2010 快捷键VS2010快捷键设置:1.工具---->选项---->环境---->键盘 2.在 【显示命令包含】 下面的对话框中输入“对齐”关键字,然后就会在这个编辑框下面一个文本窗口中显示关于“对齐”一系列的“某某对齐”操作命令,选中你想查看的,就会在【选定命令的快捷键】一栏中显示其快捷键了CTRL + K, CTRL + L
2013-12-22 22:07:52
554
原创 MyEclipse 快捷键
MyEclipse 快捷键-------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+Shift+F 格式化选中代码,不选中时格式化整个代码Ctrl+Shift+X 把当前选中的文本全部变为小写 Ctrl+Shift+Y 把当前选中
2013-12-22 22:06:31
475
转载 Notepad++使用技法
Notepad++使用技法安装的插件:TextFX,Function List,JSMin,JSLint,Light Explorer,Npp Export,JSON Viewer Alt+H 隐藏行Ctrl+Tab 实现在多个打开的窗口间切换Ctrl+Shift+Q区块注释Ctrl+K行注释(取消Ctrl+Shift+K)文件 新建文件 C
2013-12-22 22:03:25
1115
转载 java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题
参考:java核心技术一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参
2013-11-03 16:22:39
645
转载 try catch finally return 的执行顺序
public class JVMTest { public static void main(String[] args) { System.out.println("aa:" + aa()); } public static int aa() { int a = 1; int b = 10; try { System.out.println("abc"); r
2013-09-30 17:30:37
760
转载 寻找第K大的数的方法总结
算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。 名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。 所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。 解法1:
2013-09-30 17:28:46
507
转载 百层楼扔棋子问题
有一个100层高的大厦,你手中有两枚相同的玻璃棋子。从这个大厦的某一层扔下围棋子就会碎。用你手中的这两枚围棋子,找出一个最优的策略,来得知那个“临界”层面—— 第一次应该从哪层开始扔? 以你的方案,最坏的情况多少次可以测出临界层? 这是一道Google的面试试题,具体来源不得而知,网上有无数解法,讽刺的是,Google自己搜到的大部分解法都是错的。3月份的《程序员》杂
2013-09-30 15:31:21
1042
转载 Java HashMap实现原理
Mark一下,同时可以很好的结合hashCode()和equals()方法,覆盖equals方法时最好覆盖hashcode(),保证equals的两个对象,hashcode也相等反过来:hashcode()不等,一定能推出equals()也不等;hashcode()相等,equals()可能相等,也可能不等。因为HashMap在get时,先比较hashcode,再比较equ
2013-09-30 14:37:31
685
转载 【转】程序中内存空间的分配
1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦
2013-04-21 23:08:30
707
转载 VS2010之基于.NET Framework 4.0程序的解决方案
VS 2010发布后,升级到了.NET Framework 4.0,部署程序可与.NET Framework 2.0,3.0,3.5是不一样的。所以总结出来给大家参考参考吧,以免多走弯路。重点事项:.NET Framework 4与之前的版本是可以并行的,他们并不互相干扰。也就是说,你不必在安装.NET Framework 4之前安装其他的任何一个版本。(前提是,你只是想运行.NE
2012-09-17 20:43:48
749
原创 TCHAR 与CHAR
因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串。 微软将这两套字符集及其操作进行了统一,通过条件编译(通过_UNICODE和UNICODE宏)控制实际使用的字符集,这样就有了_T("")这样的字符串,对应的就有了_tcslen这样的函数。
2012-06-17 15:49:31
801
原创 JAVA中的参数传递
JAVA的许多教材中提到:java中没有引用传递,只有值传递。因此为了实现C++等语言中的引用,JAVA中提供了如下的引用类型:数组、类(包括对象)、接口、枚举。 但许多朋友却遇到这样的问题:在交换两个数的程序中,用JAVA中的类来进行参数传递同样无法交换两个变量的值,好像还是值传递,而不是引用传递。 下面首先引入一段程序:Code1:public
2012-06-08 08:54:16
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人