自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (4)
  • 收藏
  • 关注

原创 Android 通知之RankingHelper

因为不同厂商不同设备(手机、TV、汽车等)对于通知的处理方式可能会各不相同,为了方便通知行为的灵活配置&分离解耦,Android平台定义了NotificationSignalExtractor接口,并通过xml文件配置添加相关的处理实现类。我们看到NMS从Resource中获取了一个字符串数组extractorNames并且给到了RankingHelper的构造方法中,该数组定义在frameworks/base/core/res下的config.xml文件中。在onStart中调用了init方法。

2023-09-12 16:55:36 146

原创 Android通知之NotificationManagerService 源码分析

NotificationManagerService 是在系统启动时在SystemService.startOtherServicess的时候通过mSystemServiceManager.startService(NotificationManagerService.class)方式启动的,并且加入到了系统服务的列表当中,在Android系统中可以通过ServiceManager.getService("notification")拿到这个服务,后面统称为NMS。这里只是说明一下,后面会展开详细介绍。

2023-09-12 16:44:29 460

原创 Android Touch事件InputManagerService源码解析(二)

我们的设备在显示的时候其实是有多个窗口叠在一起的,最常见的就是Activity,每一个Activity都有一个window,状态栏、下拉栏、一个透明的Activity悬浮在另一个页面上、通过WindowManger添加View等。InputReader不停的从底层读取事件发送给InputDispatcher,InputDispatcher内有一个线程,当有新的事件的时候会从休眠中唤醒调用dispatchOnce。但是这是触摸事件的消费处理过程,有没有想过touch事件是由谁产生,又是如何传递给View的。

2023-09-12 16:15:25 288

原创 Android Touch事件InputManagerService源码解析(一)

但是这是触摸事件的消费处理过程,有没有想过 touch 事件是由谁产生,又是如何传递给 View 的。可以看到 InputDispathcer 和 InputReader 启动了 2 个非常重要的线程,它们确保了 input 子系统能够源源不断的从底层获取输入事件,并将事件经过层层包装之后上报给当前的焦点窗口去处理。在 1.2 中 native 层创建了一个 NativeInputManager 实例,并将对应指针返回了 java 层,在 nativeStart 的时候又调用了 start 函数。

2023-09-12 16:09:57 250

原创 Android App Install源码解析

此时InstallInstalling就通过session将应用的安装信息发送给了PackageManagerService,前面页面也注册了一些安装过程的回调监听,当PackageManagerService安装完成后会回调InstallEventReceiver,安装成功和失败,都会启动一个新的 Activity(InstallSuccess、InstallFailed)将结果展示给用户,然后 finish 掉 InstallInstalling。先看下InstallStaging。

2023-09-12 14:06:09 444

原创 android 电源管理休眠唤醒浅析

最终是往指定的 path 的文件节点下写入一份 string 数据,新版本是“/sys/power/wake_lock”旧版本“/sys/android_power/acquire_partial_wake_lock”。在 Android 系统中我们常用 wake lock 锁来保持设备唤醒,使设备不进入休眠状态,本文从源码角度分析一下 wake_lock 的基本流程原理。PowerManagerService.WakeLock: PowerManager.WakeLock 在 PMS 中的表现形式;

2023-09-08 16:22:14 198

原创 android wake_lock 锁源码分析

最终是往指定的path的文件节点下写入一份string数据,新版本是“/sys/power/wake_lock”旧版本“/sys/android_power/acquire_partial_wake_lock”。在Android系统中我们常用wake lock锁来保持设备唤醒,使设备不进入休眠状态,本文从源码角度分析一下wake_lock的基本流程原理。PowerManagerService.WakeLock: PowerManager.WakeLock在PMS中的表现形式;1.WakeLock使用。

2023-09-08 16:07:18 280

原创 Android焦点requestFocus 源码分析一

首先会更新当前 View 的标记位 mPrivateFlags 记录自己的 isFocused 状态,PFLAG_FOCUSED表示当前View获取焦点,接着通过 rootView 查找到当前的焦点赋值给 oldFocus,以用于后续逐层清理旧的焦点View的焦点,然后调用 parent 的 requestChildFocus 方法告知 parent 自己当前获取到焦点。View的实现比较简单,就是查询一下自己的mPrivateFlags标记位,如果获取到了焦点就将自己返回,否则返回null。

