- 博客(17)
- 资源 (54)
- 收藏
- 关注
原创 【私人备忘录】深入理解Android之读书笔记
一、init工作流程:1、解析两个配置文件,一个是系统配置文件init.rc,另一个是与硬件平台相关的配置文件。init.硬件平台名称.rc。2、执行各个阶段的动作,创建zygote的工作就是在其中的某个阶段完成的。3、调用property_init初始化属性相关的资源,并且通过property_start_service启动属性服务。4、init进入一个无限循环,并且等待一些事情...
2020-02-05 19:53:43
11618
1
原创 【私人备忘录】23种设计模式总结
网络上关于设计模式的说明文章一大把,这里记录一下每个设计模式的特点。 Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Adapter(适配器模式):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 Bridge(桥接模式):将抽象部分与它...
2019-09-10 15:29:35
16287
1
原创 【私人备忘录】Android P ActivityManagerService(六)进程管理
Android中参与进程管理的主要模块是ActivityManager,其依赖于LRU weight,OOM adj和lmkd机制(新版Low Memory Killer)共同完成进程管理。一、LRU weight机制LRU是Least Recently Used,最近最少使用的意思,LRU weight用于衡量最近最少使用的权重。根据关键类说明中提到,进程启动后都会在AMS的成员变量中保...
2019-05-16 19:04:49
21766
原创 【私人备忘录】Android P ActivityManagerService(五)ContentProvider的工作过程
一、Activity中调用getContentResolver()获取ContentResolverContextWrapper.javagetContentResolver();Activity.java调用的是爷爷类ContextWrapper.java的getContentResolver()ContextImpl.javagetContentResolver()二、调用Cont...
2019-05-13 13:49:00
24531
原创 【私人备忘录】Android P ActivityManagerService(四)BroadcastReceiver的工作过程
静态注册的广播是有PMS完成注册的,不在AMS系列中讨论,只看动态注册。一、注册广播代码流程ContextWrapper.javaregisterReceiver();Activity.java调用的是爷爷类ContextWrapper.java的registerReceiver()ContextImpl.javaregisterReceiver() → registerReceive...
2019-05-13 13:43:33
30330
原创 【私人备忘录】Android P ActivityManagerService(三)Service启动和绑定
一、startService代码流程Activity.javastartService(mBase.startService())Context.javastartService()ContextImpl.javastartService() → startServiceCommon(ActivityManager.getService().startService())Activity...
2019-05-13 09:52:06
36062
翻译 【翻译】非 SDK 接口在 Android Q 中的受限情况出现变化
为了帮助确保应用稳定性和兼容性,此平台开始限制您的应用可在 Android 9(API 级别 28)中使用的非 SDK 接口。Android Q 包含更新后的受限非 SDK 接口列表(基于与 Android 开发者之间的协作以及最新的内部测试)。我们的目标是在限制使用非 SDK 接口之前确保有可用的公开替代方案。如果您不打算以 Android Q 为目标平台,那么其中一些变更可能不会立即对您产...
2019-05-09 09:09:01
2792
翻译 【翻译】Android Q 行为变更:以 Android Q 为目标平台的应用
Android Q 平台做了一些行为变更,这些变更可能会影响您的应用。以下行为变更仅影响以 Android Q 或更高版本为目标平台的应用。如果您的应用将targetSdkVersion设为“android-Q”或更高版本,则应修改您的应用以适当地支持这些行为(如果适用)。此外,请务必查看对在 Android Q 上运行的所有应用都有影响的行为变更列表。注意:除了此页面所列的变更以外,...
2019-05-09 09:08:44
1917
翻译 【翻译】Android Q 行为变更:所有应用
Android Q 平台做了一些行为变更,这些变更可能会影响您的应用。以下行为变更将影响在 Android Q 上运行的所有应用,无论其采用哪种“targetSdkVersion”都不例外。您应该测试您的应用,然后根据需要进行更改以适当地支持这些变更(如果适用)。此外,请务必查看仅影响以 Android Q 为目标平台的应用的行为变更列表。注意:除了此页面所列的变更以外,Android Q...
2019-05-09 09:07:58
1746
原创 【私人备忘录】Android P ActivityManagerService(二)关键类说明
一、类说明ActivityThread:代表的就是Android应用程序进程中的主线程,Android应用程序进程的入口函数是ActivityThread类的main函数,也就是说一个ActivityThread类对应于一个应用程序进程。ApplicationThread:是ActivityThread的内部类,也是一个Binder类型的对象,作为应用进程的服务端,接收AMS的指令并将...
2019-05-08 17:43:28
1016
原创 【私人备忘录】Android P ActivityManagerService(一)Activity启动代码流程
一、Launcher通过AIDL通知ActivityManagerService,它要启动一个Activity;Launcher.javastartActivitySafely() → startActivity()Activity.javastartActivity() → startActivityForResult(mInstrumentation.execStartActivity...
2019-05-08 11:01:52
37767
4
原创 【私人备忘录】Android P 数据业务开启代码流程(二)
ConnectivityService的工作总结起来就是:通过WIFI,移动数据业务,热点,VPN 等方式来获取路由配置信息。无论通过哪种方式,获取到路由配置信息后,需要交给ConnectivityService来处理,ConnectivityService通过ping网络来检查网络的有效性,进而影响到各个数据业务方式的评分值,ConnectivityService通过这些评分值来决定以哪个数据业...
2019-05-05 17:03:03
1449
1
原创 【私人备忘录】Android P 数据业务开启代码流程(一)
一、上层:上层调用TelephonyManager.setDataEnabled(true)二、Telephony Services:TelephonyManager.setDataEnabled(true) → PhoneInterfaceManager.setUserDataEnabled(phone.setUserDataEnabled) → GsmCdmaPhone.setUser...
2019-04-30 10:19:23
2319
原创 【私人备忘录】Android P 网络变化代码流程
一、RILD层:Vendor Ril → ril_service.cpp(networkStateChangedInd)(mRadioIndication->networkStateChanged) → RadioIndication.java(networkStateChanged)备注:1、ril_unsol_commands.h中定义: {RIL_UNSOL_RESPONSE_V...
2019-04-29 14:30:09
35032
1
原创 【私人备忘录】Android P 去电代码流程
一、Dialer:DialpadFragment.handleDialButtonPressed(PreCall.start()) → DialerUtils.startActivityWithErrorToast(placeCallOrMakeToast(context, intent)) → TelecomUtil.placeCall(getTelecomManager(context).p...
2019-04-29 14:29:10
38344
2
原创 【私人备忘录】Android P 来电代码流程
一、RILD层:Vendor Ril → ril_service.cpp(callStateChangedInd)(mRadioIndication->callStateChanged) → RadioIndication.java(callStateChanged)备注:1、ril_unsol_commands.h中定义: {RIL_UNSOL_RESPONSE_CALL_STATE...
2019-04-29 14:27:03
37361
4
androidapksvn-csipsimple-r4-CSipSimpleVideoPlugin.zip
2018-12-19
软件设计师2017年真题
2018-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人