现在的位置: 首页 > 综合 > 正文

Activity启动流程

2013年10月07日 ⁄ 综合 ⁄ 共 33645字 ⁄ 字号 评论关闭

启动流程,在SDK上建立framework的调试环境后,可以进入framework里设置断点,跟踪activity启动流程

       启动一个Activity是用Activity类的startActivity()开始,里面会调用Activity类中的public void startActivityForResult()方法

       startActivityForResult()方法会调用Instrumentation类中的public ActivityResult execStartActivity()方法(@hide

       execStartActivity()中调用ActivityManagerNative.getDefault().startActivity(),它最终是调用了IActivityManager接口中的startActivity()

      上面的getDefault返回IActivityManager接口,ActivityManagerNative类里的内部类ActivityManagerProxy实现了这个接口,ActivityManagerProxy中的public int startActivity()

      在这个新的public int startActivity()方法中有如下代码,mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0),

      这里mRemote是一个IBinder对象,这个对象在ActivityManagerProxy构造方法中实例化,实际由外部类ActivityManagerNative的static public IActivityManager asInterface

     (IBinder obj)方法实例化,asInterface(IBinder obj)方法中参数实际在ActivityManagerNative类的static public IActivityManager getDefault()方法中,由

     ServiceManager.getService(“activity”)实例化。

    mRemote.transact(START_ACTIVITY_TRANSACTION, data, reply, 0)这条语句通过IBinder的transact()方法,将方法中的参数跨进程传递给ActivityManagerService类

        ActivityManagerService继承了ActivityManagerNative类,从ActivityManagerProxy类的mRemote.transact()传递过来的参数,被传递到ActivityManagerService类的 onTransact()方法来处理,ActivityManagerService类的onTransact()里调用了super.onTransact(code, data, reply, flags),也就是ActivityManagerNative类中的onTransact(),

ActivityManagerNative类是抽象类,ActivityManagerService继承于ActivityManagerNative,都实现了IActivityManager接口中的startActivity,所以onTransact()中的startActivity动态地调到了ActivityManagerService类的public final int startActivity()方法

  • ActivityManagerService类的startActivity()方法会调用到ActivityStack类的startActivityMayWait()方法
  • ActivityStack类位于com.android.server.am包下,startActivityMayWait()方法final int startActivityLocked()方法
  • startActivityLocked()方法最后会调用startActivityUncheckedLocked()方法,然后startActivityLocked(),再调resumeTopActivityLocked
  • startSpecificActivityLocked()方法会调用startProcessLocked()方法
  • startProcessLocked()方法会调用android.os.Process类的public static final int start()方法
  • int pid = Process.start(“android.app.ActivityThread“, mSimpleProcessManagement ? app.processName : null, uid, uid, gids, debugFlags, null)
  • 下面进入android.os包下的Process类中
  • start()方法会调用private static int startViaZygote()方法
  • startViaZygote()方法会调用private static int zygoteSendArgsAndGetPid()方法
  • zygoteSendArgsAndGetPid()方法会使用socket与zygote进程通信
  • sZygoteSocket = new LocalSocket();
  • sZygoteSocket.connect(new LocalSocketAddress(ZYGOTE_SOCKET, LocalSocketAddress.Namespace.RESERVED));
  • 下面进入com.android.internal.os包下的ZygoteInit
  • ZygoteInit类里面含有LocalSocketServer的实例,会与上面提到的zygoteSendArgsAndGetPid()方法使用socket进行通信
  • 实际逻辑在ZygoteConnection这个类中的boolean runOnce()方法中
  • runOnce()方法会调用dalvik.system.Zygote这个类中的静态方法forkAndSpecialize()
  • 下面进入dalvik.system包中的Zygote类
  • forkAndSpecialize()最终调用了native的方法native public static int forkAndSpecialize()
  • 在c代码中开启应用程序的进程
  • 应用的进程从android.app包下的ActivityThread类开始运行
  • ActivityThread类中含有main()方法
  • ActivityThread.main()是应用的启动入口,在应用程序启动的时候就会调用

