Android源码剖析
xuning2516
这个作者很懒,什么都没留下…
展开
-
Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
1、跳转到拨号界面,代码如下:1)直接拨打Intent intentPhone = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));startActivity(intentPhone);2)跳转到拨号界面Intent intent = newIntent(转载 2015-09-30 09:02:34 · 417 阅读 · 0 评论 -
Zygote进程1 - 概述
第一部分 why zygote1 加快应用进程创建速度,通过fork和写时复制技术copyOnwritezygote通过共享已运行的虚拟机的代码和内存信息,缩短应用程序运行所耗费的时间,并且,它会事先将应用程序要使用的Android framework要使用的类和资源加载到内存中,并组织成所用资源的链接信息。新运行的Android应用程序在使用所需资源时不必每次重新形成资源的链接信息,这会节省大量...原创 2018-06-03 18:22:46 · 827 阅读 · 0 评论 -
Zygote进程2 - 启动流程
原创 2018-06-03 18:25:54 · 194 阅读 · 0 评论 -
ShellCommand执行流程
为了方便调试系统服务,系统提供了shellcommand调试框架,我们使用的am、pm等都有使用这种功能,其他系统服务比如shortcutservice则是使用cmd命令来调试,具体的架构类图和流程如下,整体流程比较简单,所以这里就不具体展开。Cmd.cpp (frameworks\native\cmds\cmd)Java层的系统服务只需要实现onShellCommand用...原创 2018-11-17 11:03:55 · 4225 阅读 · 7 评论 -
修改Android关机电量和关机温度
http://blog.chinaunix.net/uid-26926660-id-3329353.htmlAndroid系统默认是电量为0关机的,如果要修改成还有5%电量就关机怎么办?(吐槽一下:其实修改成5%关机也没什么意义,因为即便还有电量,开机后系统也会再次被关闭),不过确实有这样的需求,废话少说,这里简单分析怎么改: 2.分析 电池这一块自然少不了Android Ba...转载 2018-11-17 12:04:14 · 1200 阅读 · 0 评论 -
Activity启动源码剖析
这里只列出简要几个流程,有时间再来详细分析其中的源码执行。简要流程第一步查找intent对应的activity,拿到packagemanager中保存的activityinfo,第二步转换成ActivityManagerService中的activityrecord第三步找到这个activityrecord对应的taskrecord和activitystack这个步骤基本流程和...原创 2018-04-14 18:21:24 · 339 阅读 · 1 评论 -
Activity启动过程中ActivityStack TaskRecord ActivityRecord创建或设置
Activity在启动的过程中需要获得一个ActivityRecord实体,表示Activity在ActivityManagerService中的状态,ActivityRecord创建与Activity的启动模式有关系:Activity有四种启动模式:standard:standard模式启动的Activity默认会进入启动它的Activity所属的任务栈TaskRecord这种启...原创 2018-04-14 18:36:36 · 1969 阅读 · 0 评论 -
各种情形下activity生命周期转换
1 home键按下 onPause - onStop返回 onRestart - onStart - onResume2 锁屏锁屏 onPause - onStop解锁 onRestart - onStart - onResumehome键和锁屏虽然生命周期相同,但是触发流程不一样,home键走的正常的home activity(launcher)切换流程,栈顶act...原创 2018-04-14 18:12:50 · 456 阅读 · 0 评论 -
android生命周期总结
关于activity生命周期转换记住一点同时只有一个activity处于onResume状态,可能有多个activity处于onstop状态,因为在activitymanagerservice中有一个成员mResumeActivity,而且只有前一个activity执行onPause之后,下一个activity的onResume流程才会执行1 几个生命周期的特点on...原创 2018-04-14 18:10:12 · 1220 阅读 · 0 评论 -
Activity相关点
关于android知识,看了一些源码,过久了就会忘了,还是需要及时总结,方便以后查阅。基础知识1 一般生命周期以及转换,以官方图为例2 源码剖析涉及到进程、关键类3 源码过程中的关键点简要流程第一步查找intent对应的activity,拿到packagemanager中保存的activityinfo,第二步转换成ActivityManagerService中的ac...原创 2018-04-14 18:01:59 · 145 阅读 · 0 评论 -
android源码文章整理
研究学习android源码这里分为两条线进程线:包括android系统启动过程 kernel - init - zygoteinit - systemserver - 核心服务(ams、pms、wms等)- launcherhttps://www.processon.com/mindmap/5ca74b89e4b071e8c5463140基础设施线:包括binder 、handler消...原创 2019-04-08 14:09:01 · 221 阅读 · 0 评论 -
android init进程知识整理
init主要完成几个方面功能init作为1号进程,作为用户进程的始祖,完成从kernel space到user space切换,对android来讲完成以下几个功能:子进程死亡处理、uevent、watchdog功能、属性存取、init.rc文件解析处理。原创 2019-04-17 19:06:06 · 216 阅读 · 0 评论 -
Dialog ParentWindow android.view.WindowManager$BadTokenException源码剖析
08-07 21:26:43.506: ERROR/AndroidRuntime(9390): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 产生问题原因解析:使用getApplicationContext()里面的是不包含t原创 2017-11-05 00:12:00 · 574 阅读 · 0 评论 -
ContentService注册和更新机制
ContentService完成数据内容注册和更新的机制。在N平台上SystemServer通过SystemServiceManager.startService的方式拉起ContentService,并且注册到ServiceManager中。 从图中可以看出ContentService完成注册和更新机制的原理:当客户端注册的时候会将ContentObserver注册到ContentServi原创 2017-04-23 18:15:22 · 826 阅读 · 0 评论 -
SubscriptionInfo框架解析
本章讨论所涉及到的类vendor\qcom\proprietary\telephony-fwk\opt\telephony\src\java\com\qti\internal\telephony\UiccCardProvisioner.javavendor\qcom\proprietary\telephony-fwk\opt\telephony\src\java\com\qti\in原创 2016-07-22 22:22:41 · 1638 阅读 · 0 评论 -
Android M CarrierService框架
本章讨论的所涉及到的文件如下:packages\apps\CarrierConfig\src\com\android\carrierconfig\DefaultCarrierConfigService.java frameworks\base\core\java\android\service\carrier\CarrierService.java frameworks\base\core\j...原创 2016-07-23 10:08:00 · 5261 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl转载 2016-07-17 16:41:39 · 394 阅读 · 0 评论 -
SubscriptionInfoUpdater监听卡状态广播的处理
SubscriptionInfoUpdater里面有监听卡状态广播,卡状态广播都是从IccCardProxy中发送的sticky广播。其中ACTION_INTERNAL_SIM_STATE_CHANGED是Android M上新增的用来处理sim locked和sim loaded事件,经过SubscriptionInfoUpdater处理之后才会向外发送ACTION_SIM_STATE_CHAN原创 2016-08-02 09:53:11 · 1159 阅读 · 0 评论 -
Android手机联系人变化监听
//监听联系人数据的监听对象 private static ContentObserver mObserver = new ContentObserver( new Handler()) { @Override public void onChange(boolean selfChange) { // 当联系人表发生变化时进行相应的操作 } };原创 2015-09-30 08:35:38 · 898 阅读 · 0 评论 -
CatService框架
这块代码分为三层,framework - service - activity,整体写的比较乱,细节处理可能会有问题,可能用的人比较少,所以比较少关注。CatService监听的其实没有用处的代码 mUiccApplication.registerForReady(this, MSG_ID_SIM_READY, null); mIccRecords.register原创 2016-08-02 10:54:25 · 661 阅读 · 0 评论 -
SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_IMMERSIVE_STICKY实现沉浸式功能的源码解析
rk3288 Android N 参考深入理解Android 卷三这里解决的是SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_IMMERSIVE_STICKY设置之后不会通过触摸屏幕调出导航栏,这种情况只要触摸屏幕就会调出导航栏SYSTEM_UI_FLAG_IMMERSIVE和SYSTEM_UI_FLAG_IMMERSIVE_STICKY区别在于SYSTEM...原创 2019-04-24 17:33:28 · 9915 阅读 · 2 评论