自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安卓输入事件流程分析

基础架构流程:

2021-07-14 18:09:09 136

原创 安卓窗口创建流程

说明:1. ViewRootImpl是View和Window的桥梁, 不是一个View;2.IWindowSession是Session对象 Session对象是WMS的代理类3.WindowState代表一个真正的Window;4. WindowState中的mClient是:ViewRootImpl中的W对象, 用来和客户端会话5.真正用来绘制图像并且显示的是Surface, Window是一个抽象概念, 并不存在;6.SurfaceSession是SurfaceC...

2021-07-14 17:55:47 157

原创 安卓usb设备识别,扫描,数据库存储流程分析

第一步:usb设备的识别第二步,usb设备的扫描设备插入并被系统识别后,会发出广播<action android:name="android.os.storage.action.VOLUME_STATE_CHANGED" />MediaScannerReceiver这个类,在开机时会自启,之后会监听这个广播,接受到广播后开始真正的scan操作最终 在MediaScanner.java的endFile()中,将扫描的结果存入MediaProvider中。...

2021-07-14 17:43:39 602

转载 c++ 模板使用详解

1.模板的概念。我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y);{return(x>y)?x:y ;}//函数2.float max( float x,float y){return (x>y)? x:y ;}//函数3..

2021-07-14 11:22:14 1251

转载 c++学习,智能指针

c++ 11中放弃使用了auto_ptr ;unique_ptr:unique_ptr“唯一”拥有其所指对象,同一时刻只能有一个unique_ptr指向给定对象(通过禁止拷贝语义、只有移动语义来实现)。相比与原始指针unique_ptr用于其RAII的特性,使得在出现异常的情况下,动态资源能得到释放。unique_ptr指针本身的生命周期:从unique_ptr指针创建时开始,直到离开作用域。离开作用域时,若其指向对象,则将其所指对象销毁(默认使用delete操作符,用户可指定其他操作)。uniqu

2021-07-13 17:30:18 63

原创 C++ 学习小笔记

一、常识1)C语言中规定数组名称,代表数组所在内存位置的首地址;2)C语言中没有真正的字符串类型,可以通过字符数组表示字符串,因为它的元素地址是连续的,这就足够了,可以使用string引用二、 运算符1.如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300%x = x * 2;x = x * 64;//改为:x = x << 1; // 2 = 21x = x << 6; // 64 = 262.如果除上一个 2

2021-07-09 16:48:29 131 3

原创 安卓9.0MTK平台 开机后有点击动画效果,无抬起事件

做项目时偶现,开机时屏幕点击有水波纹动画效果,但无动作事件,经过log排查后,发现系统没有给应用发出touch的up事件,于是将问题延伸至framework层进行排查,在view层均无事件打印,后在windowmangerservice事件分发之前得知异常情况下,系统会受到连续两次up事件,导致touch的event变为unknown状态,导致无抬起事件上报。在查找设备上报两次up事件时发现,系统的输入设备被初始化了两次,导致显现为同时两个设备上报up事件,具体原因没去深究,如果有同行了解的情况下请分享交流

2021-06-29 11:21:39 110

原创 drawable selector中state_pressed没效果的问题解决

今天被一个简单的selector对象给坑了,设置了state_pressed的drawable,但是死活都没有反应,后来在网上搜索,原来几个状态的顺序是很重要的!  android在匹配状态的时候,从上到下开始匹配,如果匹配到合适的状态就终止了,所以正常状态一定要放到最下面,否则其他的状态可能不会被显示。...

2020-06-30 14:51:46 672

原创 浅谈framework WindowMangerService 之 window添加流程显示层级和尺寸确定

