- 博客(64)
- 资源 (29)
- 收藏
- 关注

原创 Android 4.0 中由ProGuard引发的一场血案
案件还原: 修改Android 4.0源码中的Setting,添加一项功能之后,在eng模式下编译,一切正常,遂提交代码到服务器。第二天,传来噩耗,Setting上新添加的功能无法使用,一点击则报错。案件分析: 上传代码之前,已经在本地编译测试过,咋会有错呢??!!管它三七二十一,操起adb logcat抓取log进行分析。不看不知道,一看吓一跳,log中显
2012-11-05 10:28:27
14167
8
原创 Android 5.1 Lollipop Phone工作流程浅析(十三)__InCallActivity启动Performance浅析
Google在2015年3月9日低调发布了Android 5.1,从官方博客的描述来看只是进行了小幅更新,如增加多SIM卡支持,HD Voice支持等。虽然Google对外声称只是稳定性和性能上的微调,但在查看Telephony Phone相关代码后,Android 5.1在这一块的动作还是很大的。
2015-12-30 13:34:55
11327
3
原创 Android 5.0 如何正确启用isLoggable(二)__原理分析
在前一篇文章《Android 5.0 如何正确启用isLoggable(一)__使用详解》中分析了isLoggable的使用方法,本文主要分析isLoggable实现原理以及user版系统root后永久enable isLoggable的原理,并使用脚本自动设置isLoggable相关属性。
2015-06-09 13:20:07
5986
原创 Android 5.0 如何正确启用isLoggable(一)__使用详解
在Android源码中,经常可以看到使用isLoggable来控制Log输出的代码,该方法可以非常方便的控制log输出,无论在user/userdebug/eng版本的系统中,isLoggable都能正常激活,便于开发者调试。
2015-06-08 14:26:30
26325
1
原创 Android 4.4 Kitkat Phone工作流程浅析(十二)__4.4小结与5.0概览
在Android 4.4 中,Google 对Telephony_Phone进行了重构,前面也通过一些列文章分析了Android 4.4 中Telephony Phone的工作流程。但在2014年10月15日,Google发布了Android 5.0 预览版,正式版也在一个月之后发布。Android 5.0 变化非常大,无论从UI风格还是功能实现上,Google都进行了大刀阔斧的修改。同时,Telephony_Phone模块的架构也再次进行了调整,调整之后的Telephony_Phone各个模块之间耦合性更
2015-05-04 11:15:10
17396
5
翻译 How to check SnapDragon 810 supports DASH
Dynamic Adaptive Streaming over HTTP (DASH), also known as MPEG-DASH, is an adaptive bitrate streaming technique that enables high quality streaming of media content over the Internet delivered from conventional HTTP web servers. Similar to Apple's HTTP Li
2015-04-02 16:56:59
2950
3
翻译 How To Make Bootanimation (Base on Android Source Code)
Android boot animation is contained within a an uncompressed zip file called bootanimation.zip that can be found in the media folder of the system partition i.e. /system/media on the internal memory of the device. When device boot up,/system/bin/bootanimat
2015-03-26 15:52:30
3450
翻译 How to generate unique key on Android platform
Google Android default using testkey, so we can change to our release key
2015-03-26 14:13:31
2384
2
原创 VMware Ubuntu 12.04分区动态调整小记
在WMware中安装Ubuntu 12.04时,分区大小默认使用了20G,安装完成后根目录大小只有12G。因为一开始打算将源码放到单独挂载的分区中,所以觉得12G应该也足够。但在Android源码编译过程中遇到了空间不足的问题,源码编译最后会将相关的img文件压缩成zip包,这个步骤会暂时利用/tmp这个目录。因为根目录只有12G,再加上/home下存放了一点东西,Android源码编译最后打包时,提示根目录空间不足打包操作被终止。本文的目的是,动态调整分区大小,扩大根分区容量,避免Android编译无法打
2015-03-16 14:56:49
5292
原创 Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析
本文主要分析了在InCallUI中PSensor如何控制屏幕的亮灭及其实现原理。全文分为三大部分,即:ProximitySensor初始化流程,ProximitySensor使用流程和PSensor工作流程。前两部分主要分析了上层应用如何使用PSensor提供的接口,第三部分则详细分析了PSensor如何控制屏幕的关闭/点亮。
2015-02-09 18:51:12
8924
6
原创 Android 4.4 Kitkat Phone工作流程浅析(十)__"通话显示"查询流程
无论是在MT (Mobile Termination Call被叫——来电),还是MO (Mobile Origination Call主叫——去电) 流程中,通话界面上都会显示当前通话的名称( 后文以displayName指代 )。通常情况下,如果是一个陌生号码,则会显示为该陌生号码。如果是已知联系人,则会显示该联系人的名称。当然,在会议电话( Conference Call )的情况下则直接显示"会议电话"。但是,在某些特殊情况下,displayName还会显示诸如"私人号码"、"公用电话"、"未知号码
2015-01-16 14:43:00
9964
3
原创 Android 4.4 KitKat NotificationManagerService使用详解与原理分析(二)__原理分析
在上一篇文章《Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解》中详细介绍了NotificationListenerService的使用方法,以及在使用过程中遇到的问题和规避方案。本文主要分析NotificationListenerService实现原理,以及详细分析在上一篇文章中提到的相关问题和产生的根本原因。
2014-11-17 21:06:12
15177
8
原创 Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解
NotificationListenerService是Android 4.3 之后新增的接口服务,用于获取系统Notification信息,这在之前的Android版本是无法直接办到的。在Android 4.4中,增加了Notification.extra变量,使得获取Notification相关信息更加丰富,这些接口的开放更加利于三方应用的使用,但同时也会带来一些隐私问题。本文对NotificationListenerService的使用进行了分析,如果觉得不错请推荐一下吧 :)
2014-11-11 21:10:16
35383
7
原创 Android 4.4 Kitkat Phone工作流程浅析(九)__状态通知流程分析
当手机Modem状态改变后会将状态变化信息通知到上层,通过《Android 4.4 Kitkat Phone工作流程浅析(八)__Phone状态分析》和《Android 4.4 Kitkat Phone工作流程浅析(六)__InCallActivity显示更新流程》的分析,我们知道了Phone状态的类型,以及这些状态的上报流程,而本文主要分析Phone状态改变之后是如何通知到三方应用的。
2014-07-14 14:39:13
16548
原创 Android 4.4 Kitkat Phone工作流程浅析(八)__Phone状态分析
Call的状态分为6种:ACTIVE、HOLDING、DIALING、ALERTING、INCOMING、WAITING。这里的依据是什么呢?在Google AOSP代码中,我们可以看到google使用的是AT+CLCC的方式来获取当前通话信息的,CLCC的状态描述总共有6种,也就是:active(0)、held(1)、dialing(2)、alterting(3)、incoming(4)、waiting(5),括号里为状态对应的数值,关于AT+CLCC的指令描述,请大家参考相关AT文档。这些状态值由Mod
2014-06-15 17:47:23
15138
原创 Android 4.4 Kitkat Phone工作流程浅析(七)__来电(MT)响铃流程
本系列文章以MT/MO为主线流程,并对其中的细枝末节进行补充说明,比如来电响铃流程。在MT流程的分析中已经涵盖了流程的发起与终止,本文所描述的响铃流程始于MT流程的发起,如对MT流程不熟悉的童鞋请查看文章《Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析》以及《Android 4.4 Kitkat Phone工作流程浅析(六)__InCallActivity显示更新流程》。
2014-05-06 18:36:21
13704
2
原创 Android 4.4 Kitkat Phone工作流程浅析(六)__InCallActivity显示更新流程
在整个MO/MT流程的分析过程中,遗漏了很多细枝末节,在弄清楚整个MO/MT的始末之后,便发现有一些疑问疑问,因此打算陆陆续续分析一些遗漏的细节。本篇文章的发起缘由很简单,就是想知道InCallActivity是如何显示和更新的,通过分析后发现,现在Android 4.4 的界面更新也是从Modem状态改变发起,并不像以前那样直接更新显示界面。
2014-04-24 17:53:04
17922
原创 Android 4.4 Kitkat Phone工作流程浅析(五)__MT(来电)流程分析
上一篇文章简单分析了RILJ的工作流程,实际上MTK对于RILJ的改动还是较大的,添加了很多request和respone类型。对于MT(来电)来讲,首先还是会由Modem接收到信息,然后发给RILC,RILC再发送给RILJ,并在RILJ的RILReceiver中接收到并进行处理。MTK对于Modem侧的AT指令进行一些定制,这和AOSP原生使用CLCC方式后去来电信息不同,MTK这里使用了自己添加的AT指令ECPI来反馈通话状态改变的信息。后面会针对MTK的log进行一个简单的分析,根据log来分析 M
2014-04-04 13:51:36
19699
原创 Android 4.4 Kitkat Phone工作流程浅析(四)__RILJ工作流程简析
本文来自http://blog.youkuaiyun.com/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉。前置文章:《Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划》《Android 4.4 Kitkat Phone工作流程浅析(二)_
2014-03-26 13:44:54
16226
1
原创 Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析
本文以MTK Android 4.4 源码为模板,分析了Android 4.4 拨号流程。MTK在Android的原生的基础上添加了很多功能,比如VideoCall, 来电/去电归属地等等,这些功能是Android原生所不具有。MTK在加入这些功能的同时,为了方便后续移植使用了一套自己的架构即pluginManager ( Phone中使用ExtensionManager从PluginManager中获取实例,Contacts也使用同样的方式 )。什么是PluginManager呢?
2014-03-14 12:45:39
27270
2
原创 Android 4.4 Kitkat Phone工作流程浅析(二)__UI结构分析
之前有分析过Android 4.2的InCallScreen结构(传送门),但后面Google发布了Android 4.4即Kitkat,遂决定以之前的文章为模板,重新整理并记录。在4.4中当有来电或去电时,显示给用户的界面如图1,在4.4之前称之为InCallScreen,但在4.4之后叫做InCallActivity。在4.4中我们调出的拨号盘界面,实际为DialtactsActivity并隶属于Dialer应用.
2014-03-03 09:38:46
27091
2
原创 Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划
美国时间 2013 年 10 月 31 日, Google 正式发布了全新版本的移动操作系统 Android 4.4 KitKat 。据 google 官方介绍,Android 4.4 降低了硬件的需求,提高了程序运行效率。距离 4.4 发布已经过去3个月了,不少朋友也已经体验到了 4.4 所带来的快感,大家可以用过刷入三方ROM(比如知名的CM ROM等)体验Android 4.4。
2014-02-28 15:28:15
28596
2
原创 2014-01-06 工作总结(约2年)
时间过得很快,2年时间转眼就过去了,自己也不再是那个初出茅庐的小子,身边的事,身边的人都在不停的改变,自己也在不停的改变,但有一句话始终影响着我! 我不能改变世界,但世界也不能改变我! 曾几何时,自己还在网上四处搜索各种问题的解决方案,总希望能一下子就能把问题解决了。但随着时间的推移,自己慢慢的发现,这种方式无异于饮鸩止渴。如果我们遇到问题,能够在网络上搜索到答
2014-01-06 17:29:57
5886
1
原创 Android 4.2 关于GlowPadView的说明
对于手机OEM/ODM厂商来讲,客制化是必不可少的。国际厂商比如三丧,LG等等。我们买到的手机,系统都是经过定制的,这跟Google Android AOSP有很大的区别,这些区别就是厂商们想搞的差异化。以下内容为GlowPadView客制化的一些笔记,怕以后忘了再去查。 GlowPadView就是用来实现滑动接听的控件,该控件隶属InCallScreen界面,也就是我们拨打或接听
2013-11-01 16:13:33
14481
原创 Android 4.2 由Context引发的思考
最近在做类似于三星S4的那种皮套(后面简称SmartCover),具有可操作的窗口,一方面用户可以保护手机屏幕,另一方面用户可以直接在SmartCover上接听电话,非常方便。在开发过程中发现一个问题,虽然最终解决但还是记录一下,好记性不如烂笔头啊。
2013-10-12 12:33:58
9179
原创 反编译实战之给锤子ROM加上"显示GPU过度绘制"
想查看锤子ROM的“显示GPU过度绘制”情况,没想到竟然被屏蔽了,那只能自己动手咯!!!
2013-09-29 19:34:21
10761
2
原创 关于java.lang.IllegalArgumentException: View not attached to window manager 错误的分析
今天遇到一个很奇特的问题,当用户设置了PIN码,在锁屏界面正常解锁PIN码后,进入Launcher时显示com.android.phone 已停止运行。一开始猜想会不会是解锁PIN码的时候处理导致了Phone进程报错,通过log分析找到了问题的大概原因:AndroidRuntime: FATAL EXCEPTION: mainAndroidRuntime: java.lang.Illegal
2013-08-08 08:51:46
65751
1
原创 如何简单修改Android的so文件
场景有的时候需要定制Android默认蓝牙设备名称,当然在我们有源码的情况下自然是很好处理,但如果没有源码呢?这时候就需要修改so文件了。蓝牙默认设备名称的修改在:frameworks\base\core\jni\Android_bluetooth_common.h 主要就是修改BTMTK_ANDROID_DEFAULT_LOCAL_NAME的值#define BTMTK_AN
2013-05-30 09:22:45
29684
原创 Android 4.2 InCallScreen UI浅析
InCallScreen是什么本文来自http://blog.youkuaiyun.com/yihongyuelan 转载请务必注明出处本文以MTK平台Android 4.2为分析对象,MTK在原生的基础之上添加了许多自己的东西,因此个别地方跟原生代码以及QCOM的代码不同,请读者知悉。在电话的呼出流程中,我们最后需要按下拨号键,才能将电话拨打出去,那么在按下拨号键之后
2013-05-20 13:05:04
16080
20
原创 Android 4.2中添加解锁项
在Android 4.2中系统默认解锁是滑动到任意位置后就会解锁,如果想添加解锁内容需要修改如下代码:1.frameworks/base/core/res/res/layout/keyguard_glow_pad_view.xml - prvandroid:targetDrawables="@array/lockscreen_targets_unlock_only"- pr
2013-03-28 13:45:38
5027
1
原创 Android 4.1源码编译找不到资源文件解决办法
我们在Android framework中修改资源文件时,在Android 4.0之前,都是直接在sourcecode/frameworks/base/core/res/res下面添加对应的资源文件,然后编译framework-res即可,但是这种情况到了Android 4.1就有改变了。按照以前的方法在编译的时候却会报错,提示找不到引用的资源文件,一般情况下找不到资源文件有以下几个原因:
2013-02-22 13:35:06
12373
原创 Android 4.1 设置默认开机动态壁纸
最新在对Android 4.1做一些定制性的工作,刚好遇到了设置第三方动态壁纸为默认启动壁纸的问题,遂做笔记如下。需要修改的文件为:找到SourceCode/framework/base/core/res/res/values/config.xml中的:@null将其中的@null修改内容为:包名/动态壁纸服务名比如将默认壁纸更改为“青草晃动”的动态壁纸,则需要更改
2013-01-30 14:06:07
13185
1
原创 Android 2.3 Gallery3D添加gif支持——修改代码(三)
概要 前两篇文章: 《Android 2.3 Gallery3D添加gif支持——概要(一)》 《Android 2.3 Gallery3D添加gif支持——图片显示(二)》 看过Gallery3D代码的童鞋都知道,其代码不仅多而且很复杂,因此对于代码这里不会做过于详细的分析,重点是流程。毕竟关键的方法就那么几个,其他
2012-10-30 09:50:24
6480
5
原创 Android 2.3 Gallery3D添加gif支持——图片显示(二)
《Android 2.3 Gallery3D添加gif支持——概要(一)》 对于Gallery3D如何显示一张图片,请参看这位网友的Gallery3D笔记 。 欢迎转载,请务必注明出处:http://blog.youkuaiyun.com/yihongyuelan 在Gallery3D中,图片显示包括了缩略图和单张大图的显示,当我们点击缩略图时,会有一个动画
2012-10-30 09:00:15
5621
原创 Android 编译提示R文件找不到
很多时候,我们对源码进行二次开发编译时会报以下错误:packages/apps/Settings/src/com/android/settings/powersaver/PowerSaverDialogActivity.java:50: cannot find symbolsymbol : variable toPowerSaverSettingslocation: class co
2012-10-24 17:43:17
16468
1
原创 Android 2.3 Gallery3D添加gif支持——概要(一)
说到gif,目前很多Android软件都具备了该功能,比如新浪微博。在Android 2.3平台中,系统自带的图片查看应用是Gallery3D,其并不具有播放gif图片的功能。Gallery3D是一家叫做cooliris公司制作的一款Android图片浏览应用,因其具备3D特效,因此称之为Gallery3D,这也与Android自带的Gallery区分开。想了解更多关于Gallery3D的信息可以
2012-10-08 10:15:56
5520
1
原创 关于如何让应用程序不显示在“最近使用”的列表中
在Android手机中,如果我们长按Home键会弹出“最近使用”的界面,最近使用包含了最近一段时间内曾打开过的Activity信息。但如果我们不想让我们的应用程序显示在这里呢??当然有办法!!在应用程序的AndroidManifest.xml中,对应的Activity申明中加入以下代码android:excludeFromRecents="true",如下:<activity
2012-09-28 11:28:08
15471
原创 Android 4.0 ICS SystemUI浅析——StatusBar工作流程之时间日期设置
前面几篇文章: 《Android 4.0 ICS SystemUI浅析——SystemUI启动流程》 《Android 4.0 ICS SystemUI浅析——StatusBar结构分析》 《Android 4.0 ICS SystemUI浅析——StatusBar加载流程分析》 《Android 4.0 ICS SystemUI浅析
2012-07-28 13:23:57
9140
2
原创 Android 4.0 ICS SystemUI浅析——StatusBar加载流程之Notification
前面三篇文章《Android 4.0 ICS SystemUI浅析——SystemUI启动流程》、《Android 4.0 ICS SystemUI浅析——StatusBar结构分析》、《Android 4.0 ICS SystemUI浅析——StatusBar加载流程分析》逐步分析了SystemUI中StatusBar的启动以及加载流程,本文主要分析StatusBar上的Notificati
2012-07-17 21:13:49
15615
InCallActivity启动Performance浅析图片资源
2015-12-30
OpenHiddenLogs For Android
2015-06-09
Android 4.4 Kitkat Phone工作流程浅析(十二)__4.4小结与5.0概览资源
2015-05-04
Android 4.4 Kitkat Phone工作流程浅析(十一)__PSensor工作流程浅析 图片资源
2015-02-09
Android 4.4 Kitkat Phone工作流程浅析(十)__"通话显示"查询流程 图片资源
2015-01-16
Android 4 4 KitKat NotificationManagerService使用详解与原理分析 二 原理分析图片资源
2014-11-17
Android NotificationListenerService Demo
2014-11-11
Android Phone状态监听Demo
2014-07-12
Android 4.4 来电响铃流程图
2014-05-06
Android 4.4 InCallActivity Update Flow Pics
2014-04-24
Android_4.4_MT_Flow
2014-04-04
Android 4.2 电话被动接听流程(MT)分析
2014-04-04
Android 4.4 Phone呼叫流程分析图
2014-03-14
Android 4 4 Kitkat Phone工作流程浅析 二 UI结构分析 时序图无失真原图
2014-03-03
锤子ROM Settings 反编译实战
2013-09-30
如何给Android 2.3 图库添加Gif支持
2012-10-30
Android 4.0 ICS SystemUI浅析——StatusBar工作流程之时间日期设置
2012-07-28
获取Service中的信息
2012-01-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人