This document summarizes 0xdroid, a community-developed Android distribution created by 0xlab. Key points include:
- 0xdroid is an open-source Android distribution maintained by 0xlab that also serves as a community platform for innovation.
- The goals of 0xdroid include providing a usable version quickly, designing for laziness with an easy installer, having more transparent development through issue tracking, and ensuring work can be reused through patch-based contributions.
- 0xlab contributes code to other Android projects like Android-x86 and CyanogenMod and interacts positively at the source code level to further innovation as a community.
9. 0xdroid( 引用 COSCUP 2009 的議程簡報〈 How Android
Differs from GNU/Linux? And How can we FIX it? 〉 )
快速集中工作成果,提供可用的版本
專為懶人設計 (installer)
更加透明的開發 (issue tracking)
工作成果要能被重複使用 (patch based)
http://gitorious.org/0xdroid
19. Working Model
0xlab delivers the advantages of open source
software and development
快速引入新技術,連帶社群的大量測試與回饋
建立品質控管的機制
與其他開放原始碼專案合作 : CyanogenMod,
Android-x86, ODROID, OESF, …
Cooperation with Business Partners/Customers
upon the refined Android codebase
20. Working Model from 0xdroidCyanogenMod
(Qualcomm 7k/8k)
Android-x86Rowboat
(TI OMAP3)
22. Engineer from Motorola Mobile Device
Engineer from TI/embinux
Engineer from Qualcomm
Innovation Center, Inc.
0xlab not only maintains a full open source Android distribution,
the 0xdroid, but also established a community with opened mind.
Engineer from VMWare
25. 技術挑戰
• (Software) Graphics performance in Eclair is
much slower than Donut. (measured 15%~43% drop)
• Even worse, most pieces of Android frameworks expect good
3D/OpenGL|ES hardware. Google engineers don’t care about software
implementation.
• Compatibility
• Quality of Android Frameworks & HAL
• New Android Launcher (Launcher2) only
work under resolution 800x480.
• Users won’t find something if the target resolution is smaller.
Technical Impacts
26. 0xlab’s Approaches
• Profile the whole Android and perform
aggressive optimizations dedicated to SoC
• Eliminate the overhead between Java framework and native libraries
• Implement ARMv6/ARMv7 optimized routines, SoC specific accelerations,
Android Eclair framework tweaks
• Avoid starvation of system resource
• Introduced Automated Testing Framework
• Integrated Android CTS
• Comprehensive benchmark suite
• Launcher/UI customizations
27. Comprehensive Benchmarking
• 0xlab develops a set of system
utilities for Android to perform
comprehensive system
benchmarking
• Dalvik VM performance
• OpenGL|ES performance
• Android Graphics framework performance
• I/O performance
• Connectivity performance
• Micro-benchmark: stanard C library,
system call, latency, Java invocation, ...
Consequently, 0xlab can control the system software
quality in the comprehensive ways.
43. PixelFlinger JIT
00000077:03515104_00000000_00000000
(Blends a single color into an RGB565 buffer.)
Before: 27 inst/pixel, After: 24 inst/pixel, Improvement: 12.5%
00000077:03545404_00000A01_00000000
(Blends RGBA8888 texture into an RGB565 buffer using alpha.)
Before: 30 inst/pixel, After: 27 inst/pixel, Improvement: 11.1%
00000077:03545404_00000A04_00000000
(Blends RGB565 texture into an RGB565 buffer using alpha.)
Before: 29 inst/pixel, After: 27 inst/pixel, Improvement: 7.4%
UBFX instructionSigned and Unsigned Bit Field Extract. Copies adjacent bits
from one register into the least significant bits of a second register,
and sign extends or zero extends to 32 bits.
44. PixelFlinger JIT
Code has been scheduled for A8 pipeline, specifically aiming to
allow multiplies to issue in pipeline 0, for efficient dual issue
operation.
Testing on SpriteMethodTest (http://code.google.com/p/apps-for-
android/) gives
8% improvement (12.7 vs. 13.7 fps.)
UBXTB16 instructionIntroducing the UXTB16 instruction allows removal of some masking
code, and is beneficial from a pipeline point of view - lots of UXTB16
followed by MUL sequences.
45. • Manages all audio output devices
• Handles audio routing to various outputs
• 0xlab’s involvement
– Extend the past experience about Android Audio processing
and avoid unexpected / abnormal problems
– Remove hard-coded Android implementations
Native Server: Audio Flinger
47. • User space C/C++ library layer
• Defines the interface that Android requires
hardware “drivers” to implement
• Separates the Android platform logic from the
hardware interface
• 0xlab’s involvement
• Ensure the software quality about WiFi / Bluetooth / FM including
API level
• Extra peripherals enablement on Beagleboard: Camera, Motion
Sensor, GSM modem/3G data card (full source)
• Properly handle GPL issues
HAL (Hardware Abstraction Libraries)
49. • Dalvik Virtual Machine is the core of Android
Java Framework
• DDMS (Dalvik Debug Monitor Server) could expose the systyem
information
• 0xlab’s Enhancements
• Enable Just-In-Time compiler to improve Java execution (expectation: 2x
speedup)
• System stability and security
• CTS specific code introspection
Android Runtime
51. • Activity manager
– Manage the life cycle of applications
• Content Provider
– Share data between applications
• Resource Manager
– Manager non-code resource
• Notification Manager
– Display custom alerts in the status bar
• Views System
– A rich and extensible set, which can construct UI
• 0xlab’s Involvement
– Comply with CTS
– Eliminate race condition, system server crash, memory usage, etc.
– Properly backport the fixes from Froyo branch
Application Framework
52. • OBEX: OPP, FTP profiles with UI support
– Check
http://i-miss-erin.blogspot.com/2009/10/android-bluetooth-ui-application-from.html
– Used by CyanogenMod, a famous community build used
on HTC Android devices.
Bluetooth