Activity相关

  • ActivityManagerService中会使用ActivityStack类来保存当前打开的Activity的信息
  • ActivityStack类中实际保存的是一些列的ActivityRecord实例
  • 在ActivityManagerService中也就是系统服务端记录下Activity信息后,需要在客户端记录一份Activity的信息
  • 这个通过在ActivityStack类的realStartActivityLocked()方法中通过对ActivityThread类的scheduleLaunchActivity()调用来实现
  • scheduleLaunchActivity()方法会新建ActivityClientRecord类的实例,ActivityClientRecord是ActivityThread的内部类
  • ActivityClientRecord就是用来保存客户端Activity信息的
  • 在scheduleLaunchActivity()方法的最后会执行queueOrSendMessage(H.LAUNCH_ACTIVITY, r)
  • 上面这条语句把启动Activity的消息传给ActivityThread的另一个内部类H来处理
  • H类是一个Handle,其中会执行handleLaunchActivity()
  • handleLaunchActivity()会调用private final Activity performLaunchActivity()
  • performLaunchActivity()方法最终调用Instrumentation类中的newActivity()方法,根据ActivityClientRecord中的参数,创建了Activity类的实例
  • 在创建Activity之后,通过ActivityThread类的handleResumeActivity()方法将其显示在屏幕上

 01-01 11:18:42.840: V/ActivityManager(247): Starting activity when config will change = false
