自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(176)
  • 资源 (6)
  • 论坛 (2)

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

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

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

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

原创 性能优化之-使用HandlerThread

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

2019-03-18 19:49:10 209

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

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

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

2017-06-20 11:12:34 372

原创 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 4893 2

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

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

2017-05-19 16:06:00 490

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

转载 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 18730 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 548

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

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

2017-03-21 18:06:39 1880

原创 高斯模糊Android

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

2017-02-14 15:47:34 634

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

原创 呼吸灯仅提示15分钟

呼吸灯仅提示15分钟这里只是大致记录一下framework 层的大致修改方法.每次NotificationManagerService 在处理通知的时候会判断该通知是否需要开启led灯,如果需要开启的话,首先判断设置里面关于这个功能的开关是否开启,如果是开启的话,如果这个通知和同一个通知不是同一个id,就设置一个15分钟的闹钟来在关闭这个led灯.其中关闭是在闹钟时间到了之后,发出

2017-02-14 15:42:57 670

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

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

2017-02-14 15:42:35 3070

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

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

2017-02-14 15:41:35 2198

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

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

2017-02-14 15:41:04 340

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

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

2017-02-14 15:37:47 295

原创 IPC-Messenger使用实例

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

2017-02-14 15:37:05 353

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

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

2017-02-14 15:36:09 1357

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

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

2017-02-14 15:35:35 489

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

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

2017-02-14 15:34:17 1330

原创 HorizontalScrollView 和GridView 实现横向滑动

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

2017-02-14 15:32:25 2712

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

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

2017-02-14 15:31:40 1953 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 441

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

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

2017-02-14 15:01:27 462

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

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

2017-02-14 14:59:51 377

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

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

2017-02-14 14:59:16 234

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

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

2017-02-14 14:57:56 331

原创 View-MeasuerSepc

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

2017-02-14 14:57:05 236

原创 View MeasureSpec 和LayoutParams关系

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

2017-02-14 14:56:43 552

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

原创 ViewGroup 子类 LinearLayout 的measure 流程

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

2017-02-14 14:54:40 335

原创 View与ViewGroup layout 过程

View与ViewGroup layout 过程这儿过程相比measure要简单一点,我们先从View 的layout()看起,ViewGroup的layout主要还是判断一些条件之后调用View 的layout()View.javapublic void layout(int l, int t, int r, int b) { if (DBG_SYSTRACE_LAY

2017-02-14 14:53:55 1071

原创 View 和ViewGroup 的draw流程

View 的draw流程View 的3大流程,measure,layout,draw 在上层都是从ViewRootImpl开始的.具体来说是从performTraversals开始的.由ViewRoot对象的performTraversals()方法调用draw()方法发起绘制该View树,值得注意的是每次发起绘图时,并不会重新绘制每个View树的视图,而只会重新绘制那些“需要重绘

2017-02-14 14:53:12 621

转载 Android动画机制源码分析(待完善)

Android动画机制源码分析本文着重讲解Android3.0后推出的属性动画框架Property Animation——Animator的相关源码分析概述3.0之前已有的动画框架——Animation存在一些局限性, Animation框架定义了透明度,旋转,缩放和位移几种常见的动画,而且控制的是整个View,实现原理是每次绘制视图时V

2017-02-14 14:50:15 675

原创 语音信箱流程分析

语音信箱流程分析该文档主要是基于Android JB 版本,和可能和KK版本有一定的差异.如果在KK上面有不一样的地方,也可以参考JB上面的思路来分析相关的问题 以下分析是基于mtk的源码,不是Android 原始的code.我会把mtk 相关的code 提取出来,以便和Android 原生的code 对比. 如何配置语音信箱具体可以参考: FAQ04505 有些SIM

2017-02-14 14:28:00 2920

原创 Android 4.4 Settings 应用分析

一次偶然要在设置里面增加一个菜单,需要修改到settings_headers.xml 文件(res/layout/xml) 文件,所以就觉得要看一下这个流程.分析Android 源码的时候导入单个应用的时候一般是会有很多错误的,因为需要导入系统编译之后生成的jar包才能消除eclipse 里面的哪些红色xx.1.Settings的UI ...

2017-02-14 14:26:18 688

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

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

2011-05-02

高斯模糊实现代码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

框架中的<body>

发表于 2011-05-16 最后回复 2011-05-17

怎样给内部类传递一个外部参数

发表于 2011-05-04 最后回复 2011-05-09

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