2023-09-04 10:34:16 140

原创 小程序iOS端wx.startPullDownRefresh不触发onPullDownRefresh

在做小程序开发时经常会有下拉刷新上拉加载的需求,下拉刷新可以通过手动向下滑动屏幕触发,也可以通过小程序的官方api wx.startPullDownRefresh方式触发。对于编译器与Android手机来说两种触发方式没有区别,都会有一个下拉刷新的动态效果并且触发onPullDownRefresh刷新函数。而iOS端使用wx.startPullDownRefresh方式触发下拉刷新是,只有一个下拉刷

2017-10-24 10:19:08 7123 1

原创 Android仿微信朋友圈10s视频编辑

以前遇到一个需求就是要做一个类似微信朋友圈10s视频上传的功能,因此就需要视频裁剪与压缩,需要做一个类似微信朋友圈视频编辑的页面,就需要将视频按照时间一秒一秒解码成一幅幅的图片,让用户滑动选择。之前在网上找到了一个类似项目用的 MediaMetadataRetriever 来获取视频某一个时间的图片,但是该类在视频分辨率较高时效率低下,体验不好,于是我用NDK集成FFmpeg重新解码,发现

2017-10-20 14:50:41 4902 11

转载 将项目上传到github

转载自:http://www.cnblogs.com/cxk1995/p/5800196.html 使用git将项目上传到github(最简单方法) 首先你需要一个github账号,所有还没有的话先去注册吧!https://github.com/我们使用git需要先安

2017-10-03 14:58:36 289

原创 FFmpeg解码视频帧为jpg图片保存到本地

之前遇到一个需求是将视频一秒一秒解码成一帧一帧的图片,用户滑动选择时间节点(微信朋友圈发10秒视频的编辑界面)。开始我是用的MediaMetadataRetriever类来获取图片,但是对于分辨率比较大的视频(1920*1080)获取一个图片要0.7/0.8秒,太慢了。后来又用FFmpeg的命令来批量的解码视频成一帧一帧的图片,速度依然不快每张图片得耗费0.5秒左右的时间。最后还是用FFmpeg,不

2017-10-02 17:03:35 8586 7

原创 自定义圆形水波纹View

学了一段时间的自定义view了,现在总结一下关于贝塞尔曲线的用法。不说废话,直接撸代码。 首先在attrs中定义一个命名空间 declare-styleable name="CircleWaveView"> attr name="waveColor" format="color">attr> attr name="waveHight" format="dime

2017-05-09 14:00:49 967

Android微信朋友圈10s视频编辑2

仿微信朋友圈10秒视频编辑,前不久公司项目有一个类似微信的朋友圈的视频编辑上传功能,自己在网上也找到了一个类似项目,但是那个项目图片解码太慢体验不好,于是自己重新写了一个,用NDK集成FFmpeg来解码图片效率大大提升。 说明博客:http://blog.csdn.net/qq_28284547/article/details/78151635 之前的资源http://download.csdn.net/download/qq_28284547/10031831有些错误如果已下载的在gradle将依赖com.github.kui92:FFmpegLibrary:3.1 改为com.github.kui92:FFmpegLibrary:3.2就可以了。

2018-01-12

Android微信朋友圈10s视频编辑

仿微信朋友圈10秒视频编辑,前不久公司项目有一个类似微信的朋友圈的视频编辑上传功能,自己在网上也找到了一个类似项目,但是那个项目图片解码太慢体验不好,于是自己重新写了一个,用NDK集成FFmpeg来解码图片效率大大提升。 说明博客:http://blog.csdn.net/qq_28284547/article/details/78151635

2017-10-20

Android FFmpeg工具

FFmpeg解码视频把指定时间的图像帧保存为jpg图片,并且可以执行FFmpeg命令。

2017-10-20

FFmpeg解码视频保存为一帧帧jpg图片

FFmpeg解码视频把指定时间的图像帧保存为jpg图片,并且可以执行FFmpeg命令。

2017-10-02

空空如也

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

TA关注的人

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