01-01 11:18:42.840: I/ActivityManager(247): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.thunderst.radio/.Radio } from pid 439
01-01 11:18:42.840: V/ActivityManager(247): Sending result to HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher} (index 0)
01-01 11:18:42.840: V/ActivityManager(247): startActivity() => mUserLeaving=true
01-01 11:18:42.840: V/ActivityManager(247): Starting new activity HistoryRecord{40559aa0 com.thunderst.radio/.Radio} in new task TaskRecord{4053d130 #10 A com.thunderst.radio}
01-01 11:18:42.840: V/ActivityManager(247): Checking URI perm to null from Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.thunderst.radio/.Radio }; flags=0x10200000
01-01 11:18:42.850: V/ActivityManager(247): Prepare open transition: starting HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:42.860: V/ActivityManager(247): Resuming HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:42.860: V/ActivityManager(247): Skip resume: need to start pausing
01-01 11:18:42.860: V/ActivityManager(247): Start pausing: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:42.860: V/ActivityManager(247): Enqueueing pending pause: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:42.880: V/ActivityManager(247): Waiting for pause to complete...
01-01 11:18:42.880: V/ActivityManager(247): Activity paused: token=HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}, icicle=Bundle[mParcelledData.dataSize=5400], timeout=false
01-01 11:18:42.880: V/ActivityManager(247): Complete pause: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:42.880: V/ActivityManager(247): Enqueueing pending stop: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:42.880: V/ActivityManager(247): Resuming HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:42.880: V/ActivityManager(247): Resuming top, waiting visible to hide: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:42.880: V/ActivityManager(247): Prepare open transition: prev=HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:42.880: V/ActivityManager(247): startProcess: name=com.thunderst.radio app=null knownToBeDead=true thread=null pid=-1
01-01 11:18:42.880: V/ActivityManager(247): Clearing bad process: 10014/com.thunderst.radio
01-01 11:18:42.890: I/ActivityManager(247): Start proc com.thunderst.radio for activity com.thunderst.radio/.Radio: pid=1464 uid=10014 gids={1015, 3002}
01-01 11:18:42.920: V/ActivityManager(247): Binding process pid 1464 to record ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:42.920: V/ActivityManager(247): New death recipient
com.android.server.am.ActivityManagerService$AppDeathRecipient@4093c428
for thread
android.os.BinderProxy@4058b770
01-01 11:18:42.920: V/ActivityManager(247): New app record ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
thread=android.os.BinderProxy@4058b770 pid=1464
01-01 11:18:43.100: V/ActivityManager(247): Binding proc com.thunderst.radio with config { scale=1.0 imsi=0/0 loc=zh_CN touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=5}
01-01 11:18:43.100: V/ActivityManager(247): Ensuring correct configuration: HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.100: V/ActivityManager(247): Configuration unchanged in HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.100: I/ActivityManager(247): Config didn't destroy HistoryRecord{40559aa0 com.thunderst.radio/.Radio}, ensuring others are correct.
01-01 11:18:43.100: V/ActivityManager(247): ensureActivitiesVisible behind HistoryRecord{40559aa0 com.thunderst.radio/.Radio} configChanges=0x0
01-01 11:18:43.100: V/ActivityManager(247): Make visible? HistoryRecord{40559aa0 com.thunderst.radio/.Radio} finishing=false state=INITIALIZING
01-01 11:18:43.100: V/ActivityManager(247): Start and freeze screen for HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.100: V/ActivityManager(247): Stopping: fullscreen at HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.100: V/ActivityManager(247): Make invisible? HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher} finishing=false state=PAUSED behindFullscreen=true
01-01 11:18:43.100: V/ActivityManager(247): Making invisible: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.100: V/ActivityManager(247): Launching: HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.100: V/ActivityManager(247): Set app com.thunderst.radio oom adj to 0
01-01 11:18:43.100: V/ActivityManager(247): Setting process group of com.thunderst.radio to 0
01-01 11:18:43.100: V/ActivityManager(247): Set app com.android.launcher oom adj to 1
01-01 11:18:43.100: V/ActivityManager(247): Setting process group of com.android.launcher to 1
01-01 11:18:43.110: V/ActivityManager(247): Launching: HistoryRecord{40559aa0 com.thunderst.radio/.Radio} icicle=null with results=null newIntents=null andResume=true
01-01 11:18:43.110: V/ActivityManager(247): ensureActivitiesVisible behind HistoryRecord{40559aa0 com.thunderst.radio/.Radio} configChanges=0x0
01-01 11:18:43.110: V/ActivityManager(247): Make visible? HistoryRecord{40559aa0 com.thunderst.radio/.Radio} finishing=false state=RESUMED
01-01 11:18:43.110: V/ActivityManager(247): Ensuring correct configuration: HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.110: V/ActivityManager(247): Configuration unchanged in HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.110: V/ActivityManager(247): Skipping: already visible at HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.110: V/ActivityManager(247): Stopping: fullscreen at HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.110: V/ActivityManager(247): Make invisible? HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher} finishing=false state=PAUSED behindFullscreen=true
01-01 11:18:43.110: V/ActivityManager(247): Already invisible: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.120: V/ActivityManager(247): windowsGone(): HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.310: V/ActivityManager(247): windowsVisible(): HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.310: V/ActivityManager(247): Was waiting for visible: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.310: V/ActivityManager(247): Activity idle: null
01-01 11:18:43.310: V/ActivityManager(247): Stopping HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}: nowVisible=false waitingVisible=false finishing=false
01-01 11:18:43.310: V/ActivityManager(247): Ready to stop: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.310: D/ActivityManager(247): Stopping: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.310: V/ActivityManager(247): Stopping visible=false for HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.610: V/ActivityManager(247): Adding provider requested by com.thunderst.radio from process system
01-01 11:18:43.640: V/ActivityManager(247): Register receiver
android.content.IntentFilter@4098cec8
: null
01-01 11:18:43.640: V/ActivityManager(247): Register receiver
android.content.IntentFilter@4081bf00
: null
01-01 11:18:43.640: V/ActivityManager(247): Register receiver
android.content.IntentFilter@4068ccb8
: null
01-01 11:18:43.640: V/ActivityManager(247): startService: Intent { cmp=com.thunderst.radio/.RadioService } type=null args=null
01-01 11:18:43.650: V/ActivityManager(247): >>> EXECUTING create of ServiceRecord{409c1f90 com.thunderst.radio/.RadioService} in app ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:43.650: V/ActivityManager(247): >>> EXECUTING start of ServiceRecord{409c1f90 com.thunderst.radio/.RadioService} in app ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:43.650: V/ActivityManager(247): >>> EXECUTING bind of ServiceRecord{409c1f90 com.thunderst.radio/.RadioService} in app ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:43.650: V/ActivityManager(247): Checking URI perm to null from Intent { cmp=com.thunderst.radio/.RadioService }; flags=0x0
01-01 11:18:43.650: V/ActivityManager(247): Bringing up ServiceRecord{409c1f90 com.thunderst.radio/.RadioService}
android.content.Intent$FilterComparison@83a85da8
01-01 11:18:43.650: V/ActivityManager(247): Sending arguments to: ServiceRecord{409c1f90 com.thunderst.radio/.RadioService}
android.content.Intent$FilterComparison@83a85da8 args=Intent { cmp=com.thunderst.radio/.RadioService }
01-01 11:18:43.650: V/ActivityManager(247): bindService: Intent { cmp=com.thunderst.radio/.RadioService } type=null
conn=android.os.BinderProxy@40686a08 flags=0x1
01-01 11:18:43.650: V/ActivityManager(247): Bind ServiceRecord{409c1f90 com.thunderst.radio/.RadioService} with AppBindRecord{407fc590 com.thunderst.radio/.RadioService:com.thunderst.radio}: received=false apps=1 doRebind=false
01-01 11:18:43.650: V/ActivityManager(247): Broadcast: Intent { act=com.android.fm.stopmusicservice (has extras) } ordered=false
01-01 11:18:43.650: V/ActivityManager(247): Enqueing broadcast: com.android.fm.stopmusicservice replacePending=false
01-01 11:18:43.650: V/ActivityManager(247): Enqueueing ordered broadcast BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice}: prev had 0
01-01 11:18:43.660: I/ActivityManager(247): Enqueueing broadcast com.android.fm.stopmusicservice seq=-1
01-01 11:18:43.660: V/ActivityManager(247): Schedule broadcasts: current=false
01-01 11:18:43.660: V/ActivityManager(247): Received BROADCAST_INTENT_MSG
01-01 11:18:43.660: V/ActivityManager(247): processNextBroadcast: 0 broadcasts, 1 ordered broadcasts
01-01 11:18:43.660: V/ActivityManager(247): Processing ordered broadcast BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice}
01-01 11:18:43.660: V/ActivityManager(247): Submitting BROADCAST_TIMEOUT_MSG for BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice} at 402272
01-01 11:18:43.660: V/ActivityManager(247): Process cur broadcast BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice} for app ProcessRecord{40588738 757:com.android.music/10023}
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.music oom adj to 0
01-01 11:18:43.660: V/ActivityManager(247): Setting process group of com.android.music to 0
01-01 11:18:43.660: V/ActivityManager(247): Set app org.example.browserintent oom adj to 11
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.bluetooth oom adj to 12
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.email oom adj to 13
01-01 11:18:43.660: V/ActivityManager(247): Delivering to component ComponentInfo{com.android.music/com.android.music.MediaButtonIntentReceiver}: BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice}
01-01 11:18:43.660: V/ActivityManager(247): Process cur broadcast BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice} DELIVERED for app ProcessRecord{40588738 757:com.android.music/10023}
01-01 11:18:43.660: V/ActivityManager(247): Finish receiver:
android.os.BinderProxy@409901f8

