自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(181)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android onFinishInflate 的理解

onFinishInflate 是添加在layout xml里面的view 被LayoutInflater 解析完addview 之后在回调的onFinishInflate 方法。构造函数是实例化一个View 都会执行的方法。从执行顺序来看也确实是构造函数执行早于 onFinishInflateonFinishInflate 执行早于 onMeasure onLayout函数public class CustomLinerLayout extends LinearLayout {...

2021-06-23 14:57:07 3670 1

原创 RecyclerView 的使用

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width...

2021-05-27 21:51:28 181

原创 关于监听通知栏通知的常用方法的记录

第一种方法:使用辅助功能AccessibilityService 相关的就可以实现.具体使用方法可以参考之前的一篇文章:自动抢红包-辅助功能的使用 http://blog.csdn.net/lezhang123/article/details/55100133第2 种方法:使用NotificationListenerService.具体可以先参考知乎的这个链接:https:

2021-05-27 21:11:43 1105

原创 抓取Systrace方法汇总

了解 Systrace:https://source.android.google.cn/devices/tech/debug/systrace浏览Systrace报告:https://developer.android.google.cn/topic/performance/tracing/navigate-report系统跟踪概览:https://developer.android.google.cn/topic/performance/tracingPerfetto...

2021-05-24 09:36:45 7652 3

原创 如何使用Method Trace 来分析代码流程

之前有简单了解过Method Trace,之前对他的了解是可以用来分析性能问题,比如某个方法的耗时,由于SysTrace 分析性能问题更优,就把Method Trace 渐渐忘记了.最近看到网上有人用Method Trace 来分析代码流程,发现对自己平时分析系统源码太有用了,就记录一下使用的办法.1.打开Android Studio 的Profile 窗口正常操作的情况下点击工具栏的Profile 按钮就可以,如果点击Profile 后,窗口消失了,可以把鼠标放到Android Studio 左.

2020-12-19 16:57:03 2143 3

转载 跟踪窗口转换

https://source.android.google.cn/devices/graphics/tracing-win-transitionsWinScope 提供了用于在窗口转换期间和转换后记录和分析 WindowManager 状态和 SurfaceFlinger 状态的基础架构和工具。WinScope 将所有相关的系统服务状态记录在一个跟踪文件中,您可以使用该文件重现并逐步查看转换。记录跟踪情况在运行 userdebug 或 eng 版本的设备上通过快捷设置或adb记录跟踪情况。..

2020-12-07 15:53:01 2913

原创 Android ContentProvider 和 SQLite 数据库的简单使用

这里只是简单记录一下怎么使用ContentProvider 和 SQLite 数据库.多进程通信的时候也可以利用 ContentResolver 的query()/delete()/insert()/insert() 来获取数据,也可以通过call()传递不同的参数实现不同的意义.1.创建数据库public class NameListDBHelper extends SQLiteOpenHelper { private final static String TAG = "NameListD

2020-06-06 16:26:42 682

原创 Android XmlPullParser 解析xml

Android 解析Xml 的方式有多种,SAX、DOM、Pull 都可以实现,这里使用的是其中的一种.下面的代码主要是在IntentService 里面解析一个xml 白名单的.主要是记录一下,时间长了容易忘记.public class NameListServices extends IntentService { private final static String TAG = "NameListServices"; private List<AppInfo> infos

2020-06-06 16:10:49 214

原创 Android 实现圆形的 ImageView 的3种方法

方法1: 裁剪Bitmap,设置ImageView src主要是取缩放/裁剪Bitmap,然后设置给ImageView src或者background实际使用中发现系统app 的ICON 比较特殊,比如时钟/日历是动态的,把通过PackageManager 拿到的Drawable 转成BitmapDrawable 后显示出来的图片和在桌面看到的不一样的.具体为什么Drawable 转成BitmapDrawable后有这个异常现象暂时没有去研究.后面找时间去研究.public static ...

2020-05-31 17:05:24 5885 8

原创 Android P wakeup 亮屏流程

目录1. 点亮屏幕的几种方式:1.1 应用通过PowerManager 的wakeup()接口1.2 应用创建的窗口带有WindowManager的 FLAG_TURN_SCREEN_ON 的flag1.3 应用申请wakelock时候,添加 ACQUIRE_CAUSES_WAKEUP 的flag1.4 通话的时候,通过距离感应器来点亮屏幕1.5 调用PowerMan...

2019-11-28 19:04:12 4582 1

原创 性能优化之-使用HandlerThread

使用 HandlerThread 将loop转到子线程中处理分担MainLooper的工作量,降低了主线程的压力,使主界面更流畅.HandlerThread 其实也就是继承了Thread,并在run()方法内部执行Looper.prepare()和Looper.loop(),既然Looper 是在子进程创建的,所以消息的处理也就是在子进程处理的.我们如果创建 Handler 时使用Hand...

2019-03-18 19:49:10 2814

原创 Activity和Service 使用Binder进行通信

Activity和Service 使用Binder进行通信 涉及到2种情况,一种是跨进程,一种是不跨进程的.1.Activity和Service 使用Binder进行跨进程通信其实这个可以参考之前已经记录的2篇文章,已经解释的很具体了,不做说明.IPC-AIDL的使用实例和分析IPC-Messenger使用实例2.Activity和Service 使用Binde

2017-11-15 15:43:59 1277

转载 Android避免内存溢出(Out of Memory)方法总结

在微信上面看的一个不错的文章.避免内存溢出的方法,主要是对以下三个方面对程序进行优化内存引用在处理内存引用之前,我们先来复习下什么是强引用、软引用、弱引用、虚引用强引用:强引用是使用最普遍的引用。如果一个对象具有强引用,那垃圾回收器绝不会回收它。 当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠

2017-06-20 11:12:34 481

原创 Android L SystemUI 流程简要分析

目录Android L  SystemUI 流程简要分析1.SystemUI 启动流程1.1概述1.2启动流程分析1.3 SystemUI启动的主要的服务 1.4 SystemUI和StatusBarManagerService的交互2. 下滑状态栏的响应流程2.1 通知部分NotificationStackScrollLayout的展开流程2.2 Status...

2017-05-19 16:06:58 6650 2

转载 如何分析锁屏没有显示出来的的问题

灭屏后亮屏没有看到锁屏可参考如下方法分析。[SOLUTION] google默认设计:(1)timeout灭屏(手机休眠时间到)时,不会立即锁屏,默认会等待5s才会上锁,5s内亮屏是不会看到有锁屏的。(2)按电源键灭屏时, 如果没有勾选“按电源键立即锁屏”菜单,默认也会等待5s才上锁,5s内亮屏不会看到锁屏。(3)keyguard被三方app dis

2017-05-19 16:06:00 682

转载 ANR机制以及问题分析

转载链接: http://duanqz.github.io/2015-10-12-ANR-Analysis#All目录1. 概览2. ANR机制2.1 ANR的监测机制2.1.1 Service处理超时2.1.2 Broadcast处理超时2.1.3 Input处理超时2.1.4 小结2.2 ANR的报告机制2.2.1 CPU的使用情况2

2017-05-19 16:03:51 1114

转载 Watchdog机制以及问题分析

目录1. 概览2. Watchdog机制2.1 Watchdog的初始化2.2 添加Watchdog监测对象2.3 Watchdog的监测机制3. 问题分析方法3.1 日志获取3.2 问题定位3.3 场景还原4. 实例分析5. 总结请尊重原创版权,转载注明出处。1. 概览Watchdog的中文的“看门狗”,有保护的意思。最早引入Watchdo

2017-05-19 16:03:08 27855 1

原创 如何分析应用的焦点被抢了

在system log 中查找:WindowManager: Set focused app to比如下面的:05-04 15:48:25.339531  1122 20690 V WindowManager: Set focused app to: AppWindowToken{48a2124 token=Token{e66c5b7 ActivityRecord{5c1a4b6

2017-05-10 17:01:43 779

原创 Android GridView 选择item 放大的动画

最近有用到在GridView 中选择单个的Item 时,需要将选择的Item 放大的需求.就网上查找了一下相关资料,同时查看了一下android相关的源码.这里记录一下,一般日后回忆和继续完善这个笔记.首先我们要知道在上面描述的情况下,一个ViewGroup 会有几个child view.我们如果只是直接使用缩放动画去放大那个选中View 会发现一个问题:选中的view 放大之后会

2017-03-21 18:06:39 2200

原创 高斯模糊Android

高斯模糊Android前提:当前的需求是要求用户每次下滑状态栏的时候看到的都是目前打开应用的模糊化的背景.下面的介绍主要是围绕实现这个需求来的.下面介绍几使用和见过的方法方法1:获取当前屏幕截图(使用SurfaceControl.screenshot),进行高速模式处理,如果获取结果为null 就使用壁纸来代替(为考虑是宽屏壁纸或者不归宿壁纸会出现压缩的情况),

2017-02-14 15:47:34 1106

原创 Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)

@SuppressLint("NewApi")public class UriUtils { /** * Get a file path from a Uri. This will get the the path for Storage Access * Framework Documents, as well as the _data field for the MediaStore

2017-02-14 15:43:50 985

原创 代码中执行apk静默安装

代码中执行apk静默安装背景:应用需要升级来添加一些功能,但是需求是静默升级,也就是不需要用户直接去操作.方法总结:开始在网上看了一下资料,测试成功之后整理了一下相关修改.实现当前的需求是需要应用用的是当前的签名.如何获取权限和修改未平台签名:1、首先,我们要做的就是从Android的系统源码的/build/target/product

2017-02-14 15:42:35 3458

原创 ViewPager 常见滑动冲突解决方法

情况1:ViewPager中的第一个child View 中的子元素要求可以水平滑动.在实际中遇到的问题是ViewPager中的第一个child View 中的子元素一件拿到了Touch(action=move)的事件,但是滑动的时候距离总是小于ViewConfiguration.get(context).getScaledPagingTouchSlop() ,考虑到ViewPager 本

2017-02-14 15:41:35 2507

原创 图片处理常用方法总结

1. 高斯模式处理查考笔记"高斯模式"部分,有专门总结2.裁剪图片(按屏幕比例)下面这个方法是将传入的bitmap(当初写这个方法的时候是取得系统壁纸)根据屏幕尺寸来裁剪public Bitmap setAndcropWallpaper(Context context,Bitmap wallpaper) { Bitmap targetBitmap = null;

2017-02-14 15:41:04 604

原创 IPC-AIDL的使用实例和分析

IPC-AIDL的使用实例这份笔记主要是为了记录跨进程通信IPC的其中方法之一的AIDL 的使用.需求假设:现在2个不同的应用需要相互直接传递消息,并且客户端还需要调用服务器的方法.这个时候使用AIDL 就是很好的选择.为了使这份笔记有更好的价值,这里客户端要求可以接到服务器的通知也就是说客户端让服务器做了一件事件,服务端做好了之后需要告诉客户端.也就是观察者模式.

2017-02-14 15:37:47 383

原创 IPC-Messenger使用实例

IPC-Messenger使用实例这份笔记主要是为了记录跨进程通信IPC的其中方法之一的Messenger的使用.需求假设:现在2个不同的应用需要相互直接传递消息.这个时候使用AIDL 就是很好的选择.为了使这份笔记有更好的价值,这里客户端要求可以接到服务器的通知也就是说客户端让服务器做了一件事件,服务端做好了之后需要告诉客户端.也就是类似观察者模式.注意: M

2017-02-14 15:37:05 500

原创 如何在代码中获取attr属性的值

如何在代码中获取attr属性的值获取arrt的值有时候我们需要把颜色,数值写成attr属性,这样做是为了屏蔽开发者对应具体数值,比如我们需要设置不同主题下的主色,副色,或者是不同版本的ActionBar大小,亦或者是不同Dpi下的DrawerLayout的宽度等。在xml里,我们可以简单的引用attr属性值,例如:androi

2017-02-14 15:36:09 2507

原创 使用Palette提取图片的颜色信息

使用Palette提取图片的颜色信息在android L之后就可以在导入android support v7 palette jar 包就可以使用Palette来获取图片中的颜色.由于需要在锁屏页面根据锁屏壁纸的颜色来适配相关图标的颜色和字体颜色,所以就了解了一下Palette的使用,当然不是要Palette也是可以实现这个需求的.后面也会记录一下使用其他方法实现这个需求.1.

2017-02-14 15:35:35 750

原创 自定义Preference时遇到的问题

在自定义Preference时需要使用一个完全不同的布局,在使用的过程中遇到一个问题,就是数据刷新不了.找到很长时间,现在总结一下原因,以便后续犯了类似的错误.  上面图中的红色部分就是我想要的效果的未完成的样子,本意是想传递4个float 类型的数字后,可以把手机存储的使用情况显示出来.但是发现数据也已经传递成功了,对应的textview 打印的值也是期望

2017-02-14 15:34:17 1696

原创 HorizontalScrollView 和GridView 实现横向滑动

用 HorizontalScrollView 和GridView 实现横向滑动时用几个地方需要注意的,这里记录一下,以便后续参考.1.GridView 显示大小异常.不管在布局中如何设置宽高,会发现都没有效果,这个时候要把HorizontalScrollView 的布局中增加android:fillViewport="true"2.不可以使用Horizont

2017-02-14 15:32:25 3119

原创 自动抢红包-辅助功能的使用

最近了解了一下这方面的知识,参考网上的一些博客,自己再完善了一下,写了一个自动抢红包的app.本应用支持QQ和微信挂后台时自动抢红包支持在微信和QQ的消息列表页面自动抢红包支持在QQ群和单个好友消息会话页面自动抢红包不支持在单个微信聊天页面自动抢其实主要是AccessibilityService相关的一些知识,可以参考android 文档,以下是国内的链接.

2017-02-14 15:31:40 2499 2

原创 Android自定义属性,attr format取值类型

这里先举个简单的例子,其他可以参考后面的.实例自定义attr.xmlxml version="1.0" encoding="utf-8"?> name="text" format="string"/> name="textColor" format="color"/> name="GuaView"> name="text"

2017-02-14 15:21:26 584

原创 Android 类似未读短信图标显示数字效果的分析

类似未读短信图标显示数字效果的分析      之前一直以为是应用本身在对图标进行修改,看了源码之后发现其实主要的工作并不是应用自己完成的,主要的工作在是launcher里面完成的.关于系统里面类似未读短信的具体处理流程如下,原理一个应用要实现这个效果,就要在自己有未读的消息的时候发送一个广播告诉系统我有未处理的事件了(例如:短信,电话和邮件等),

2017-02-14 15:01:27 558

原创 Android View 触摸屏事件派发机制和源码分析

Android View 触摸屏事件派发机制和源码分析最近参考Android SystemUI 的源码其中涉及到很多事件派发和处理相关的问题.早期感觉很复杂,后面有时间了通过结合log来分析渐渐有一定的理解.现在参考网络上面的文章自己也将这一方面的源码分析一下,同时写下来,以便然后回忆和加深理解.(基于mtk 的Android 5.1 系统)An

2017-02-14 14:59:51 474

原创 Android ViewGroup 触摸屏事件派发机制和源码分析

Android ViewGroup 触摸屏事件派发机制和源码分析Android 中不管是View 还是ViewGoup,触摸事件来的时候都是从dispatchTouchEvent开始的.其中dispatchTouchEvent()是View.java 的方法,ViewGroup 只是重写了这个方法.看ViewGroup的dispatchTouchEvent() 之前最好先看View

2017-02-14 14:59:16 356

原创 Android Activity 触摸屏事件派发机制和源码分析

Android Activity 触摸屏事件派发机制和源码分析之前查看View 和ViewGroup的源码的时候就得出结论,ViewGroup的触摸事件是从dispatchTouchEvent()开始,经过一序列判断和处理传递到View的dispatchTouchEvent().当时我们一般看到的页面都是Activity,Activity的触摸事件是怎么出来的呢?以下分析基于And

2017-02-14 14:57:56 417

原创 View-MeasuerSepc

View-MeasuerSepcMeasuerSepc 是View 的一个内部类,在分析View 的测量(measuer)会出现这个类,这里先记录一下对MeasuerSepc的理解.MeasuerSepc可以理解为 一个32位的int 值,其中前2位表示mode(模式),后30位表示size(具体大小),通过将mode和size体现在一个int值里面来避免过多的对象内存分配.

2017-02-14 14:57:05 290

原创 View MeasureSpec 和LayoutParams关系

View MeasureSpec 和LayoutParams关系系统内部是通过MeasureSpec来给View 进行测量工作的,但是我们实际却是只用LayoutParams来设置的.这里我们就是分析2者直接的联系.其实View在测量的时候,系统会将LayoutParams在父容器的约束下转换成对应的MeasureSpec,然后根据这个MeasureSpec来确定View测量之后的高和

2017-02-14 14:56:43 751

原创 View和ViewGroup 的measure过程

View和ViewGroup 的measure过程视图有3大流程,measure,layout,draw,即测量,布局和绘制.我们先分析第一个流程measure.1.View 的measure过程View 的measure过程是由其measure()来完成,这个方法是final类型的,也就是不能被之类重写,同事measure()会转调onMeasure(),所以我们暂时重点

2017-02-14 14:56:12 420

原创 ViewGroup 子类 LinearLayout 的measure 流程

ViewGroup 子类 LinearLayout 的measure 流程在笔记"View和ViewGroup 的measure过程"中已经提到ViewGroup没有执行具体的测量过程,只是调用child view 的measure()方法.这是因为ViewGroup之类太多,不好统一处理.实际是各个之类去重写onMeasure来自己处理的.下面主要是分析ViewGroup 子类 Line

2017-02-14 14:54:40 412

高斯模糊实现代码C

高斯模糊

2017-02-14

LongScreenShot

LongScreenShot

2017-02-14

genrate_new_old.sh

genrate_new_old.sh

2017-02-14

添加系统编译脚本

添加系统编译脚本

2017-02-14

同一套code上建立新的project autoClone.dat

同一套code上建立新的project autoClone.dat

2017-02-14

根据触发机制的移动实时事务调度算法

根据触发机制的移动实时事务调度算法,还有更新导出数据对象的实时事务调度算法,基于遍历有向非循环图的实时事务调度算法,基于不精确计算移动实时数据库服务质量管理,基于能耗的移动实时数据库系统服务质量管理,移动实时数据库QoS管理和更新事务调度算法

2011-05-02

空空如也

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

TA关注的人

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