Android bootchart 分析

转载自 http://blog.youkuaiyun.com/weiqifa0/article/details/48996033


1.首先确保编译的init被烧录到板子里面去了,源码的位置在system/core/init/

2.第一次修改后,编译了system/core/init/然后又编译了./mkkernel 生成boot.img 但是烧录进去还是不成功

3.然后 发现有一个宏没有设置 在bootchart.h里面,BOOTCHART 修改后重新编译,烧了所有的文件才可以,单烧boot.img也不行。


一般都是这几个位置影响开机时间
•Bootloader init
•Kernel init
•Zygote class preloading
•Package scanning
•Service initialization

改善开机速度几个比较好的网站:
http://elinux.org/Improving_Android_Boot_Time_Outline
http://elinux.org/Improving_Android_Boot_Time


在机器的操作如下
#echo 120 > /data/bootchart-start #120 秒是超时时间,表示 bootchart 记
录多长时间后停止记录,随时可以用命令'echo 1 > /data/bootchart-stop' 停

#mkdir /data/bootchart
#在 data 创建该目录,用来存放生成的
记录文件
#reboot
#重启开发板后 bootchart 会开始记录


代码修改如下,加了一下日志

[objc]  view plain  copy
 print ?
  1. <span style="font-family:Microsoft YaHei;">weiqifa@weiqifa-Inspiron-3847:~/weiqifa/new_tm100/tm100$ git diff mediatek/config/mid713l_lp_lvds/ProjectConfig.mk  
  2. diff --git a/mediatek/config/mid713l_lp_lvds/ProjectConfig.mk b/mediatek/config/mid713l_lp_lvds/ProjectConfig.mk  
  3. index 42dc2b2..2b4e06b 100755  
  4. --- a/mediatek/config/mid713l_lp_lvds/ProjectConfig.mk  
  5. +++ b/mediatek/config/mid713l_lp_lvds/ProjectConfig.mk  
  6. @@ -1528,3 +1528,5 @@ ADUPS_FOTA_WITHOUT_MENU=no  
  7.    
  8.  #HCN200 CUSTOM MACRO  
  9.  MID713L_PANEL_GAMMA=yes  
  10. +#weiqifa modify add  
  11. +INIT_BOOTCHART=true  
  12. weiqifa@weiqifa-Inspiron-3847:~/weiqifa/new_tm100/tm100$  
  13.   
  14.   
  15. weiqifa@weiqifa-Inspiron-3847:~/weiqifa/new_tm100/tm100$ git diff system/core/init/bootchart.h  
  16. diff --git a/system/core/init/bootchart.h b/system/core/init/bootchart.h  
  17. index 39d2d4f..d322114 100644  
  18. --- a/system/core/init/bootchart.h  
  19. +++ b/system/core/init/bootchart.h  
  20. @@ -18,7 +18,7 @@  
  21.  #define _BOOTCHART_H  
  22.    
  23.  #ifndef BOOTCHART  
  24. -# define  BOOTCHART  0  
  25. +# define  BOOTCHART  1 //weiqifa modify  
  26.  #endif  
  27.    
  28.  #if BOOTCHART  
  29. weiqifa@weiqifa-Inspiron-3847:~/weiqifa/new_tm100/tm100$ git diff system/core/init/init.c  
  30. diff --git a/system/core/init/init.c b/system/core/init/init.c  
  31. index 045e416..8c4f8af 100755  
  32. --- a/system/core/init/init.c  
  33. +++ b/system/core/init/init.c  
  34. @@ -968,11 +968,11 @@ static int bootchart_init_action(int nargs, charchar **args)  
  35.  {  
  36.      bootchart_count = bootchart_init();  
  37.      if (bootchart_count < 0) {  
  38. -        ERROR("bootcharting init failure\n");  
  39. +        printf("bootcharting init failure\n");  
  40.      } else if (bootchart_count > 0) {  
  41. -        NOTICE("bootcharting started (period=%d ms)\n", bootchart_count*BOOTCHART_POLLING_MS);  
  42. +        printf("bootcharting started (period=%d ms)\n", bootchart_count*BOOTCHART_POLLING_MS);  
  43.      } else {  
  44. -        NOTICE("bootcharting ignored\n");  
  45. +        printf("bootcharting ignored\n");  
  46.      }  
  47.    
  48.      return 0;  
  49. @@ -1384,7 +1384,7 @@ int main(int argc, charchar **argv)  
  50.  #ifdef MTK_INIT  
  51.          init_parse_config_file("/init.project.rc");  
  52.  #ifdef MTK_MLC_NAND_SUPPORT</span>  




4.通过busybox工具把data/bootchart/下面的文件打包后再pull出来

网址 http://www.busybox.net/downloads/binaries
下载 busybox-armv7l 这个 这个是arm架构的busybox
adb push busybox-armv7l sdcard/
adb shell
#cd sdcard/
#cp busybox-armv7l /system/xbin/
#chmod 755 busybox-armv7l
#./busybox-armv7l --install ./  要加后面的./说明是安装在当前的目录下

然后用 busybox-armv7l tar -czf bootchart.tgz *

adb pull data/bootchart/bootchart.tgz


$cd ../bootchart-0.9/
#该目录是从 http://www.bootchart.org/download.html 下载的源码解压后的
目录,直接用 apt-get install bootchart 安装的 bootchart 不能使用.
$ant
$java -jar bootchart.jar ../bootchart/bootchart.tgz
# 在 上 述 源 码 目 录 执 行 ant 命 令 编 译 后 后 生 成 bootchart.jar 文 件 ,
执行该命令后会在当前目录生成所需 bootchart.png 图片文件。
参考资料:
http://elinux.org/Using_Bootchart_on_Android

5.通过搜索关键字查找不同阶段开机的时间

ADP1 kernel boot time
weiqifa@weiqifa-Inspiron-3847:~/weiqifa/log$ grep -wrn "Freeing init memory" ./
./mobilelog/APLog_2013_0101_000118/kernel_log.boot:2608:<6>[    8.803294].(0)Freeing init memory: 380K

apps 扫描时间
weiqifa@weiqifa-Inspiron-3847:~/weiqifa/log$ grep -wrn "Time to scan packages" ./
./mobilelog/APLog_2013_0101_000118/sys_log.boot:778:01-01 23:14:32.442762   705   705 I PackageManager: Time to scan packages: 32.978 seconds

weiqifa@weiqifa-Inspiron-3847:~/weiqifa/log$

6、测试 把system app下面的apk去掉一些

如图:

得到去掉apk和去掉apk后两个开机的时间比较


7、在Zygote 孵化器 这里打印扫描哪些东西的时间

日志如下:

[java]  view plain  copy
 print ?
  1. weiqifa@weiqifa-Inspiron-3847:~/weiqifa/new_tm100/tm100$ adb shell logcat -s Zygote  
  2. --------- beginning of /dev/log/system  
  3. --------- beginning of /dev/log/main  
  4. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x501.DirectoryString...took3806ms.  
  5. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x501.DirectoryString$1...took3806ms.  
  6. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x501.Name...took3807ms.  
  7. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x501.Name$1...took3807ms.  
  8. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.AlgorithmIdentifier...took3807ms.  
  9. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.AlgorithmIdentifier$1...took3807ms.  
  10. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.BasicConstraints...took3807ms.  
  11. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.BasicConstraints$1...took3808ms.  
  12. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Certificate...took3812ms.  
  13. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Certificate$1...took3812ms.  
  14. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.EDIPartyName...took3812ms.  
  15. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.EDIPartyName$1...took3812ms.  
  16. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.ExtendedKeyUsage...took3812ms.  
  17. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.ExtendedKeyUsage$1...took3830ms.  
  18. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Extension...took3831ms.  
  19. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Extension$1...took3831ms.  
  20. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Extension$2...took3831ms.  
  21. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.ExtensionValue...took3831ms.  
  22. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Extensions...took3831ms.  
  23. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Extensions$1...took3831ms.  
  24. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.GeneralName...took3833ms.  
  25. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.GeneralName$1...took3833ms.  
  26. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.GeneralName$2...took3833ms.  
  27. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.GeneralNames...took3833ms.  
  28. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.GeneralNames$1...took3833ms.  
  29. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.KeyUsage...took3834ms.  
  30. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.ORAddress...took3834ms.  
  31. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.ORAddress$1...took3834ms.  
  32. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.ORAddress$2...took3834ms.  
  33. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.OtherName...took3834ms.  
  34. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.OtherName$1...took3834ms.  
  35. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.SubjectPublicKeyInfo...took3834ms.  
  36. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.SubjectPublicKeyInfo$1...took3834ms.  
  37. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.TBSCertificate...took3834ms.  
  38. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.TBSCertificate$1...took3835ms.  
  39. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Time...took3835ms.  
  40. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Time$1...took3835ms.  
  41. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Validity...took3835ms.  
  42. I/Zygote  (  188): Preloadingorg.apache.harmony.security.x509.Validity$1...took3835ms.  
  43. I/Zygote  (  188): Preloadingorg.apache.harmony.xml.ExpatAttributes...took3835ms.  
  44. I/Zygote  (  188): Preloadingorg.apache.harmony.xml.ExpatParser...took3835ms.  
  45. I/Zygote  (  188): Preloadingorg.apache.http.ConnectionReuseStrategy...took3836ms.  
  46. I/Zygote  (  188): Preloadingorg.apache.http.FormattedHeader...took3836ms.  
  47. I/Zygote  (  188): Preloadingorg.apache.http.Header...took3836ms.  
  48. I/Zygote  (  188): Preloadingorg.apache.http.HeaderElement...took3836ms.  
  49. I/Zygote  (  188): Preloadingorg.apache.http.HeaderElementIterator...took3836ms.  
  50. I/Zygote  (  188): Preloadingorg.apache.http.HeaderIterator...took3836ms.  
  51. I/Zygote  (  188): Preloadingorg.apache.http.HttpClientConnection...took3836ms.  
  52. I/Zygote  (  188): Preloadingorg.apache.http.HttpConnection...took3836ms.  
  53. I/Zygote  (  188): Preloadingorg.apache.http.HttpConnectionMetrics...took3839ms.  
  54. I/Zygote  (  188): Preloadingorg.apache.http.HttpEntity...took3840ms.  
  55. I/Zygote  (  188): Preloadingorg.apache.http.HttpEntityEnclosingRequest...took3840ms.  
  56. I/Zygote  (  188): Preloadingorg.apache.http.HttpHost...took3840ms.  
  57. I/Zygote  (  188): Preloadingorg.apache.http.HttpInetConnection...took3840ms.  
  58. I/Zygote  (  188): Preloadingorg.apache.http.HttpMessage...took3840ms.  
  59. I/Zygote  (  188): Preloadingorg.apache.http.HttpRequest...took3840ms.  
  60. I/Zygote  (  188): Preloadingorg.apache.http.HttpRequestInterceptor...took3840ms.  
  61. I/Zygote  (  188): Preloadingorg.apache.http.HttpResponse...took3840ms.  
  62. I/Zygote  (  188): Preloadingorg.apache.http.HttpResponseFactory...took3840ms.  
  63. I/Zygote  (  188): Preloadingorg.apache.http.HttpResponseInterceptor...took3840ms.  
  64. I/Zygote  (  188): Preloadingorg.apache.http.HttpVersion...took3841ms.  
  65. I/Zygote  (  188): Preloadingorg.apache.http.NameValuePair...took3842ms.  
  66. I/Zygote  (  188): Preloadingorg.apache.http.ProtocolVersion...took3842ms.  
  67. I/Zygote  (  188): Preloadingorg.apache.http.ReasonPhraseCatalog...took3842ms.  
  68. I/Zygote  (  188): Preloadingorg.apache.http.RequestLine...took3842ms.  
  69. I/Zygote  (  188): Preloadingorg.apache.http.StatusLine...took3842ms.  
  70. I/Zygote  (  188): Preloadingorg.apache.http.auth.AuthSchemeFactory...took3842ms.  
  71. I/Zygote  (  188): Preloadingorg.apache.http.auth.AuthSchemeRegistry...took3843ms.  
  72. I/Zygote  (  188): Preloadingorg.apache.http.auth.AuthState...took3843ms.  
  73. I/Zygote  (  188): Preloadingorg.apache.http.client.AuthenticationHandler...took3843ms.  
  74. I/Zygote  (  188): Preloadingorg.apache.http.client.CookieStore...took3846ms.  
  75. I/Zygote  (  188): Preloadingorg.apache.http.client.CredentialsProvider...took3846ms.  
  76. I/Zygote  (  188): Preloadingorg.apache.http.client.HttpClient...took3846ms.  
  77. I/Zygote  (  188): Preloadingorg.apache.http.client.HttpRequestRetryHandler...took3846ms.  
  78. I/Zygote  (  188): Preloadingorg.apache.http.client.RedirectHandler...took3846ms.  
  79. I/Zygote  (  188): Preloadingorg.apache.http.client.RequestDirector...took3866ms.  
  80. I/Zygote  (  188): Preloadingorg.apache.http.client.ResponseHandler...took3866ms.  
  81. I/Zygote  (  188): Preloadingorg.apache.http.client.UserTokenHandler...took3866ms.  
  82. I/Zygote  (  188): Preloadingorg.apache.http.client.methods.AbortableHttpRequest...took3866ms.  
  83. I/Zygote  (  188): Preloadingorg.apache.http.client.methods.HttpEntityEnclosingRequestBase...took3867ms.  
  84. I/Zygote  (  188): Preloadingorg.apache.http.client.methods.HttpGet...took3867ms.  
  85. I/Zygote  (  188): Preloadingorg.apache.http.client.methods.HttpPost...took3867ms.  
  86. I/Zygote  (  188): Preloadingorg.apache.http.client.methods.HttpRequestBase...took3867ms.  
  87. I/Zygote  (  188): Preloadingorg.apache.http.client.methods.HttpUriRequest...took3867ms.  
  88. I/Zygote  (  188): Preloadingorg.apache.http.client.params.HttpClientParams...took3867ms.  
  89. I/Zygote  (  188): Preloadingorg.apache.http.client.protocol.RequestAddCookies...took3867ms.  
  90. I/Zygote  (  188): Preloadingorg.apache.http.client.protocol.RequestDefaultHeaders...took3867ms.  
  91. I/Zygote  (  188): Preloadingorg.apache.http.client.protocol.RequestProxyAuthentication...took3868ms.  
  92. I/Zygote  (  188): Preloadingorg.apache.http.client.protocol.RequestTargetAuthentication...took3868ms.  
  93. I/Zygote  (  188): Preloadingorg.apache.http.client.protocol.ResponseProcessCookies...took3868ms.  
  94. I/Zygote  (  188): Preloadingorg.apache.http.client.utils.URIUtils...took3868ms.  
  95. I/Zygote  (  188): Preloadingorg.apache.http.conn.BasicManagedEntity...took3868ms.  
  96. I/Zygote  (  188): Preloadingorg.apache.http.conn.ClientConnectionManager...took3868ms.  
  97. I/Zygote  (  188): Preloadingorg.apache.http.conn.ClientConnectionOperator...took3869ms.  
  98. I/Zygote  (  188): Preloadingorg.apache.http.conn.ClientConnectionRequest...took3869ms.  
  99. I/Zygote  (  188): Preloadingorg.apache.http.conn.ConnectionKeepAliveStrategy...took3869ms.  
  100. I/Zygote  (  188): Preloadingorg.apache.http.conn.ConnectionReleaseTrigger...took3869ms.  
  101. I/Zygote  (  188): Preloadingorg.apache.http.conn.EofSensorInputStream...took3869ms.  
  102. I/Zygote  (  188): Preloadingorg.apache.http.conn.EofSensorWatcher...took3869ms.  
  103. I/Zygote  (  188): Preloadingorg.apache.http.conn.ManagedClientConnection...took3870ms.  
  104. I/Zygote  (  188): Preloadingorg.apache.http.conn.OperatedClientConnection...took3870ms.  
  105. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnManagerPNames...took3870ms.  
  106. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnManagerParams...took3870ms.  
  107. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnManagerParams$1...took3870ms.  
  108. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnPerRoute...took3870ms.  
  109. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnPerRouteBean...took3870ms.  
  110. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnRoutePNames...took3871ms.  
  111. I/Zygote  (  188): Preloadingorg.apache.http.conn.params.ConnRouteParams...took3871ms.  
  112. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.BasicRouteDirector...took3871ms.  
  113. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.HttpRoute...took3871ms.  
  114. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.HttpRouteDirector...took3872ms.  
  115. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.HttpRoutePlanner...took3872ms.  
  116. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.RouteInfo...took3872ms.  
  117. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.RouteInfo$LayerType...took3872ms.  
  118. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.RouteInfo$TunnelType...took3872ms.  
  119. I/Zygote  (  188): Preloadingorg.apache.http.conn.routing.RouteTracker...took3872ms.  
  120. I/Zygote  (  188): Preloadingorg.apache.http.conn.scheme.LayeredSocketFactory...took3872ms.  
  121. I/Zygote  (  188): Preloadingorg.apache.http.conn.scheme.PlainSocketFactory...took3872ms.  
  122. I/Zygote  (  188): Preloadingorg.apache.http.conn.scheme.Scheme...took3873ms.  
  123. I/Zygote  (  188): Preloadingorg.apache.http.conn.scheme.SchemeRegistry...took3873ms.  
  124. I/Zygote  (  188): Preloadingorg.apache.http.conn.scheme.SocketFactory...took3873ms.  
  125. I/Zygote  (  188): Preloadingorg.apache.http.conn.ssl.AbstractVerifier...took3873ms.  
  126. I/Zygote  (  188): Preloadingorg.apache.http.conn.ssl.AllowAllHostnameVerifier...took3873ms.  
  127. I/Zygote  (  188): Preloadingorg.apache.http.conn.ssl.BrowserCompatHostnameVerifier...took3873ms.  
  128. I/Zygote  (  188): Preloadingorg.apache.http.conn.ssl.SSLSocketFactory...took3874ms.  
  129. I/Zygote  (  188): Preloadingorg.apache.http.conn.ssl.StrictHostnameVerifier...took3874ms.  
  130. I/Zygote  (  188): Preloadingorg.apache.http.conn.ssl.X509HostnameVerifier...took3874ms.  
  131. I/Zygote  (  188): Preloadingorg.apache.http.conn.util.InetAddressUtils...took3876ms.  
  132. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookieAttributeHandler...took3876ms.  
  133. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookieIdentityComparator...took3876ms.  
  134. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookieOrigin...took3895ms.  
  135. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookiePathComparator...took3895ms.  
  136. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookieSpec...took3895ms.  
  137. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookieSpecFactory...took3895ms.  
  138. I/Zygote  (  188): Preloadingorg.apache.http.cookie.CookieSpecRegistry...took3896ms.  
  139. I/Zygote  (  188): Preloadingorg.apache.http.entity.AbstractHttpEntity...took3896ms.  
  140. I/Zygote  (  188): Preloadingorg.apache.http.entity.BasicHttpEntity...took3896ms.  
  141. I/Zygote  (  188): Preloadingorg.apache.http.entity.ByteArrayEntity...took3896ms.  
  142. I/Zygote  (  188): Preloadingorg.apache.http.entity.ContentLengthStrategy...took3897ms.  
  143. I/Zygote  (  188): Preloadingorg.apache.http.entity.HttpEntityWrapper...took3897ms.  
  144. I/Zygote  (  188): Preloadingorg.apache.http.impl.AbstractHttpClientConnection...took3898ms.  
  145. I/Zygote  (  188): Preloadingorg.apache.http.impl.DefaultConnectionReuseStrategy...took3898ms.  
  146. I/Zygote  (  188): Preloadingorg.apache.http.impl.DefaultHttpResponseFactory...took3898ms.  
  147. I/Zygote  (  188): Preloadingorg.apache.http.impl.EnglishReasonPhraseCatalog...took3899ms.  
  148. I/Zygote  (  188): Preloadingorg.apache.http.impl.HttpConnectionMetricsImpl...took3899ms.  
  149. I/Zygote  (  188): Preloadingorg.apache.http.impl.SocketHttpClientConnection...took3900ms.  
  150. I/Zygote  (  188): Preloadingorg.apache.http.impl.auth.BasicSchemeFactory...took3900ms.  
  151. I/Zygote  (  188): Preloadingorg.apache.http.impl.auth.DigestSchemeFactory...took3901ms.  
  152. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.AbstractAuthenticationHandler...took3901ms.  
  153. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.AbstractHttpClient...took3901ms.  
  154. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.BasicCookieStore...took3901ms.  
  155. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.BasicCredentialsProvider...took3902ms.  
  156. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.ClientParamsStack...took3902ms.  
  157. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultConnectionKeepAliveStrategy...took3902ms.  
  158. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultHttpClient...took3903ms.  
  159. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultHttpRequestRetryHandler...took3903ms.  
  160. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultProxyAuthenticationHandler...took3903ms.  
  161. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultRedirectHandler...took3903ms.  
  162. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultRequestDirector...took3905ms.  
  163. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultTargetAuthenticationHandler...took3905ms.  
  164. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.DefaultUserTokenHandler...took3906ms.  
  165. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.EntityEnclosingRequestWrapper...took3906ms.  
  166. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.RequestWrapper...took3906ms.  
  167. I/Zygote  (  188): Preloadingorg.apache.http.impl.client.RoutedRequest...took3906ms.  
  168. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.AbstractClientConnAdapter...took3907ms.  
  169. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.AbstractPoolEntry...took3907ms.  
  170. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.AbstractPooledConnAdapter...took3908ms.  
  171. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.DefaultClientConnection...took3908ms.  
  172. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.DefaultClientConnectionOperator...took3908ms.  
  173. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.DefaultResponseParser...took3909ms.  
  174. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.IdleConnectionHandler...took3909ms.  
  175. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.IdleConnectionHandler$TimeValues...took3909ms.  
  176. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.ProxySelectorRoutePlanner...took3910ms.  
  177. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.ProxySelectorRoutePlanner$1...took3910ms.  
  178. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.AbstractConnPool...took3911ms.  
  179. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.BasicPoolEntry...took3911ms.  
  180. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.BasicPoolEntryRef...took3911ms.  
  181. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.BasicPooledConnAdapter...took3911ms.  
  182. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.ConnPoolByRoute...took3912ms.  
  183. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.ConnPoolByRoute$1...took3912ms.  
  184. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.PoolEntryRequest...took3912ms.  
  185. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.RefQueueHandler...took3912ms.  
  186. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.RefQueueWorker...took3933ms.  
  187. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.RouteSpecificPool...took3933ms.  
  188. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager...took3933ms.  
  189. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager$1...took3933ms.  
  190. I/Zygote  (  188): Preloadingorg.apache.http.impl.conn.tsccm.WaitingThreadAborter...took3933ms.  
  191. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.AbstractCookieAttributeHandler...took3934ms.  
  192. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.AbstractCookieSpec...took3934ms.  
  193. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BasicCommentHandler...took3934ms.  
  194. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BasicExpiresHandler...took3934ms.  
  195. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BasicMaxAgeHandler...took3934ms.  
  196. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BasicPathHandler...took3934ms.  
  197. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BasicSecureHandler...took3936ms.  
  198. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BestMatchSpec...took3936ms.  
  199. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BestMatchSpecFactory...took3936ms.  
  200. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.BrowserCompatSpecFactory...took3936ms.  
  201. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.CookieSpecBase...took3936ms.  
  202. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.NetscapeDraftSpecFactory...took3937ms.  
  203. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2109DomainHandler...took3937ms.  
  204. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2109Spec...took3937ms.  
  205. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2109SpecFactory...took3937ms.  
  206. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2109VersionHandler...took3937ms.  
  207. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965CommentUrlAttributeHandler...took3937ms.  
  208. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965DiscardAttributeHandler...took3938ms.  
  209. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965DomainAttributeHandler...took3938ms.  
  210. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965PortAttributeHandler...took3938ms.  
  211. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965Spec...took3938ms.  
  212. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965SpecFactory...took3938ms.  
  213. I/Zygote  (  188): Preloadingorg.apache.http.impl.cookie.RFC2965VersionAttributeHandler...took3938ms.  
  214. I/Zygote  (  188): Preloadingorg.apache.http.impl.entity.EntityDeserializer...took3938ms.  
  215. I/Zygote  (  188): Preloadingorg.apache.http.impl.entity.EntitySerializer...took3939ms.  
  216. I/Zygote  (  188): Preloadingorg.apache.http.impl.entity.LaxContentLengthStrategy...took3939ms.  
  217. I/Zygote  (  188): Preloadingorg.apache.http.impl.entity.StrictContentLengthStrategy...took3939ms.  
  218. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.AbstractMessageParser...took3939ms.  
  219. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.AbstractMessageWriter...took3939ms.  
  220. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.AbstractSessionInputBuffer...took3939ms.  
  221. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.AbstractSessionOutputBuffer...took3940ms.  
  222. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.ChunkedInputStream...took3940ms.  
  223. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.ContentLengthInputStream...took3940ms.  
  224. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.ContentLengthOutputStream...took3940ms.  
  225. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.HttpRequestWriter...took3940ms.  
  226. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.HttpTransportMetricsImpl...took3940ms.  
  227. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.SocketInputBuffer...took3940ms.  
  228. I/Zygote  (  188): Preloadingorg.apache.http.impl.io.SocketOutputBuffer...took3941ms.  
  229. I/Zygote  (  188): Preloadingorg.apache.http.io.HttpMessageParser...took3941ms.  
  230. I/Zygote  (  188): Preloadingorg.apache.http.io.HttpMessageWriter...took3941ms.  
  231. I/Zygote  (  188): Preloadingorg.apache.http.io.HttpTransportMetrics...took3941ms.  
  232. I/Zygote  (  188): Preloadingorg.apache.http.io.SessionInputBuffer...took3941ms.  
  233. I/Zygote  (  188): Preloadingorg.apache.http.io.SessionOutputBuffer...took3941ms.  
  234. I/Zygote  (  188): Preloadingorg.apache.http.message.AbstractHttpMessage...took3941ms.  
  235. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicHeader...took3942ms.  
  236. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicHeaderElement...took3942ms.  
  237. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicHeaderElementIterator...took3942ms.  
  238. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicHeaderValueParser...took3942ms.  
  239. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicHttpResponse...took3943ms.  
  240. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicLineFormatter...took3943ms.  
  241. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicLineParser...took3943ms.  
  242. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicListHeaderIterator...took3963ms.  
  243. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicNameValuePair...took3964ms.  
  244. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicRequestLine...took3964ms.  
  245. I/Zygote  (  188): Preloadingorg.apache.http.message.BasicStatusLine...took3964ms.  
  246. I/Zygote  (  188): Preloadingorg.apache.http.message.BufferedHeader...took3964ms.  
  247. I/Zygote  (  188): Preloadingorg.apache.http.message.HeaderGroup...took3964ms.  
  248. I/Zygote  (  188): Preloadingorg.apache.http.message.HeaderValueParser...took3964ms.  
  249. I/Zygote  (  188): Preloadingorg.apache.http.message.LineFormatter...took3964ms.  
  250. I/Zygote  (  188): Preloadingorg.apache.http.message.LineParser...took3965ms.  
  251. I/Zygote  (  188): Preloadingorg.apache.http.message.ParserCursor...took3965ms.  
  252. I/Zygote  (  188): Preloadingorg.apache.http.params.AbstractHttpParams...took3965ms.  
  253. I/Zygote  (  188): Preloadingorg.apache.http.params.BasicHttpParams...took3965ms.  
  254. I/Zygote  (  188): Preloadingorg.apache.http.params.CoreConnectionPNames...took3965ms.  
  255. I/Zygote  (  188): Preloadingorg.apache.http.params.CoreProtocolPNames...took3965ms.  
  256. I/Zygote  (  188): Preloadingorg.apache.http.params.HttpConnectionParams...took3965ms.  
  257. I/Zygote  (  188): Preloadingorg.apache.http.params.HttpParams...took3966ms.  
  258. I/Zygote  (  188): Preloadingorg.apache.http.params.HttpProtocolParams...took3966ms.  
  259. I/Zygote  (  188): Preloadingorg.apache.http.protocol.BasicHttpContext...took3966ms.  
  260. I/Zygote  (  188): Preloadingorg.apache.http.protocol.BasicHttpProcessor...took3966ms.  
  261. I/Zygote  (  188): Preloadingorg.apache.http.protocol.HTTP...took3966ms.  
  262. I/Zygote  (  188): Preloadingorg.apache.http.protocol.HttpContext...took3966ms.  
  263. I/Zygote  (  188): Preloadingorg.apache.http.protocol.HttpProcessor...took3967ms.  
  264. I/Zygote  (  188): Preloadingorg.apache.http.protocol.HttpRequestExecutor...took3967ms.  
  265. I/Zygote  (  188): Preloadingorg.apache.http.protocol.HttpRequestInterceptorList...took3967ms.  
  266. I/Zygote  (  188): Preloadingorg.apache.http.protocol.HttpResponseInterceptorList...took3967ms.  
  267. I/Zygote  (  188): Preloadingorg.apache.http.protocol.RequestConnControl...took3967ms.  
  268. I/Zygote  (  188): Preloadingorg.apache.http.protocol.RequestContent...took3967ms.  
  269. I/Zygote  (  188): Preloadingorg.apache.http.protocol.RequestExpectContinue...took3968ms.  
  270. I/Zygote  (  188): Preloadingorg.apache.http.protocol.RequestTargetHost...took3968ms.  
  271. I/Zygote  (  188): Preloadingorg.apache.http.protocol.RequestUserAgent...took3968ms.  
  272. I/Zygote  (  188): Preloadingorg.apache.http.util.ByteArrayBuffer...took3968ms.  
  273. I/Zygote  (  188): Preloadingorg.apache.http.util.CharArrayBuffer...took3968ms.  
  274. I/Zygote  (  188): Preloadingorg.apache.http.util.LangUtils...took3968ms.  
  275. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.AttributesImpl...took3968ms.  
  276. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.AutoDetector...took3969ms.  
  277. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.Element...took3969ms.  
  278. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.ElementType...took3969ms.  
  279. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.HTMLModels...took3969ms.  
  280. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.HTMLScanner...took3969ms.  
  281. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.HTMLSchema...took3970ms.  
  282. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.Parser...took3970ms.  
  283. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.Parser$1...took3970ms.  
  284. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.ScanHandler...took3970ms.  
  285. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.Scanner...took3970ms.  
  286. I/Zygote  (  188): Preloadingorg.ccil.cowan.tagsoup.Schema...took3970ms.  
  287. I/Zygote  (  188): Preloadingorg.json.JSON...took3970ms.  
  288. I/Zygote  (  188): Preloadingorg.json.JSONArray...took3971ms.  
  289. I/Zygote  (  188): Preloadingorg.json.JSONObject...took3989ms.  
  290. I/Zygote  (  188): Preloadingorg.json.JSONObject$1...took3989ms.  
  291. I/Zygote  (  188): Preloadingorg.json.JSONStringer...took3989ms.  
  292. I/Zygote  (  188): Preloadingorg.json.JSONStringer$Scope...took3990ms.  
  293. I/Zygote  (  188): Preloadingorg.json.JSONTokener...took3990ms.  
  294. I/Zygote  (  188): Preloadingorg.kxml2.io.KXmlParser...took3991ms.  
  295. I/Zygote  (  188): Preloadingorg.kxml2.io.KXmlParser$ValueContext...took3991ms.  
  296. I/Zygote  (  188): Preloadingorg.xml.sax.Attributes...took3991ms.  
  297. I/Zygote  (  188): Preloadingorg.xml.sax.ContentHandler...took3992ms.  
  298. I/Zygote  (  188): Preloadingorg.xml.sax.DTDHandler...took3992ms.  
  299. I/Zygote  (  188): Preloadingorg.xml.sax.EntityResolver...took3992ms.  
  300. I/Zygote  (  188): Preloadingorg.xml.sax.ErrorHandler...took3992ms.  
  301. I/Zygote  (  188): Preloadingorg.xml.sax.InputSource...took3992ms.  
  302. I/Zygote  (  188): Preloadingorg.xml.sax.Locator...took3992ms.  
  303. I/Zygote  (  188): Preloadingorg.xml.sax.XMLReader...took3992ms.  
  304. I/Zygote  (  188): Preloadingorg.xml.sax.ext.LexicalHandler...took3992ms.  
  305. I/Zygote  (  188): Preloadingorg.xml.sax.helpers.DefaultHandler...took3992ms.  
  306. I/Zygote  (  188): Preloadingorg.xmlpull.v1.XmlPullParser...took3993ms.  
  307. I/Zygote  (  188): Preloadingorg.xmlpull.v1.XmlSerializer...took3993ms.  
  308. I/Zygote  (  188): Preloadingsun.misc.Unsafe...took3993ms.  
  309. I/Zygote  (  188): ...preloaded 2774 classes in 3993ms.  
  310. I/Zygote  (  188): Preloading resources...  
  311. I/Zygote  (  188): ...preloaded 274 resources in 952ms.  
  312. I/Zygote  (  188): ...preloaded 31 resources in 33ms.  
  313. I/Zygote  (  188): Accepting command socket connections  
  314. I/Zygote  (  694): Process: zygote socket opened  

代码添加如下:

[java]  view plain  copy
 print ?
  1. diff --git a/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java b/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java  
  2. index 4dbd15e..3a58451 100644  
  3. --- a/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java  
  4. +++ b/frameworks/base/core/java/com/android/internal/os/ZygoteInit.java  
  5. @@ -286,7 +286,8 @@ public class ZygoteInit {  
  6.              /// M: Added for BOOTPROF  
  7.              int count = 0;  
  8.              long startTime = SystemClock.uptimeMillis();  
  9. -  
  10. +           long lastTime = SystemClock.uptimeMillis();//weiqifa modify add  
  11. +           long nextTime = SystemClock.uptimeMillis();//weiqifa modify add   
  12.              // Drop root perms while running static initializers.  
  13.              setEffectiveGroup(UNPRIVILEGED_GID);  
  14.              setEffectiveUser(UNPRIVILEGED_UID);  
  15. @@ -318,6 +319,10 @@ public class ZygoteInit {  
  16.                              Log.v(TAG, "Preloading " + line + "...");  
  17.                          }  
  18.                          Class.forName(line);  
  19. +                       nextTime=SystemClock.uptimeMillis();  
  20. +                       if((nextTime-lastTime)>50){  
  21. +                               Log.i(TAG,"Preloading"+line+"...took"+(nextTime-lastTime)+"ms.");                         
  22. +                       }  
  23.                          if (Debug.getGlobalAllocSize() > PRELOAD_GC_THRESHOLD) {  

结论:这些东西太多了,添加 扫描话了很多时间 造成开机时间变慢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值