01-01 11:18:43.660: V/ActivityManager(247): processNextBroadcast: 0 broadcasts, 1 ordered broadcasts
01-01 11:18:43.660: V/ActivityManager(247): Cancelling BROADCAST_TIMEOUT_MSG
01-01 11:18:43.660: V/ActivityManager(247): Finished with ordered broadcast BroadcastRecord{406e5bb8 com.android.fm.stopmusicservice}
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.music oom adj to 7
01-01 11:18:43.660: V/ActivityManager(247): Setting process group of com.android.music to 1
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.providers.calendar oom adj to 8
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.deskclock oom adj to 9
01-01 11:18:43.660: V/ActivityManager(247): Set app android.process.media oom adj to 10
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.protips oom adj to 11
01-01 11:18:43.660: V/ActivityManager(247): Set app org.example.browserintent oom adj to 12
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.bluetooth oom adj to 13
01-01 11:18:43.660: V/ActivityManager(247): Set app com.android.email oom adj to 14
01-01 11:18:43.740: V/ActivityManager(247): Register receiver
android.content.IntentFilter@407a2d30
: null
01-01 11:18:43.740: V/ActivityManager(247): Register receiver
android.content.IntentFilter@40972aa0
: null
01-01 11:18:43.740: V/ActivityManager(247): Broadcast: Intent { act=com.android.fmservice.stopmusicservice (has extras) } ordered=false
01-01 11:18:43.740: V/ActivityManager(247): Enqueing broadcast: com.android.fmservice.stopmusicservice replacePending=false
01-01 11:18:43.740: V/ActivityManager(247): Enqueueing ordered broadcast BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice}: prev had 0
01-01 11:18:43.740: I/ActivityManager(247): Enqueueing broadcast com.android.fmservice.stopmusicservice seq=-1
01-01 11:18:43.740: V/ActivityManager(247): Schedule broadcasts: current=false
01-01 11:18:43.740: V/ActivityManager(247): Received BROADCAST_INTENT_MSG
01-01 11:18:43.740: V/ActivityManager(247): processNextBroadcast: 0 broadcasts, 1 ordered broadcasts
01-01 11:18:43.740: V/ActivityManager(247): Processing ordered broadcast BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice}
01-01 11:18:43.740: V/ActivityManager(247): Submitting BROADCAST_TIMEOUT_MSG for BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice} at 402357
01-01 11:18:43.740: V/ActivityManager(247): Process cur broadcast BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice} for app ProcessRecord{40588738 757:com.android.music/10023}
01-01 11:18:43.740: V/ActivityManager(247): Set app com.android.music oom adj to 0
01-01 11:18:43.740: V/ActivityManager(247): Setting process group of com.android.music to 0
01-01 11:18:43.740: V/ActivityManager(247): Set app com.android.providers.calendar oom adj to 7
01-01 11:18:43.740: V/ActivityManager(247): Set app com.android.deskclock oom adj to 8
01-01 11:18:43.740: V/ActivityManager(247): Set app android.process.media oom adj to 9
01-01 11:18:43.740: V/ActivityManager(247): Set app com.android.protips oom adj to 10
01-01 11:18:43.740: V/ActivityManager(247): Set app org.example.browserintent oom adj to 11
01-01 11:18:43.740: V/ActivityManager(247): Set app com.android.bluetooth oom adj to 12
01-01 11:18:43.740: V/ActivityManager(247): Set app com.android.email oom adj to 13
01-01 11:18:43.740: V/ActivityManager(247): Delivering to component ComponentInfo{com.android.music/com.android.music.MediaButtonIntentReceiver}: BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice}
01-01 11:18:43.740: V/ActivityManager(247): Process cur broadcast BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice} DELIVERED for app ProcessRecord{40588738 757:com.android.music/10023}
01-01 11:18:43.750: V/ActivityManager(247): Finish receiver:
android.os.BinderProxy@409901f8