安卓窗口系统WindowMangerService基础知识1.Wms 启动为 SystemServer中startOtherServices函数中启动 关键成员变量2. 窗口类型定义1)应用程序窗口 (Application Window): 包括所有应用程序自己创建的窗口,以及在应用起来之前系统负责显示的窗口。2)子窗口(Sub Window):比如应用自定义的对话框,或者输入法窗口,子窗口必须依附于某个应用窗口(设置相同的token)。3)系统窗口(System W.

2020-05-26 14:42:04 497

原创 SystemUI 身临其境 瞬时状态SYSTEM_UI_FLAG_HIDE_NAVIGATION framework层代码实现

说在前面:如果对pwm和wms没有一定理解的同行请看前两篇文章的链接后再对此文进行阅读。到这里也是,关于systemUI模块的最后一部分分析了,也是对从事安卓开发的一个阶段性多总结。关于systemUI的systemUIvisibility在framework的流程分析,已经在上篇文章中提过了就不多再赘述了。今天着重讲一下状态栏的模式,也是耗费我自己时间最多的一个地方。不熟悉systemUIvisibility流程的同行可以先看这篇文章Androdi 6.0 SystemUI修改 应用层..

2020-05-26 01:33:43 1452 3

原创 as更新至3.6.2后,使用androidx新建项目默认使用x的lib,v4,v7,v13无法引入

将两个true改为false就可以了。淦

2020-04-23 16:57:36 846

原创 Android 6.0 PhoneWindowManager部分源码分析

本文基于6.0 系统 且目前只对我工作中的涉及的相关方法提出了分析和客制化修改建议。未对全部方法进行解释说明。Window在framework中的添加流程在上篇文章中伴着systemuivis的数据路由提了一嘴。顺便就想总结一下phonewinwowmanager这个大坑,工作的时候还是掉里面很多次的。希望能帮到有缘人,源码都粘上超字数,看完要用的话受累手敲一下吧。...

2020-04-21 15:04:37 630

原创 Androdi 6.0 SystemUI修改 应用层setsystemuivis原理和在framework层的路由分析

一、铺垫:AMS -> Activitystack -> ApplicaitonThread -> ActivityThread ->Acitivity/frameworks/base/core/java/android/app/Activity.javaPhoneWindow extends Window -> DecorView extend...

2020-04-20 10:59:52 560

原创 android 将相册url转为文件路径,路径报空

最终的解决方法其实很简单,就是Intent.ACTION_GET_CONTENT换成Intent.ACTION_PICKIntent innerIntent = new Intent(Intent.ACTION_PICK); // "android.intent.action.GET_CONTENT"innerIntent.setType("image/*");Intent wrapperIn...

2018-04-03 14:42:02 445

原创 安卓Notification(通知)所有属性

setContentTitle(CharSequence):设置标题setContentText(CharSequence):设置内容setSubText(CharSequence):设置内容下面一小行的文字setTicker(CharSequence):设置收到通知时在顶部显示的文字信息setWhen(long):设置通知时间,一般设置的是收到通知时的System.currentTimeMill...

2018-03-22 15:21:16 1554

原创 android studio 跳出方框提示快捷键如何取消

点击多处都会弹出快捷键的操作;原因是误装了key promoter这个插件解决方法是在setting 的 Plugins中,找到上述插件并停止使用就ok了增加和删除插件得时候会被要求重启as来更新操作,记得保存修改过得内容以防丢失

2017-10-30 16:39:51 810

原创 安卓软键盘弹起时想向上平移布局但布局却被挤压得解决办法

自己做项目得时候遇到得问题,在网上找了很多得解决方案,比较多得文章提供得在Manifests中当前得Activity中添加windowSoftInputMode中一个某一种属性来达到平移得效果,可是经过测试后感觉效果都不理想,后来想到了,既然是在软键盘弹起得时候进行得操作,可不可以监听键盘的点击事件来对布局进行更改呢,在网上搜索安卓源码但是没有找到关于键盘得api,还好有大神于是看到了如下得代码;

2017-09-15 10:49:54 541

转载 android Fragment中得Listview中addfooterview点击报错解决方案

报错信息为 java.lang.ClassCastException: android.widget.HeaderViewListAdapter cannot be cast to com.monkey.route.widgets.FragmentContact$Adaper如果ListView 没有 HeaderView时,BaseAdapter adapter = (BaseAda

2017-09-06 15:52:27 511

安卓Aidl实现跨进程双应用间通信

亲测好用,无聊写着玩的,不知道csdn会收你们多少积分,教程和基础原理网上有一大堆,写的都很好就不再啰嗦了,运行不了的或有好的建议的,欢迎加微信d7065698471进行探讨。祝你们开发顺利

2019-02-14

空空如也

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

TA关注的人

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