自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

转载 Android休眠机制

Android休眠机制,最近修复一个遗留的bug,定时检测,超过多长时间则弹出一个Tip,在debug跟进这个bug的时候,并没有发现问题,Timer和TimerTask实现的定时任务,但是在实际使用的时候,产品等很多人都遇到不弹Tip的问题。回过神来一想,应该是掉进了Android休眠机制的坑里了。趁此机会对Android的休眠机制进行一个总结。 Linux的休眠机制An

2017-12-20 22:37:36 1078

转载 Android睡眠唤醒机制--Kernel态

一、简介      Android系统中定义了几种低功耗状态:earlysuspend、suspend、hibernation.      1) earlysuspend: 是一种低功耗的状态,某些设备可以选择进入某种功耗较低的状态,比如 LCD可以降低亮度或灭掉;        2) suspend: 是指除电源管理以外的其他外围模块以及cpu均不工作,只有内存保持自刷新的状态

2017-12-20 22:34:40 391

转载 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 591

转载 onInterceptTouchEvent、onTouchEvent、onTouch

老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了:1、onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),

2016-06-12 22:40:20 401

转载 ActivityManager之Task、Process

android.app.ActivityManager这个类主要用来管理所有设备上的Activities。权限:android.permission.GET_TASKS方法:| 返回类型     方法|1.List       getRecentTasks(int maxNum, int flags)    返回用户最近使用过的应用程序信息集合。第一个参数是

2016-04-08 19:37:52 834

转载 Android 进程生命周期 Process Lifecycle

进程的生命周期  Android系统会尽力保持应用的进程,但是有时为了给新的进程和更重要的进程回收一些内存空间,它会移除一些旧的进程。  为了决定哪些进程留下,哪些进程被杀死,系统根据在进程中在运行的组件及组件的状态,为每一个进程分配了一个优先级等级。  优先级最低的进程首先被杀死。  这个进程重要性的层次结构有五个等级,下面就列出这五种进程,按照重要性来排列,最重

2015-11-08 22:03:52 418

转载 xargs用法详解

简介之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了xargs命令,例如:这个命令是错误的find /sbin -perm +700 |ls -l这样才是正确的find /sbin -perm +700 |xargs ls -l   xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 s

2014-08-27 23:34:14 581

转载 Android WiFi 扫描和连接热点

本章主要介绍用户手动的在Settings中点击Scan和Connect按钮,输入密码后的连接过程,先看整体流程图:WiFi Scan过程分析当用户进入Settings点击Scan后,就会调用到WifiManager的startScan()方法,当然在Settings里面有设置Scan的定时器,每隔一段时间就会去scan,在Wifi Framework中也有scan的定时

2014-08-25 23:36:44 1001

转载 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 1863

转载 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 1205

转载 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 656

转载 AndroidManifest.xml详解

关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services,和Intent

2014-06-22 22:40:24 476

原创 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 439

转载 Android的系统服务

System_Server进程运行在system server进程中的服务比较多,这是整个android框架的基础 Native服务SurfaceFlinger 这是framebuffer合成的服务,将各个应用程序及应用程序中的逻辑窗口图像数据(surface)合成到一个物理窗口中显示(framebuffer)的服务程序 Java服务:这部分的服务大部分都有一个

2014-03-10 22:02:57 388

转载 Linux命令:vi

一、Unix编辑器概述      编辑器是使用计算机的重要工具之一,在各种操作系统中,编辑器都是必不可少的部件。Unix及其相似的ix 操作系统系列中,为方便各种用户在各个不同的环境中使用,提供了一系列的ex编辑器,包括 ex, edit,ed 和 vi.其中ex,edit,ed都是行编辑器,现在已很少有人使用,Unix提供他们的原因是考虑到满足各种用户特别是某些终端用户的需要。值得庆

2013-12-24 22:39:38 429

转载 约瑟夫问题

首先是经典的约瑟夫问题的解法#include #include #include  using namespace std; /* * * 典型的约瑟夫问题 * 约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开 * 始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。 * 例如N=6,M=5,被杀掉的人的序号为5,4,6,2,3。最后

2013-12-23 22:28:28 558

转载 取石子问题

