自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 Android使用adb进行短信数据转移的方法

作者:Yongquan 笔者在某个应用测试中有发现特殊短信传输失败的问题,该问题涉及在地短信运营商与开发者分处不同地区无法复现。故本文介绍了一种使用eng版本模拟现场的方法。首先,我们需要从测试样机导出短信数据库,从代码中我们可以找到,短信的数据库应该在/data/data/com.android.providers.telephony/databases/mmssms.db。但实际上,在该路径下...

2018-04-26 10:59:01 4597 1

原创 Android Systemui之QsDetail界面内容滚动实现

作者:jing.chen 原生的systemui在QsDetail界面上的内容是无法滚动的,上下滑动的手势动作是实现QS界面的展开与收起功能。 原生的效果如左图,需求的效果如右图: 要实现QsDetail内容滚动效果,需要把touch事件传到QsDetail这层里,先分析v

2018-03-16 09:36:26 1707 1

原创 关于RemoteCallbackList的使用的一点心得

--- by Guokun.hou近期开发了一个Music播放类应用,开发及解决问题的过程中对于remotecallbacklist的用法有一些小小体会,特地写出来供参考;该应用提供了一个后台服务:MediaPlaybackService,它主要用于应用切换至后台时播放音乐。这个服务MediaPlaybackService提供了接口setPlayCallback( IMusic

2018-01-24 09:49:20 3933

原创 Launcher中批量应用图标拖拽的实现方法

-- Junda.huang笔者最近参与Launcher的定制,其中有一条需求是在编辑模式下实现应用图标的批量拖拽,实现批量操作。这篇文章主要记录批量拖拽的实现以及踩过的坑。原生的Launcher是没有批量拖拽item这种操作的,如下图所示。进入编辑模式后,只能对整个页面进行拖动。定制的Launcher要求,在编辑界面,可以通过点击选中多个app图标,然后长按可以对

2018-01-16 15:45:45 1218 3

原创 关于时间范围判断的一点体会

-- by Wenyuan.huang       笔者在之前的某个项目中遇到个需求:用户可定义时间范围(分别指定开始时间与结束时间,这两个时间点填写格式为xx时xx分,例如开始时间为18:15,结束时间为23:15);当时间来到开始时间点(比如18:15)则模式激活,当时间来到结束时间点(如23:15)则模式关闭。该需求在实现过程中踩了一些坑,现已解决完成,故特将其做记录,供有遇

2018-01-16 15:08:24 863

原创 Android环境下接收系统灭屏广播遇到延时问题的一个解决方法

-- By Zhongxiang.huang问题描述:    Android屏幕灭屏与亮屏时会分别发送两个广播SCREEN_ON和SCREEN_OFF,这两个action通过代码的形式注册广播接收器能被监听到。    笔者在某个视频应用的项目开发过程中就有用到,监听SCREEN_OFF广播消息,实现灭屏暂停播放功能。但是在使用过程中发现,该广播存在延时的情况,严重的时候延时

2018-01-16 11:44:30 1397

原创 Android 8.0 悬浮窗变动与对应使用方法

-- By Zhongxiang.huang问题描述:    项目开发中有使用到了悬浮窗,近期在往Android O 系统porting,发现悬浮窗功能不能正常使用,运行出错:  android.view.WindowManager$BadTokenException: Unable to add window — token android.os.BinderProx

2018-01-16 11:29:40 13773 3

原创 一则通过Android Canvas动态绘制图形的实例介绍

--  by Yongquan近期开发工作中,需要实现对双摄光圈的细微调节效果,大概效果如下图,当动画比较精细时,如果使用帧动画,需要的图片资源会比较多,且调试比较麻烦。本文介绍如何通过Android Canvas的路径,把几何图形转化为程序进行动态绘制。首先,对图片进行分析,可以看出图形是由8块一样的扇形拼接而成,每一块图扇形是由一条垂直于y轴的直线,一个45度夹角的

2017-12-08 14:39:18 2517

原创 在Android 7.0隐藏导航栏和状态栏的一些方法

--- by Blue.Wu背景:近期笔者在某款app时,需求要对导航栏(返回,home键,recent键的那部分)进行隐藏,此外还要做相关操作的屏蔽避免导航栏恢复显示。原本的方案是通过发广播给system ui,在system ui做remove导航栏的操作实现。后来架构设计阶段评估该方案对于外部模块的耦合太强,因此希望对方案进行优化,要求只在app自身做改动就可以实现。经过一番

2017-11-28 16:15:58 15443

原创 MTK方案上基于Android N拦截黑名单中的短/彩信的方法

--- 作者 zuhui.zhang安卓7.0原生系统增加了在framework层拦截黑名单来电和短信,但不会将数据保存到数据库,因此无法查看到被拦截的来电和短信。在安卓7.0之前,黑名单的短信默认是不会拦截的,为了实现黑名单短信拦截功能,需要对短信数据库表中的字段新增特殊的值,以便标记黑名单短信。以下具体说明下笔者对于MTK方案里的短信应用中拦截短彩信的实现方法。一、拦截黑名

2017-11-22 15:49:56 2535 1

原创 修改电话中新通话记录无法立即显示联系人姓名问题

--- by Zhonglong问题描述手机联系人来电或去电,通话结束后,打开通话记录列表时,新通话记录先显示电话号码。过一会儿才显示联系人姓名,体验不佳。问题分析按照Android原生设计,通话记录数据库中,除了保存电话号码,还会缓存联系人信息。当电话显示通话记录列表时,先查询通话记录数据库,显示电话号码或者缓存的联系人姓名;再针对每条通话记录去查询联系人数据库,对比

2017-11-20 18:22:41 3192

原创 H.264 打包 MPEG-TS 流

H.264 打包 MPEG-TS 流– 作者 Amour Wang1.简要说明本文主要介绍了H264打包成MPEG-TS 流的关键部分,及中间碰到的一些问题。至于H264 和TS 流的相关标准这边不再做详细介绍。2.H264 打包TS 流过程TS 流组成说明(这边针对本文例子中的情况,其他情况参照TS 标准):TS 流以包为单位,每个包的大小为188,主要包含了几种不同类型的包 1. PAT 表:

2017-11-20 14:36:19 4270 1

原创 Android应用中实现拖拽排序及添加阴影的方式

--- by Anwei.shi背景介绍:Android 应用开发中避免不了对容器中的各个Item的进行拖拽排序等操作,比如锤子手机中著名的OneStep功能(拖拽),以及Android 系统中语言设置菜单的快速排序功能。前段时间由于项目需求,需要对悬浮球中的菜单项实现如上的快速拖动排序删除等功能。具体实现:1.拖拽排序参看AndroidSetting语言设置项

2017-11-10 14:57:45 3159 2

原创 Launcher应用在CTS测试中出现的几个问题总结

--- By Wampee.Lan问题1、CTS Failed:release的apk版本为测试版本,非正式版本Launcher通过eclipse编译Run As——AndroidApplication后,在项目bin目录生成的apk为测试版,可以通过以下代码测试当前包名apk是否为测试版:private boolean isApkDebugable(Contextcontext,

2017-11-10 14:19:35 1382

原创 关于RecyclerView与ListView控件滑动距离的计算方法

作者:Ken.He由于项目需要,需要对各个app窗口中的控件进行滑动,并截图,最后拼接。其核心难点就在于滑动,包括它滑动的判断,滑动的距离计算等等。截图与拼接部分这里不详述。计算滑动的距离,原理其实很简单,就是:滑动后的位置(终点)- 滑动前的位置(起点)= 滑动距离。这里介绍一下如何计算RecyclerView与ListView实际滑动距离(当前仅限由下向上滑动一种情况)

2017-11-02 13:55:06 1217

原创 结合图库app开发谈谈Glide库使用心得

-- By Denis.zhengGlide 是 Google 官方推荐的一款图片加载库,使用起来也非常的简单便利,Glide 它帮我们完成了很多很重要,但是却通用的功能,例如:图片的加载压缩、展示、加载图片的内存管理等等。笔者近期在图库项目中也大量使用了Glide来进行图片的加载展示和处理,关于Glide的常规用法,网络上有很多,在这里就不详细讲,本文主要讲下Gallery3.0

2017-11-02 11:41:16 712

原创 Android Handler中计时延迟的补偿方法

--- by Zhongxiang.Huang近段时间,在开发项目过程中遇到一个双重计时不准确的问题,该项目功能是计算手机屏幕产生蓝光的能量值;原理大概是这样:设置好屏幕亮度,纯色屏,计算屏幕在20s时间内发出的蓝光能量值,然后在这20s内,还要分开100次(这里以100次举例)来分别计算,最后算总和,计算方法这里就不阐述了,因此就涉及了双重的计时需求,一个是20s单次计时,一个是20s内10

2017-10-31 09:29:45 3507 1

原创 Android 7.0上app所需高级权限的解除限制的方法

---- by Shengwen.Wei一、    概述        随着移动互联网的发展,用户对于自身的信息安全越来越重视,基于此,android系统对于用户自身的信息安全特别是android M(6.0)以后,对于权限的管理尤为严格。二、    高级权限的使用限制及解限        目前,android系统按照安全级别大致将权限分两种:一般权限、危险权限。对于一般权限,

2017-10-26 16:17:24 16812

原创 Android 7.0 锁屏解锁之向上滑动显示解锁界面分析

Android 7.0 锁屏解锁之向上滑动显示解锁界面分析by jing.chen 锁屏的解锁操作是在锁屏界面向上滑动实现的,通过向上滑动调出解锁界面(如图案、PIN、密码解锁界面),在解锁界面输入正确的密码之后解锁显示launcher。向上滑动如何调出解锁界面,需要分析PanelView的onTouchEvent事件,用户向上滑动的整个touch事件分析如下: 1、用户手指

2017-09-29 10:13:07 10775

原创 跑马灯的一些使用心得

By Pheobe.liu前言在项目开发过程中,有时候应用涉及多语言,时常会出现内容过长而溢出的问题,例如某些爬虫语言,所以有些地方就考虑用跑马灯来呈现,此外某些特殊应用也会考虑使用跑马灯来增加用户体验。在这里归纳下自己看的一些文章以及google 原生对跑马灯的定义,并谈下使用的一些体会。原生定义跑马灯首先说下google自带跑马灯效果,根据google 关于textView 源码可以查看启动自

2017-09-27 15:18:54 3881 1

原创 利用OpenCV感知哈希算法进行图片相似度对比

--- by Liuhua.chen笔者日前在项目中需要处理相似图片对比的问题,经过网络搜寻资料加上一些个人研究,顺利完成功能开发。特分享如下;首先采用了主流框架OpenCV,该框架同时提供了以下几种对比图片方法。1、PSNR峰值信噪比PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。由于

2017-09-25 09:40:47 11042 2

原创 Android SIM卡联系人操作总结

--- by Ruiming.Lv在Android中,对SIM中的联系人进行操作,需要通过系统提供的Content Provider进行,该Provider就是Telphony中的IccProvider。但是,由于SIM卡存储的一些特性,在操作上,与ContactsProvider有很多不一样。1       IccProvider工程相关IccProvider是Telep

2017-09-21 14:49:50 4822 1

原创 SystemUI添加第三方快捷开关时灰显问题分析

作者:neek.chenAndroid7.0上不仅有默认的快捷快关(QSTile),也允许客户自行添加第三方快捷开关(CustomTile)。本文只介绍在绑定第三方CustomTile时遇到的间歇性灰显的问题。问题场景描述: 进SystemUI的编辑界面,将一个第三方Tile添加到显示列表中,返回显示界面,间歇性出现图标是不可用状态(灰显)。添加Tile流程分析1. 将CustomTile

2017-09-21 14:48:05 1160 1

原创 AndroidStudio 查看Framework代码

— By Baolong.lai前提了解:1.Window下添加添加网络驱动器(方法三中要用到) https://jingyan.baidu.com/article/7c6fb4280f254580642c90c7.html2.Window命令,生成链接 mklink(方法三中要用到), 例子: mklink /D framework_base Z:\ 在当前目录为Z盘生成名叫framewo

2017-09-15 13:48:38 6848

原创 Android状态栏渐变色的实现

--By Meiq.lin Android开发中在某些界面为了保证显示一致性,可能需要调整statusBar的背景色。Android 5.0开始只需要修改styles.xml文件中colorPrimaryDark的颜色值就可以修改statusbar背景色。但colorPrimaryDark只能设置固定色值的颜色,无法设置渐变色。所以,通过colorPrimaryDark无法实现状态栏的渐变

2017-09-15 13:46:20 13575

原创 android.mk中引用第三方库的方法

by Denis.ding一、集成第三方jar包:1.在项目目录下创建目录libs(不创建也行,一会儿指向对应路径就好),将第三方的jar包放进去。2.在Android.mk文件中进行配置:include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:= smartphotolib:../../libs/s

2017-08-22 08:53:42 12599 1

原创 Android.mk内置第三方APK和资源文件的方法

作者 Loy.OuyangAndroid应用开发项目中,经常会遇到系统预置第三方apk,或者资源文件的需求。笔者下面针对这两种需求分开详述:一、内置APK1.apk不含so文件将APK放入文件夹内,改名为:yourModuleName.apk(mk文件中的yourModuleName)。Android.mk文件与apk文件同级。Android.mk内容如下:LOCAL_PATH := $(call

2017-08-22 08:45:01 12093

原创 Android N下多用户数据切换的注意事项

By Jing.chen在多用户系统里,切换用户后需要重新获取数据、监听数据以保证不同的用户数据不同。比如在systemui里,导航栏按键的组合方式,在机主(Host)模式下设置back键在后,在访客(Guest)模式下back键在前,切换不同的用户应该显示正确的组合方式,本文介绍从SettingsProvider和contentProvider获取多用户数据。一、从SettingsPro

2017-05-22 14:23:52 9517

原创 Material Design实现应用动态改变色调的方法

作者 Yongquan.Xu1、概述本文针对目前FreelyUI 应用的主题色定制,利用Material design的主题颜色和tint着色特性,实现快速定制app主题颜色。2、Material design的主题颜色控制如下图所示,Material Design定义了一系列的颜色用以控制应用的各种色调,本文使用主题颜色用于定义应用的各种色调。ColorP

2017-02-09 21:17:13 4060 1

原创 Android系统下2D绘图性能提升的一些方法

作者 Zhenpu.Zhang笔者近期开发了一款绘图类应用,其中在绘图性能提升效率方面遇到一些问题,经过咨询高手和查找前人经验,积攒了一些小小的经验,特地写下,希望能给同样有需要的程序猿一些启发。下面进入正题,首先介绍一些基本概念;Android绘画需要的一些基本元素1.Canvas和Bitmap其实在自定义的View中,我们就已经使用到了Canvas,在重

2017-01-23 14:24:45 3824

原创 Android系统更换主题外观的实现方法

作者:Liuhua Chen 一、   实现思路安卓应用在读取资源时是由AssetManager和Resources两个类来实现的。Resouce类是先根据ID来找到资源文件名称,然后再将该文件名称交给AssetManager来打开文件。我们主题开发的核心思路就是在应用读取资源时,先去主题包里读取资源,若有资源,直接返回主题包的资源,若无资源,直接返回应用本身的资源。参考博客:ht

2017-01-23 14:16:35 6130 2

原创 编译CM源码中遇到的一则Couldn't download artifact错误的解决方法

by JP 笔者最近为了纪念即将逝去的Cyanogenmod系统,特地找出尘封已久的Nexus4手机,下载了一份最新的CM14.1的源代码,想编译后安装使用。其过程在网络上有很多文章描述,在此就不赘述了。只是其间遇到了一个编译问题,折腾了几天,网上都没有翻到合适的方法;自行研究一番解决之后,不敢藏私,特地分享出来,供有需要的同好参考。该问题编译出错的信息如下:FAILED: /bi

2017-01-04 20:30:10 2182

原创 android 7.0 system UI之快速启动栏的分析(一)

作者:jason.chen  从状态栏往下拉的时候,就会出现“快速设置”界面,如下图所示。快速启动界面可以让用户快速设置和操作。对于急需或频繁使用的控件和操作,保留“快速设置”图块,且不应将其用作启动应用的快捷方式。android7.0添加了新的API,让开发者可以为自己的应用添加快速设置图标。这篇文件将要分析快速启动的设计。当然,只是个人见解。

2016-12-27 15:43:48 4345 4

原创 Git管理多个远端仓库的方法

作者: yongquan.xu本文针对目前项目同时维护2个远端仓库的情况,介绍了用一个工作项目,同时提交的方法。1、工程配置由于S2和X588的系统主题不一样,本节介绍通过工程配置和Android版本继承的方法来动态引用系统主题。使得在Windows下编译时,忽略项目特有的style,而在源码编译时自动引用。避免提交时因为平台的差异,提交错误的style导致编译失败。在

2016-09-06 12:12:04 4485

原创 2016安卓手机安全隐私之对比与分析

作者: Li.zhu1.    前言现实生活中,没有人希望隐私信息在不恰当的场合被公开,甚至即使是最私密关系的两个人之间,隐私也应该得到保护。而在手机上,这种情况得到了更大的体现,假如你的朋友可以自由的打开你的手机,去看你手机中的照片和视频或者查看手机中的重要文件,你会不会觉得有些尴尬或不舒服?如果遇到别有用心的人,那银行卡密码、支付宝密码或者是不想给人看的照片等都会被曝光

2016-08-17 13:25:56 6570

原创 Android源码工程转化为Android Studio项目的方法

作者:Yongquan.xu用习惯了AndroidStudio,用回Eclipse,感觉各种不习惯,代码助手也比较差,毕竟Google弃用了有一段时间了,于是就想着怎么把系统原生应用改成AS的工程格式,同时保证在源码里可以正常编译。下面介绍改造的主要步骤:1、  安装Android并更新到最新(这不是废话么)2、  AndroidStudio->File->New->Import Pr

2016-08-05 15:03:13 3462

原创 一种通过AIDL实现DLNA共享服务的方法

作者:Neek.chen一、AIDL简述Android Interfacedefinition language(AIDL),它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口。首先引用官方文档一句话:Using AIDL isnecessary only if you allow clients from different applic

2016-08-04 18:39:41 654

原创 在Android源码中扩展自定义View的方法

作者: yuanquan.xu笔者在开发应用中,有时需要实现自定义滚动的控件,Android提供的NumberPicker可以满足基本功能,但实际上扩展起来,各种不方便。比如,显示行数固定为3行且无法更改,很多变量和attr是私有类型或者系统隐藏类型,无法直接在xml中定义,等等等等。因此,针对目前项目中在Eclipse进行开发,通过源码编译进行系统集成的情况,本文主要提出了一种通过源

2016-08-04 18:31:52 797

原创 Android Instant App 介绍

作者: Amour.wang开篇说明每年Google 的 IO 大会上都会有令人惊喜的黑科技发布,今年也不例外,今年谷歌针对android 发布了一个名为 instant app 的新技术。关于这个新技术,网上大部分都是介绍这个功能的应用场景,比较少提及一些技术相关的问题。我这边主要针对广大程序猿,针对这个功能整理了一些应该是程序猿们比较想知道的一些问题。Ps:下面

2016-08-03 09:48:02 2429

原创 2016 Google I/O新知介绍之 Daydream VR platform

作者 Steven.Zhu1     背景1.1  VR元年  2016年被称为「VR元年」,业界对虚拟现实的关注持续升温,Oculus Rift引领了整个行业的风向已成为不争的事实,索尼PSVR、HTC Vive、三星Gear VR加入战局,厮杀正酣。另就国内而言,阿里重金投资MagicLeap,腾讯布局TencentVR,百度借视频进军虚拟现实, 暴风华为乐视小

2016-08-01 18:00:21 2551

空空如也

空空如也

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

TA关注的人

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