自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (7)
  • 收藏
  • 关注

原创 Android6.0 WMS(七) 窗口Z轴位置

通过前面几篇文章的学习,我们知道了在Android系统中,无论是普通的Activity窗口,还是特殊的输入法窗口和壁纸窗口,它们都是被WindowManagerService服务组织在一个窗口堆栈中的,其中,Z轴位置较大的窗口排列在Z轴位置较小的窗口的上面。有了这个窗口堆栈之后,WindowManagerService服务就可以按照一定的规则计算每一个窗口的Z轴位置了,这个在之前的http

2016-12-27 10:20:43 3541

原创 Android6.0 WMS(六) WMS动画管理

Android的应用启动时,或者切换Activity时都会以动画的方式显示前后两屏的切换过程。动画的原理很简单,把一帧一帧的图像按一定时间间隔显示出来就完成了。动画的绘制需要定时驱动,通常的做法是启动一个定时消息,每隔一定时间发一个消息,收到消息后输出一帧画面。Android支持VSync信号后,动画的驱动就有VSync信号承担了。窗口动画的基本元素是窗口Surface中保存的图像,通过对

2016-12-23 15:09:40 5291 1

原创 Andrdoid6.0 DisplayManagerService

之前在分析power模块的时候,需要设置背光那个时候分析过DisplayManagerService,但是不够详细、系统。前面在分析WMS旋转屏幕的时候,也涉及到了DisplayManagerService,所以我准备详细分析下。一、缺省设备我们先看DisplayManagerService在SystemServer中调用的顺序。先是构造了对象,然后调用了windowManagerAndI

2016-12-22 16:44:24 4001

原创 Android6.0 WMS(五) WMS计算Activity窗口大小的过程分析(二)WMS的relayoutWindow

既上一篇博客,这篇我们分析WMS的relayoutWindow函数。relayoutWindow我们先看下relayoutWindow函数 public int relayoutWindow(Session session, IWindow client, int seq, WindowManager.LayoutParams attrs, int req

2016-12-21 16:41:57 6448 1

原创 Android start stop命令

我们经常使用stop start命令来重启framework,我们来看下其代码是在system/core/toolbox下面,原理很简单就是利用ctl属性来控制进程。start.c#include #include #include #include int start_main(int argc, char *argv[]){ if(argc > 1) {

2016-12-20 15:43:37 4416

原创 Android6.0 旋转屏幕(五)WMS启动应用流程(屏幕方向相关)

一、强制设置方向1.Activity如果要强制设置一个Activity的横竖屏可以通过Manifest去设置,跟Activity相关的信息都会保存在ActivityInfo当中。android:screenOrientation=["unspecified" | "user" | "behind" | "

2016-12-20 15:27:55 3029

原创 Android6.0 旋转屏幕(四)应用强制设置方向

有时候我们也可以强制应用横频,这又是如何做到的?就是调用了AMS的setRequestedOrientation接口,这个接口先是调用WMS的setAppOrientation函数设置这个Activity在WMS中的方向。然后在调用WMS的updateOrientationFromAppTokens函数旋转屏幕,最后在调用updateConfigurationLocked这个函数之前博客分析过

2016-12-19 16:13:49 10339

原创 Android6.0 旋转屏幕(三)应用是否要重启

上篇博客我们分析了WMS中的updateRotationUnchecked函数,当旋转角度有变化时会调用sendNewConfiguration函数。这篇博客我们就来分析下这个函数。 public void updateRotationUnchecked(boolean alwaysSendConfiguration, boolean forceRelayout) {

2016-12-19 11:06:28 3451 3

原创 Android6.0 旋转屏幕(二)旋转设备

上篇博客中我们一直提到updateRotationUnchecked函数,这篇博客我们就来分析下这个函数,这个函数可以说是旋转屏幕的一个核心函数,我们主要看下updateRotationUncheckedLocked和sendNewConfiguration函数,当updateRotationUncheckedLocked返回true代表设备已经旋转,这个时候要调用sendNewConfigura

2016-12-16 11:13:31 7577

原创 Android6.0 旋转屏幕(一)WMS注册传感器回调

我们通常在手机上旋转屏幕可以应用主动旋转,也可以让应用随系统旋转。这里我们先分析应用随系统旋转的情况。设置选项(旋转屏幕)随系统选装的话,我们先要在手机设置中选择显示项,设备旋转时自动旋转。最终会调用RotationPolicy.setRotationLockForAccessibility函数,我们先来看下这个函数 public static void setRotat

2016-12-15 16:18:25 3661 1

原创 应用禁止屏幕旋转

应用设置全屏在Activity的onCreate方法中的setContentView(myview)调用之前添加下面代码requestWindowFeature(Window.FEATURE_NO_TITLE);//隐藏标题getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.La

2016-12-15 13:56:32 4624

原创 Android6.0 WMS(四) WMS中常用变量分析

这篇博客我们分析WMS的一些常用变量,我们依然从主线addWindow开始分析,碰到一些常用的变量再进行分析。DisplayContent我们再来看如下DisplayContent 类 final DisplayContent displayContent = getDisplayContentLocked(displayId);我们再来看getDis

2016-12-13 18:10:08 2110

原创 Android6.0 WMS(三) WMS窗口次序

这篇博客我们主要分析下,窗口位置排序的一些原理。一、添加窗口的时候 调整窗口位置上篇博客我们分析了WMS的addWindow函数,这里我们就窗口的次序问题继续分析。 boolean imMayMove = true; if (type == TYPE_INPUT_METHOD) {//如果窗口类是输入法窗口

2016-12-08 18:56:14 3071 1

原创 Android6.0 WMS(二) WMS创建窗口与创建Surface的关系

在上篇博客我们知道ViewRootImpl的setView函数会调用WindowSession的addToDisplay函数,这个函数通过Binder最终会调用WMS的addWindow函数,增加窗口。在http://blog.csdn.net/kc58236582/article/details/52413871博客中WindowState的创建过程那节中有详细分析,当然这部分主要是围绕Surf

2016-12-08 11:09:54 4092

原创 user版本不能使用adb问题

最近碰到一个问题user版本不能使用adb问题。这个问题涉及到adbd和Usb相关的service代码。一、adbd我们先看看adbd对user版本的代码:首先在adb_main函数中有如下代码,当ro.adb.secure属性为0的时候auth_required 变量为false。这个时候一般是debug版本(不会设置这个属性或者这个属性为0) if (ALLOW_

2016-12-07 11:11:54 7482 2

android ART原理介绍

android ART原理介绍

2017-01-05

android关机时间慢

android关机时间慢

2017-01-05

selinux问题

selinux问题

2017-01-05

Android AlarmManager

Android AlarmManager

2017-01-05

跟我一起写makefile

跟我一起写makefile

2016-07-15

opencv 保存录像

opencv中用来保存摄像头录的录像,c++语言摄像头播放录像

2011-09-24

空空如也

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

TA关注的人

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