- 博客(15)
- 收藏
- 关注
原创 为Android Edify扩充功能
为Android Edify扩充功能Edify简介Edify 命令添加Edify命令Edify简介 Android的刷机包文件解压,会有这样的目录:/META-INF/com/google/android/,该目录下有两个文件update-binary和updater-script。updater-script是用Edify语言写成的文本文件,update-binary是源码下/bootab...
2019-01-16 17:34:34
498
原创 对Binder机制的一点深入探究(一)
对Binder机制的一点深入探究(一)1.背景Activity的启动过程Activity主动与AMS交互过程2.从AMS到APP,Token的传递过程1.背景 之所以研究这个问题是因为看到应用程序和AMS交互的过程中,有些代码让我觉得很神奇如下所示:Activity的启动过程 我们知道系统在启动一个Activity的时候会先创建一个ActivityRecord对象,然后在Activit...
2019-01-09 16:53:23
322
原创 Android动态申请Camera权限应用闪退问题
问题:客户反馈他们应用第一次打开申请相机权限,应用退出,需要第二次打开。分析:先写一个简单的应用测试下测试结果: 应用在申请完相机权限之后确实会被系统杀掉,日志中打了如下日志 Killing 8269:com.example.android.camera2basic/u0a85 (adj 100): permission grant or revoke chan...
2018-10-26 17:33:25
8595
5
原创 android 防止应用被lowmemorykiller杀掉
网上关于lowmemorykiller的文章一大把,总结一下,系统会不断更新进程的adj值,然后在内存紧张的情况下,adj越大的应用越可能被杀,那么我们要防止被杀,要么是给我们的应用设置比较小的adj值,要么是要杀的时候过滤我们的应用,因为杀进程是比较偏底层做的,不太熟悉.所以优先考虑,系统计算adj值的时候直接给我们的应用adj值赋为-1. 直接说方法,系统计算过adj之后会通过下属方...
2018-10-12 16:16:03
3752
原创 android N InputDispatcher中按键分发之notifyKey之后流程详解
该篇文章仅分析notifyKey之后的流程,InputReader怎么读取之类的本文不关心.本文重点关注InputDispatcher和java层的交互,包括调用interceptKeyBeforeQueueing和interceptKeyBeforeDispatching方法,以及有辅助服务拦截按键时的处理.1.notifyKey主函数void InputDispatcher::n...
2018-09-27 18:04:15
1775
原创 AccessibilityService的onKeyEvent方法分析,顺便初探Android的按键传递机制
背景:我们的设备有实体键盘,有0,1,2,3,4,5,6,7,8,9实体按键,原来玩过诺基亚塞班系统的都知道,会有个Aa键和数字按键切换的按键,切换之后这几个实体按键可以输出字母,比如当切换到小写字母状态时,按一下2,会输出a,快速点击两下则会输出b,以此类推 问题:客户写了一个辅助服务来获取系统的按键,但是,只能获取到数字按键,不能获取到字母按键. 分析:这个问题肯定要去分析按键...
2018-08-14 15:38:10
5726
5
原创 AndroidN去电流程中和InCallUI的交互(拉起界面过程分析)
在分析android N拨打电话流程中分析了,从拨号盘到RIL.java的流程,没有分析拨号过程和UI的交互,这篇文章来说明,拉起InCallUI的过程. 在上篇文章中可以知道CallIntentProcessor中会通过processOutgoingCallIntent来调用CallManager的startOutgoingCall和NewOutgoingCallIntentBroad...
2018-08-07 10:51:44
2330
原创 Android TeleComm 初探
安卓在5.0之后在TeleService和IncallUI之间多加了一层TeleComm,个人感觉是不想让IncallUI和Phone进程联系过于紧密,也便于其他通话方式的添加(不仅仅局限于通过电信运营商拨打传统电话),好了话不多说,开始分析,本文基于安卓7.1分析.1.首先SystemServer在startOtherServices函数里会拉起TelecomLoaderService...
2018-08-04 11:14:06
2987
原创 Android N 电量使用情况之蓝牙耗电量
遇到的问题:设备电量使用情况中,蓝牙的耗电量很高,都可以达到百分之90。 第一次尝试解决: 首先先查看了power_profile.xml,发现该文件没有配置bluetooth.active和bluetooth.on两项,以为自己找到了原因,就把这两项配置了一下,结果,还是不行,又把这两项全部改成0,还是不行,没办法了,只能分析代码了。(1) BatteryStatsHelpe...
2018-06-28 17:53:53
2558
原创 Android sharedUserId引起的血案
前段时间遇见过这样一个问题,值得记一笔。背景: 我们原来在5.1设备上有一个32位的so库,系统进程直接使用该so库,因为当时系统也是32位的,没有出现问题,现在,我们切到了7.1的新64位平台,但是该so库我们没有源码,所以我们无法在64位系统进程中用32位的so库(反正我不知道怎么用),所以我们写了一个apk,单独运行在一个进程,被设置为32位apk,因为一些权限问题,该应用被设置sha...
2018-06-06 17:59:12
1318
原创 Android N 插拔USB行为分析
在Anrdoid L的版本上,如果用户USB连接PC设备后,选择MTP模式,然后移除连接,再次重新连接之后,设备还是以MTP模式连接的。而在Android N上,如果用户按照相同的操作,设备却是以充电模式连接的,这是为什么呢?如果更改才能回到以前的逻辑呢? private static final String USB_STATE_MATCH = "DEVPATH=/devices/virt
2018-01-20 10:11:55
1481
原创 android 设置休眠时间后,系统行为简析
android手机进入设置,在进入显示,有个休眠时间的选项。可以设置多久不操作后熄灭屏幕。android熄灭屏幕实际根据系统当前wakeLock锁的数量和类型有关,本篇文章不讨论这个问题。只是本人发现了一个奇怪的现象:1.设置休眠时间为1分钟,在launcher界面不做任何操作,大概一分钟左右灭屏,和设置中时间相同。2.灭屏后按电源键唤醒屏幕,在锁屏界面不做任何操作,感觉十秒左右屏
2018-01-10 14:52:03
5951
1
原创 Android N 状态栏图标显示白底问题分析
前几天客户投诉,客户的apk在我们的设备上状态栏图标不能显示应用本身的图标,而是显示为正方形的白底图片. 首先遇到这个问题肯定是先百度一发... 然而在网上找到的文章全市基于Android L的代码分析,已经不适用Android N,所以针对Android N状态栏变色的流程说明一下. Android N现在对通知还有状态栏图标的处理逻辑是: 1.首先判断APK的targe
2017-11-15 10:02:31
1399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人