This enables the Dex pre-optimization for emulator-specific builds.
The idea is to speed up the initial boot sequence of an SDK AVD by
avoiding the costly on-device preopt pass that is performed otherwise
the first time the AVD is launched.
Benchmarking shows reductions in first boot time from 1m30s to 40s
on a 2.4GHz Xeon when emulating the AOSP master ToT.
Change-Id: I67a9ce9791220c202817864c6e83dc8fd9cbc027
Now that the emulator supports proper ARMv7 emulation, switch to
building all emulator-specific platform images using this instruction
set, in order to benefit from the noticeable speed boost provided by
Thumb-2 instructions.
Note that we don't build with NEON support because emulated NEON
instructions are currently slow, though they work.
IMPORTANT: You need to have the following emulator patch in your tree
in order to start these platform builds easily:
https://review.source.android.com//#change,23798
Otherwise, the alternative is to do these things:
1/ Telling the emulator to emulate an ARMv7-A CPU, instead of
an ARMv5TE one. This is normally done with "-qemu cortex-a8"
2/ Using an ARMv7-A capable kernel image, which is available and
usable with -kernel prebuilt/android-arm/kernel-qemu-armv7
Note that the emulator has a special hack that automatically enables
1/ if 2/ is being used (i.e. if the kernel image name ends with -armv7,
then emulate an ARMv7-A CPU automatically).
So in reality, only 2/ is required.
Change-Id: I5c0245ba5e6a2bc34d0d49b2c024fffd317a5eed
Switch the emulator builds to ash to make sure it still
works, in case we find that we need to go back to using ash.
Change-Id: Id5641940b63cc4225011be1c375f4c86ec4d21cc
Added an instruction to copy init.vbox_x86.rc to the output's root.
This is required to properly setup networking and other stuff inside
the emulator.
Change-Id: I84b11b048120a59109aa95d4f18d496a3c874911
Change-Id: I1fc3cb491d593d3e28f90278cfc8de5d77852932
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
Change-Id: I1fc3cb491d593d3e28f90278cfc8de5d77852932
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
This patch removes support for prelinking from the build system. By now, the
prelinker has outlived its usefulness for several reasons. Firstly, the
speedup that it afforded in the early days of Android is now nullified by the
speed of hardware, as well as by the presence of Zygote. Secondly, the space
savings that come with prelinking (measued at 17MB on a recent honeycomb
stingray build) are no longer important either. Thirdly, prelinking reduces
the effectiveness of Address-Space-Layout Randomization. Finally, since it is
not part of the gcc suite, the prelinker needs to be maintained separately.
The patch deletes apriori, soslim, lsd, isprelinked, and iself from the source
tree. It also removes the prelink map.
LOCAL_PRELINK_MODULE becomes a no-op. Individual Android.mk will get cleaned
separately. Support for prelinking will have to be removed from the recovery
code and from the dynamic loader as well.
Change-Id: I5839c9c25f7772d5183eedfe20ab924f2a7cd411
We are deprecating use of AndroidBoard.mk. To move add-radio-file to
Android.mk, cleaning INSTALLED_RADIOIMAGE_TARGET may clean the radio
target set by other Android.mks that get included before
target/board/Android.mk.
Bug: 3500660
Change-Id: Iee19c40c18f0e9ec23bad4b6ab0e600756af615a
It was defaulting to 128M which was slightly too small for all the
applications. Increasing to 150M fits the resulting image.
Change-Id: I55957c54fbdb77090487c08ed3948988621978b3
Split telephony into its own product, so that we can easily
add telephony support to any configuration without pulling
anything else. Use it from generic.
Split the "full" family between a (no-telephony) base,
a telephony version of the same (both of which can be used
as a starting point for on-device builds), and the true classic
full which is an emulator build.
Change-Id: I616d34f2a29415b8ec997173f8e893c312ade5c2
This splits the existing full.mk in two parts:
-One is the device-independent full_base.mk
-The other is the emulator-specific device.mk
This way we'll be able to inherit from full_base.mk
for on-device builds without any emulator-specific
files getting in the way.
Change-Id: Ieb1f4ed47988c8fff119ff53f1f374032da3752d
A long time ago, Android.mk in devices had the same semantics
as the current AndroidBoard.mk. This eventually caused problems
(as it didn't allow having a true Android.mk there) so we switched,
and left an error behind in case people were still using the old
semantics (i.e. having an Android.mk but no AndroidBoard.mk).
Fast forward a few years to the present: we're finding that we want
to get rid of AndroidBoard.mk, so there are devices that will have
Android.mk but not AndroidBoard.mk. As this is becoming a legitimate
case, the error for it is removed, and the include for AndroidBoard.mk
is made optional.
Change-Id: Ic683419d4aaab122259715e0112660d2a6359e91
Merge commit '85fd5030b11d412f345b0ed039aa9912c7973aea' into gingerbread-plus-aosp
* commit '85fd5030b11d412f345b0ed039aa9912c7973aea':
Revert "Fixed problem with keymap files copied to target"
Merge commit 'a160e3169e6624610fd05b2edd14b674ffb54e44' into gingerbread-plus-aosp
* commit 'a160e3169e6624610fd05b2edd14b674ffb54e44':
Fixed problem with keymap files copied to target
Moved Android.mk and keymap files except AVRCP.kl from sdk/emulator/keymaps
to build/target/board/generic. This causes the keymap files to copied into
the system image of generic and sdk products, but not into the system image
of HW products. Originally the qwerty.kl was copied to target no matter
if the target had a qwerty keyboard or not, which is the case for e.g.
the Nexus One.
Change-Id: I7cd80497632fb3b9e7ce2f3a7888d4924a355f52