Improving Android Boot Time
来源:互联网 发布:linux服务器重启日志 编辑:程序博客网 时间:2024/05/05 20:48
This page has notes and materials in support of Tim Bird's presentation "Improving Android Bootup Time", which he gave atLinuxCon North America, 2010.
Contents
[hide]- 1Abstract
- 2Presentation
- 3Outline
- 4Raw Data
- 5Resources
- 5.1logdelta
- 5.2instrumentation patches
- 5.3parseZipArchive patch
Abstract
Android is a relatively new distribution of Linux, with a completely different user space implementation, compared to desktop or enterprise Linux. It also has some rather horrible boot times. But it's popular - so Tim decided to take a look and see if the bootup time of a standard Android system could be improved. This presentation describes how well he succeeded in this venture. Tim will present methods of measuring kernel and user-space bootup time on an Android system, as well as present some ideas for places where Android bootup time could be improved.
Presentation
Here's the final presentation which was given at LinuxCon North America, August 2010:
- Android-bootup-time-linuxcon-2010-08.pdf
Outline
See Improving Android Boot Time Outline
Raw Data
[Still need to post my raw data here]
Resources
logdelta
Here is the 'logdelta' program, which can be used to see the time between logcat lines. Using logcat, grep, and logdelta, you can usually figure out how long certain operations are taking, based on the log timestamps.
- Media:Logdelta.txt - the logdelta program
- Note: I had to give the program a .txt extension, in order to upload it to the elinux wiki. When you download it, rename it and make it executable with
- mv Logdelta.txt logdelta; chmod a+x logdelta
- Note: I had to give the program a .txt extension, in order to upload it to the elinux wiki. When you download it, rename it and make it executable with
instrumentation patches
Here is a patch which instruments the class preloading and the package scanning, to give more verbose output during these phases of the bootup. Note that these will make booting much more verbose, which will very likely overrun your logcat buffers. So you may need to grab the data with the 'logcat' command soon after the operation you are interested in occurs.
- Media:Android-boot-instrumentation.patch
parseZipArchive patch
This patch removes the per-file signature check in parseZipArchive(). It also adds some logging to show how long the open operation is taking, in ZipFileRO::open
These routines are in the source file: frameworks/base/libs/utils/ZipFileRO.cpp
- Media:parseZipArchive-no-sig-check.patch
- Improving Android Boot Time
- Improving Android Boot Time
- How To Improving Android Boot Time
- Android BOOT Time 优化
- Android BOOT Time 优化
- Android BOOT Time 优化
- Android Boot-time Readahead
- Android Boot Time Verification SOP
- Boot Time
- Boot Time
- Android如何优化启动时间(boot time)
- 改善 WPF 应用程序启动时间(Improving WPF applications startup time)
- Likes Dislike Improving Performance in C++ with Compile Time Polymorphism
- Boot time kernel options
- Linux Boot Time
- [Repost]Boot Time
- Android piles of RuntimePermissions requests, code improving
- 7.4. Boot-Time Initialization Routines
- CSharp Tools - Compiler
- JAVA容器类解析——小白白
- 计算机科学经典著作
- 关于settimer中nidevent的使用
- 关于委托:异常{ 无法将 匿名方法 转换为类型“System.Delegate”,因为它不是委托类型 }
- Improving Android Boot Time
- c++ 命名规范(转载----养成好习惯,受用一生。不仅仅是编程)
- Android apk 逆向工程研究﹣破解 MyTV HD 機種限制手記
- Linux串口测试工具简单程序代码解析
- sun.reflect.NativeMethodAccessorImpl.invoke0
- CIRCOS教程翻译 5.7——Rule
- C++拷贝构造函数详解
- MongoDB2.4.3在Ubuntu13.04的安装
- linux爱好者入门之版本篇