Allows grouping of classes with dirty static fields to be grouped
together in the image to have fewer dirty pages.
Bug: 62554875
Test: mm test-art-host
Change-Id: I6a36120235ee4f47bc1cb1ddc4413cfc561cb9a7
libnativehelper exports headers under nativehelper. These were
available before incorrectly as global headers in order to give
access to jni.h.
Test: modules using frameworks/base find headers
Bug: 63762847
Change-Id: I0f9f231acdebe460f279135462f43d3e32eff64d
frameworks/base/core/jni/android_view_MotionEvent.cpp:383:12: warning:
Potential leak of memory pointed to by 'event'
frameworks/base/core/jni/AndroidRuntime.cpp:975:20: warning: Null passed
to a callee that requires a non-null 1st parameter
For the former, it was surprising to me that the analyzer couldn't
figure out that `event == nativePtr` for the latter check. Filed
https://bugs.llvm.org/show_bug.cgi?id=33540 upstream about it.
For the latter, it was complaining because `className` could be NULL
(more precisely, we have a NULL check at the top of the function it's
declared in, so NULL is presumably a valid value).
Bug: None
Test: Ran mma; complaints are gone.
Change-Id: I26a91ae25934f95acbfdbe4f3641e081fbc66c6d
Some HALs, like a.h.graphics.mapper, are always passthrough and are
used by nearly all app processes. Preload those in Zygote to save app
startup time and share more pages between processes. This has the side
effect of also preloading a bunch of HIDL-related system and vndk
libraries that would also otherwise be loaded independently by every
app.
An earlier attempt at this change tried to preload the HAL via a
static initializer in libui.so (which is already preloaded, and which
is the immediate client of the HAL). But several other non-Zygote
processes also use libui.so, and didn't have SELinux permission to
access the device nodes used by the HAL. This version uses an explicit
call from Zygote to preload the HAL, instead of doing it implicitly.
Bug: 62353585
Test: check that a.h.graphics.mapper is in /proc/`pid zygote64`/maps
Change-Id: I42405c3b6cdf1ae412039140d656d15a6d4f8882
(cherry picked from commit 1fe1dc0131)
Some HALs, like a.h.graphics.mapper, are always passthrough and are
used by nearly all app processes. Preload those in Zygote to save app
startup time and share more pages between processes. This has the side
effect of also preloading a bunch of HIDL-related system and vndk
libraries that would also otherwise be loaded independently by every
app.
An earlier attempt at this change tried to preload the HAL via a
static initializer in libui.so (which is already preloaded, and which
is the immediate client of the HAL). But several other non-Zygote
processes also use libui.so, and didn't have SELinux permission to
access the device nodes used by the HAL. This version uses an explicit
call from Zygote to preload the HAL, instead of doing it implicitly.
Bug: 62353585
Test: check that a.h.graphics.mapper is in /proc/`pid zygote64`/maps
Change-Id: I42405c3b6cdf1ae412039140d656d15a6d4f8882
Add an attribute android:classLoader which can be set to the name
of the classloader the base or split wishes to use. For now, this can
only be set to "dalvik.system.PathClassLoader" or
"dalvik.system.DelegateLastClassLoader". The current implementation
only allows the classloader to exist in the boot classpath but that
restriction can be loosened in a future change if necessary.
Test: cts-tradefed run cts-dev -m CtsAppSecurityHostTestCases
Bug: 36044779
Change-Id: I5a51f7aa0c8c4c398d2f46129eb06785cc8e3c3f
If the boot profile file exists, its passed to the runtime as an
image compiler option. Also pass speed-profile for this case.
Bug: 37966211
Test: make, flash, and look at logcat during boot
(cherry picked from commit f99e70e934)
Change-Id: Ia09ff0200186382e45151b7cabb53016f8e0aa3f
If the boot profile file exists, its passed to the runtime as an
image compiler option. Also pass speed-profile for this case.
Bug: 37966211
Test: make, flash, and look at logcat during boot
Change-Id: I72e16eb19df390eea6304c0419ae332d79f41409
SharedMemory is parcelable and AIDL friendly
and exposes cool things like dropping write permissions
that are useful for shared memory to have.
Also exposes getFileDescriptor() on MemoryFile
since that was necessary to use MemoryFile
with IPC previously and there are a sizeable
number of reflections that access it, so just make
it public.
Test: SharedMemory CTS tests pass
Change-Id: I71a322abf2eb55267d7299a8e41f847339af8b08
The property is dalvik.vm.hot-startup-method-samples, setting this
controls how many startup samples are required before methods are
marked as hot in the profile.
Test: adb shell setprop dalvik.vm.hot-startup-method-samples 12
Test: adb shell setprop dalvik.vm.extra-opts -verbose:profiler
Test: adb logcat | grep Profile
Bug: 36457259
(cherry picked from commit 5eee004b92)
Change-Id: Ibf8075aafc6e5bd2ba10385973b26faee3d807df
The property is dalvik.vm.hot-startup-method-samples, setting this
controls how many startup samples are required before methods are
marked as hot in the profile.
Test: adb shell setprop dalvik.vm.hot-startup-method-samples 12
Test: adb shell setprop dalvik.vm.extra-opts -verbose:profiler
Test: adb logcat | grep Profile
Bug: 36457259
Change-Id: If8e37a160802a00fb44f0c243fb358df02104741
We introduce a new property dalvik.vm.stack-trace-dir that indicates
that we're using one trace file per dump. The runtime does not need
to know what the directory is, since it will communicate with
tombstoned in order to obtain a file descriptor to which it will write
its traces. In this change, we set the -Xtombstonedtraces flag whenever
dalvik.vm.stack-trace-dir is set.
Test: Manual
Bug: 32064548
Change-Id: I05984e91658250ad8379b821ca31649f13868580
For more information, see https://source.android.com/source/code-style#log-sparingly
Bug: 37252687
Test: development/tools/logblame/app_switch_test
Test: development/tools/logblame/power_toggle_test
Test: development/tools/logblame/medium_idle_test
Change-Id: Ie2f6ef33df7b6c1ea976a8180945651ac9482976
Also fix a merge issue with duplicated code.
bug:34715556
Test: build and boot aosp bullhead
(cherry picked from commit be7b0d18a7)
Change-Id: I2c716427ac10090a694ce933421e4924748b0c71
This is the Java API for ::android::vintf::RuntimeInfo.
This will be used by CTS for device info report purposes.
Bug: 28656227
Test: cts-tradefed run cts -m CtsEdiHostTestCases --skip-preconditions
Change-Id: Id87c95a17e77d7ec1794a6f850de97edf9ae892d
This is the Java API for ::android::vintf::RuntimeInfo.
This will be used by CTS for device info report purposes.
Bug: 28656227
Test: cts-tradefed run cts -m CtsEdiHostTestCases --skip-preconditions
Change-Id: Id87c95a17e77d7ec1794a6f850de97edf9ae892d
Fall back to dalvik.vm.stack-trace-file if it doesn't exist.
Test: make
Test: manual testing with the property set / empty
Bug: 32064548
Change-Id: I23b4c7b26eda5d0fcaf6b976bf1e973a872555c7
android.os.VintfObject has two methods:
- report: return device info that can be reported to OTA server
- verify: verify that metadata for a given OTA package is
compatible.
Test: pass
Test: adb shell am instrument -w -e class android.os.VintfObjectTest \
com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Bug: 36814503
Change-Id: Iff8fae289eec8ae9cfc327d0d0d36a1cdd5e6800
android.os.VintfObject has two methods:
- report: return device info that can be reported to OTA server
- verify: verify that metadata for a given OTA package is
compatible.
Test: pass
Test: adb shell am instrument -w -e class android.os.VintfObjectTest \
com.android.frameworks.coretests/android.support.test.runner.AndroidJUnitRunner
Bug: 36814503
Change-Id: Iff8fae289eec8ae9cfc327d0d0d36a1cdd5e6800
Move methods where they belong.
Test: m
Test: Device boots
Merged-In: I805c6493078e960ff5b70d84dd93d2da6c7aa797
Change-Id: I805c6493078e960ff5b70d84dd93d2da6c7aa797