/* POJ 1067 取石子游戏   ----问题描述:  7有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中 同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。

2013-12-23 22:17:21 1318

转载 Linux命令:git

功能说明:文字模式下的文件管理员。语  法:git 命令补充说明:git命令是用来管理文件的程序,它十分类似DOS下的Norton Commander,具有互动式操作界面。它的操作方法和Norton Commander几乎一样,略诉如下:  F1 :执行info指令,查询指令相关信息,会要求您输入欲查询的名称。  F2 :执行cat指令,列出文件内容。  F3 :执行g

2013-12-23 21:55:33 591

转载 Linux命令:tar

tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzi

2013-12-23 21:54:32 533

原创 VS2010 快捷键

VS2010 快捷键VS2010快捷键设置:1.工具---->选项---->环境---->键盘 2.在 【显示命令包含】 下面的对话框中输入“对齐”关键字,然后就会在这个编辑框下面一个文本窗口中显示关于“对齐”一系列的“某某对齐”操作命令,选中你想查看的,就会在【选定命令的快捷键】一栏中显示其快捷键了CTRL + K,  CTRL + L

2013-12-22 22:07:52 546

原创 MyEclipse 快捷键

MyEclipse 快捷键-------------------------------------MyEclipse 快捷键1(CTRL)-------------------------------------Ctrl+Shift+F  格式化选中代码,不选中时格式化整个代码Ctrl+Shift+X  把当前选中的文本全部变为小写 Ctrl+Shift+Y  把当前选中

2013-12-22 22:06:31 467

转载 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 1086

转载 java泛型(二)、泛型的内部原理:类型擦除以及类型擦除带来的问题

参考:java核心技术一、Java泛型的实现方法:类型擦除前面已经说了,Java的泛型是伪泛型。为什么说Java的泛型是伪泛型呢?因为,在编译期间,所有的泛型信息都会被擦除掉。正确理解泛型概念的首要前提是理解类型擦出(type erasure)。Java中的泛型基本上都是在编译器这个层次来实现的。在生成的Java字节码中是不包含泛型中的类型信息的。使用泛型的时候加上的类型参

2013-11-03 16:22:39 638

转载 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 750

转载 寻找第K大的数的方法总结

算法分析是,看到一个这样的问题,就是在一堆数据中查找到第k个大的值。      名称是:设计一组N个数,确定其中第k个最大值,这是一个选择问题,当然,解决这个问题的方法很多,本人在网上搜索了一番,查找到以下的方式,决定很好,推荐给大家。      所谓“第(前)k大数问题”指的是在长度为n(n>=k)的乱序数组中S找出从大到小顺序的第(前)k个数的问题。      解法1:

2013-09-30 17:28:46 494

转载 百层楼扔棋子问题

有一个100层高的大厦,你手中有两枚相同的玻璃棋子。从这个大厦的某一层扔下围棋子就会碎。用你手中的这两枚围棋子,找出一个最优的策略,来得知那个“临界”层面——    第一次应该从哪层开始扔?    以你的方案,最坏的情况多少次可以测出临界层?    这是一道Google的面试试题,具体来源不得而知,网上有无数解法,讽刺的是,Google自己搜到的大部分解法都是错的。3月份的《程序员》杂

2013-09-30 15:31:21 1029

转载 Java HashMap实现原理

Mark一下,同时可以很好的结合hashCode()和equals()方法,覆盖equals方法时最好覆盖hashcode(),保证equals的两个对象,hashcode也相等反过来:hashcode()不等,一定能推出equals()也不等;hashcode()相等,equals()可能相等,也可能不等。因为HashMap在get时,先比较hashcode,再比较equ

2013-09-30 14:37:31 675

转载 【转】程序中内存空间的分配

1.内存分配方式内存分配方式有三种:[1]从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。[2]在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。[3]从堆上分配,亦

2013-04-21 23:08:30 669

转载 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 702

原创 TCHAR 与CHAR

因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串字符串处理函数,比如:strlen和wcslen,分别用于处理两种字符串。  微软将这两套字符集及其操作进行了统一,通过条件编译(通过_UNICODE和UNICODE宏)控制实际使用的字符集,这样就有了_T("")这样的字符串,对应的就有了_tcslen这样的函数。

2012-06-17 15:49:31 730

原创 JAVA中的参数传递

JAVA的许多教材中提到:java中没有引用传递,只有值传递。因此为了实现C++等语言中的引用,JAVA中提供了如下的引用类型:数组、类(包括对象)、接口、枚举。     但许多朋友却遇到这样的问题:在交换两个数的程序中,用JAVA中的类来进行参数传递同样无法交换两个变量的值,好像还是值传递,而不是引用传递。            下面首先引入一段程序:Code1:public

2012-06-08 08:54:16 292

空空如也

空空如也

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

TA关注的人

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