01-01 11:18:43.750: V/ActivityManager(247): processNextBroadcast: 0 broadcasts, 1 ordered broadcasts
01-01 11:18:43.750: V/ActivityManager(247): Cancelling BROADCAST_TIMEOUT_MSG
01-01 11:18:43.750: V/ActivityManager(247): Finished with ordered broadcast BroadcastRecord{409f39a0 com.android.fmservice.stopmusicservice}
01-01 11:18:43.750: V/ActivityManager(247): Set app com.android.music oom adj to 7
01-01 11:18:43.750: V/ActivityManager(247): Setting process group of com.android.music to 1
01-01 11:18:43.750: V/ActivityManager(247): Set app com.android.providers.calendar oom adj to 8
01-01 11:18:43.750: V/ActivityManager(247): Set app com.android.deskclock oom adj to 9
01-01 11:18:43.750: V/ActivityManager(247): Set app android.process.media oom adj to 10
01-01 11:18:43.750: V/ActivityManager(247): Set app com.android.protips oom adj to 11
01-01 11:18:43.750: V/ActivityManager(247): Set app org.example.browserintent oom adj to 12
01-01 11:18:43.750: V/ActivityManager(247): Set app com.android.bluetooth oom adj to 13
01-01 11:18:43.750: V/ActivityManager(247): Set app com.android.email oom adj to 14
01-01 11:18:43.750: V/ActivityManager(247): <<< DONE EXECUTING ServiceRecord{409c1f90 com.thunderst.radio/.RadioService}: nesting=3, inStopping=false, app=ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:43.750: V/ActivityManager(247): <<< DONE EXECUTING ServiceRecord{409c1f90 com.thunderst.radio/.RadioService}: nesting=2, inStopping=false, app=ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:43.750: V/ActivityManager(247): Activity stopped: token=HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.760: V/ActivityManager(247): windowsGone(): HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:43.760: V/ActivityManager(247): PUBLISHING ServiceRecord{409c1f90 com.thunderst.radio/.RadioService} Intent { cmp=com.thunderst.radio/.RadioService }:
android.os.BinderProxy@40776bc8
01-01 11:18:43.770: V/ActivityManager(247): Publishing to: ConnectionRecord{4080c818 com.thunderst.radio/.RadioService:@40686a08}
01-01 11:18:43.770: V/ActivityManager(247): <<< DONE EXECUTING ServiceRecord{409c1f90 com.thunderst.radio/.RadioService}: nesting=1, inStopping=false, app=ProcessRecord{407c1b08 1464:com.thunderst.radio/10014}
01-01 11:18:43.770: V/ActivityManager(247): Nesting at 0 of com.thunderst.radio/.RadioService
01-01 11:18:43.770: V/ActivityManager(247): No more executingServices of com.thunderst.radio/.RadioService
01-01 11:18:43.940: I/ActivityManager(247): Displayed com.thunderst.radio/.Radio: +1s59ms
01-01 11:18:43.940: V/ActivityManager(247): windowsVisible(): HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:43.950: V/ActivityManager(247): Broadcast: Intent { act=com.thunderst.radio.RadioService.COUNT (has extras) } ordered=false
01-01 11:18:43.950: V/ActivityManager(247): Enqueing broadcast: com.thunderst.radio.RadioService.COUNT replacePending=false
01-01 11:18:43.950: V/ActivityManager(247): Enqueueing parallel broadcast BroadcastRecord{40794690 com.thunderst.radio.RadioService.COUNT}: prev had 0
01-01 11:18:43.950: V/ActivityManager(247): Schedule broadcasts: current=false
01-01 11:18:43.950: V/ActivityManager(247): Received BROADCAST_INTENT_MSG
01-01 11:18:43.950: V/ActivityManager(247): processNextBroadcast: 1 broadcasts, 0 ordered broadcasts
01-01 11:18:43.950: V/ActivityManager(247): Processing parallel broadcast BroadcastRecord{40794690 com.thunderst.radio.RadioService.COUNT}
01-01 11:18:43.950: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40972990 ReceiverList{40956888 1464 com.thunderst.radio/10014 remote:407de1c8}}: BroadcastRecord{40794690 com.thunderst.radio.RadioService.COUNT}
01-01 11:18:43.950: I/ActivityManager(247): Delivering to BroadcastFilter{40972990 ReceiverList{40956888 1464 com.thunderst.radio/10014 remote:407de1c8}} (seq=-1): BroadcastRecord{40794690 com.thunderst.radio.RadioService.COUNT}
01-01 11:18:43.950: V/ActivityManager(247): Done with parallel broadcast BroadcastRecord{40794690 com.thunderst.radio.RadioService.COUNT}
01-01 11:18:44.100: V/ActivityManager(247): Activity idle: HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:44.100: V/ActivityManager(247): Idle activity for HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:44.100: V/ActivityManager(247): ensureActivitiesVisible behind HistoryRecord{40559aa0 com.thunderst.radio/.Radio} configChanges=0x0
01-01 11:18:44.100: V/ActivityManager(247): Make visible? HistoryRecord{40559aa0 com.thunderst.radio/.Radio} finishing=false state=RESUMED
01-01 11:18:44.100: V/ActivityManager(247): Ensuring correct configuration: HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:44.100: V/ActivityManager(247): Checking to restart com.thunderst.radio.Radio: changed=0x0, handles=0x0, newConfig={ scale=1.0 imsi=0/0 loc=zh_CN touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=5}
01-01 11:18:44.100: V/ActivityManager(247): Sending new config to HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:44.100: V/ActivityManager(247): Skipping: already visible at HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:44.100: V/ActivityManager(247): Stopping: fullscreen at HistoryRecord{40559aa0 com.thunderst.radio/.Radio}
01-01 11:18:44.100: V/ActivityManager(247): Make invisible? HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher} finishing=false state=STOPPED behindFullscreen=true
01-01 11:18:44.100: V/ActivityManager(247): Already invisible: HistoryRecord{4063e968 com.android.launcher/com.android.launcher2.Launcher}
01-01 11:18:45.000: V/ActivityManager(247): Broadcast sticky: Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000000 (has extras) } ordered=false
01-01 11:18:45.000: V/ActivityManager(247): Enqueing broadcast: android.intent.action.BATTERY_CHANGED replacePending=true
01-01 11:18:45.000: V/ActivityManager(247): Enqueueing parallel broadcast BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}: prev had 0
01-01 11:18:45.000: V/ActivityManager(247): Schedule broadcasts: current=false
01-01 11:18:45.000: V/ActivityManager(247): Received BROADCAST_INTENT_MSG
01-01 11:18:45.000: V/ActivityManager(247): processNextBroadcast: 1 broadcasts, 0 ordered broadcasts
01-01 11:18:45.000: V/ActivityManager(247): Processing parallel broadcast BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40846718 ReceiverList{408466a0 247 system/1000 local:408a4828}}: BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: I/ActivityManager(247): Delivering to BroadcastFilter{40846718 ReceiverList{408466a0 247 system/1000 local:408a4828}} (seq=-1): BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4087d6b0 ReceiverList{4087d658 247 system/1000 local:408b7240}}: BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: I/ActivityManager(247): Delivering to BroadcastFilter{4087d6b0 ReceiverList{4087d658 247 system/1000 local:408b7240}} (seq=-1): BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4071ccf0 ReceiverList{40725198 247 system/1000 local:40770fc8}}: BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: I/ActivityManager(247): Delivering to BroadcastFilter{4071ccf0 ReceiverList{40725198 247 system/1000 local:40770fc8}} (seq=-1): BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40a048b0 ReceiverList{40a04838 247 system/1000 local:408c39f0}}: BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: I/ActivityManager(247): Delivering to BroadcastFilter{40a048b0 ReceiverList{40a04838 247 system/1000 local:408c39f0}} (seq=-1): BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4057db40 ReceiverList{4057dac8 376 com.android.systemui/1000 remote:4057c218}}: BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: I/ActivityManager(247): Delivering to BroadcastFilter{4057db40 ReceiverList{4057dac8 376 com.android.systemui/1000 remote:4057c218}} (seq=-1): BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4069a2a8 ReceiverList{406b1310 375 com.android.phone/1001 remote:40630e18}}: BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.000: I/ActivityManager(247): Delivering to BroadcastFilter{4069a2a8 ReceiverList{406b1310 375 com.android.phone/1001 remote:40630e18}} (seq=-1): BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:45.010: V/ActivityManager(247): Done with parallel broadcast BroadcastRecord{40775a60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Broadcast sticky: Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000000 (has extras) } ordered=false
01-01 11:18:46.000: V/ActivityManager(247): Enqueing broadcast: android.intent.action.BATTERY_CHANGED replacePending=true
01-01 11:18:46.000: V/ActivityManager(247): Enqueueing parallel broadcast BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}: prev had 0
01-01 11:18:46.000: V/ActivityManager(247): Schedule broadcasts: current=false
01-01 11:18:46.000: V/ActivityManager(247): Received BROADCAST_INTENT_MSG
01-01 11:18:46.000: V/ActivityManager(247): processNextBroadcast: 1 broadcasts, 0 ordered broadcasts
01-01 11:18:46.000: V/ActivityManager(247): Processing parallel broadcast BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40846718 ReceiverList{408466a0 247 system/1000 local:408a4828}}: BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: I/ActivityManager(247): Delivering to BroadcastFilter{40846718 ReceiverList{408466a0 247 system/1000 local:408a4828}} (seq=-1): BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4087d6b0 ReceiverList{4087d658 247 system/1000 local:408b7240}}: BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: I/ActivityManager(247): Delivering to BroadcastFilter{4087d6b0 ReceiverList{4087d658 247 system/1000 local:408b7240}} (seq=-1): BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4071ccf0 ReceiverList{40725198 247 system/1000 local:40770fc8}}: BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: I/ActivityManager(247): Delivering to BroadcastFilter{4071ccf0 ReceiverList{40725198 247 system/1000 local:40770fc8}} (seq=-1): BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40a048b0 ReceiverList{40a04838 247 system/1000 local:408c39f0}}: BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: I/ActivityManager(247): Delivering to BroadcastFilter{40a048b0 ReceiverList{40a04838 247 system/1000 local:408c39f0}} (seq=-1): BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4057db40 ReceiverList{4057dac8 376 com.android.systemui/1000 remote:4057c218}}: BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: I/ActivityManager(247): Delivering to BroadcastFilter{4057db40 ReceiverList{4057dac8 376 com.android.systemui/1000 remote:4057c218}} (seq=-1): BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4069a2a8 ReceiverList{406b1310 375 com.android.phone/1001 remote:40630e18}}: BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: I/ActivityManager(247): Delivering to BroadcastFilter{4069a2a8 ReceiverList{406b1310 375 com.android.phone/1001 remote:40630e18}} (seq=-1): BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:46.000: V/ActivityManager(247): Done with parallel broadcast BroadcastRecord{4062fe60 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: V/ActivityManager(247): Broadcast sticky: Intent { act=android.intent.action.BATTERY_CHANGED flg=0x60000000 (has extras) } ordered=false
01-01 11:18:48.000: V/ActivityManager(247): Enqueing broadcast: android.intent.action.BATTERY_CHANGED replacePending=true
01-01 11:18:48.000: V/ActivityManager(247): Enqueueing parallel broadcast BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}: prev had 0
01-01 11:18:48.000: V/ActivityManager(247): Schedule broadcasts: current=false
01-01 11:18:48.000: V/ActivityManager(247): Received BROADCAST_INTENT_MSG
01-01 11:18:48.000: V/ActivityManager(247): processNextBroadcast: 1 broadcasts, 0 ordered broadcasts
01-01 11:18:48.000: V/ActivityManager(247): Processing parallel broadcast BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40846718 ReceiverList{408466a0 247 system/1000 local:408a4828}}: BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: I/ActivityManager(247): Delivering to BroadcastFilter{40846718 ReceiverList{408466a0 247 system/1000 local:408a4828}} (seq=-1): BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4087d6b0 ReceiverList{4087d658 247 system/1000 local:408b7240}}: BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: I/ActivityManager(247): Delivering to BroadcastFilter{4087d6b0 ReceiverList{4087d658 247 system/1000 local:408b7240}} (seq=-1): BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4071ccf0 ReceiverList{40725198 247 system/1000 local:40770fc8}}: BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: I/ActivityManager(247): Delivering to BroadcastFilter{4071ccf0 ReceiverList{40725198 247 system/1000 local:40770fc8}} (seq=-1): BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{40a048b0 ReceiverList{40a04838 247 system/1000 local:408c39f0}}: BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: I/ActivityManager(247): Delivering to BroadcastFilter{40a048b0 ReceiverList{40a04838 247 system/1000 local:408c39f0}} (seq=-1): BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4057db40 ReceiverList{4057dac8 376 com.android.systemui/1000 remote:4057c218}}: BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.000: I/ActivityManager(247): Delivering to BroadcastFilter{4057db40 ReceiverList{4057dac8 376 com.android.systemui/1000 remote:4057c218}} (seq=-1): BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.010: V/ActivityManager(247): Delivering non-ordered to registered BroadcastFilter{4069a2a8 ReceiverList{406b1310 375 com.android.phone/1001 remote:40630e18}}: BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.010: I/ActivityManager(247): Delivering to BroadcastFilter{4069a2a8 ReceiverList{406b1310 375 com.android.phone/1001 remote:40630e18}} (seq=-1): BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}
01-01 11:18:48.010: V/ActivityManager(247): Done with parallel broadcast BroadcastRecord{407a86b8 android.intent.action.BATTERY_CHANGED}

抱歉!评论已关闭.