Commit Graph

78 Commits

Author SHA1 Message Date
Paul McLean
84b49130ff Moving native MIDI JNI init to AndroidRuntime.cpp.
Remove (non-working) lazy init in midi.cpp

Bug: 79464070
Test: Verify function with NativeMidiTestbed app.
Change-Id: I30182d19d205b4ab952d622824f1a63ab1fef72e
2018-05-11 09:10:38 -07:00
Bo Zhu
09856135e3 Expose the JNI scrypt function in a standalone Java class so we can
use it in RecoverableKeyStore as well

Bug: 77325751
Test: It builds. No caller code yet.

Change-Id: I6ff847cff2efbd023612e51fe35be980f27f162d
2018-04-02 15:47:08 -07:00
Adam Lesinski
bebfcc46a2 Refactor AssetManager
Bug: 64071469
Test: atest CtsContentTestCases
Change-Id: Ia6856157e8813856268fba003e1e591d690cb26e
2018-02-28 19:06:48 -08:00
John Reck
9d8d99de97 Rename HardwareLayer -> TextureLayer
Update name to reflect meaning/usage

Change-Id: Iddb3621cbca147f96faa83380867baa49c382aab
Fixes: 20461288
Test: builds & boots
2018-02-21 15:55:58 -08:00
Adam Lesinski
bde1df21ad Revert "Replace AssetManager with AssetManager2 implementation"
This reverts commit 1187590da3.

Bug: 73134570
Change-Id: I59b4d714e447478ea124f086356f127f42251fb7
2018-02-09 12:43:24 -08:00
Adam Lesinski
1187590da3 Replace AssetManager with AssetManager2 implementation
Test: atest CtsContentTestCases:android.content.res.cts
Test: make libandroidfw_tests
Change-Id: I2bb6d7656d2516d371e83e541ed02f91405f6d94
2018-02-05 18:38:49 -08:00
TreeHugger Robot
490d323003 Merge "Add support for getting all available microphones characteristics." 2018-01-31 22:20:25 +00:00
jiabin
c0f4944038 Add support for getting all available microphones characteristics.
Add MicrophoneInfo to represent the microphone characteristics which
including location, orientation, frequency response, sensitivity,
channel mapping and other useful information.
Add a new API in AudioManager to query all current available
microphones.

Bug: 64038649
Test: Run test and check the print log.
Change-Id: Ie0dbfeeb84b88db426518b93c7bb83c8913bca85
2018-01-26 17:16:45 -08:00
Adam Lesinski
f7d01dd7e1 Revert "Replace AssetManager with AssetManager2 implementation"
This reverts commit dcb3c6559b.

Bug:72511998
Change-Id: I665966ca109f66f85d8665db388c71ea2303c3b8
2018-01-25 17:39:40 -08:00
Ray Essick
510225b5ef add getMetrics() apis for AudioTrack and AudioRecord
add getMetrics() method to access media.metrics for AudioTrack and
AudioRecord. Includes the code paths and the sdk documentation
for the keys and what they return.

Moves the media metrics JNI support routines from media to core
to support these audiotrack/record operations being there; still
accessible to the existing operations in the media libraries.

Bug: 72179020
Bug: 72178968
Test: enhanced CTS
Change-Id: I3f05beba31aacb9b96854f8a774cb8f669ee1625
2018-01-25 08:05:14 -08:00
TreeHugger Robot
1ccf72543d Merge changes from topic "assetmanager-refactor"
* changes:
  libandroidfw: Improve performance of AssetManager2
  libandroidfw: Add ApplyStyle and SetConfiguration benchmark
  Make idiomatic use of ApkAssets and AssetManager
  Replace AssetManager with AssetManager2 implementation
2018-01-25 02:05:30 +00:00
Adam Lesinski
dcb3c6559b Replace AssetManager with AssetManager2 implementation
Test: atest CtsContentTestCases:android.content.res.cts
Test: make libandroidfw_tests
Change-Id: I572eb13c6a4372c7f656f5912821cececd5bf3d4
2018-01-24 15:19:04 -08:00
Chenbo Feng
39937d4b8d Merge changes from topic "bpfStats" am: 6e03224697 am: e041f38289
am: cf4b551fb7

Change-Id: I672efa1221e17d0962ca5702330fc83d75fcac81
2018-01-24 05:46:52 +00:00
Adam Lesinski
7fb3831136 Revert "Replace AssetManager with AssetManager2 implementation"
This reverts commit b20a0ce59f.
2018-01-23 03:17:26 -08:00
Chenbo Feng
828f1b45fb Add bpf support for NetworkStatsFactory
Add the native method used to read the detail information of network
stats from bpf maps. The native method of NetworkStatsFactory should
choose the correct implementation to get the stats detail depending on
the kernel version. Currently the bpf result is printed as a reference
and the actual behavior of NetworkStatsFactory should not change.

Test: NetworkStatsFactory related cts test should not fail.
Bug: 30950746
Change-Id: I4715a23559b5b2306bd556cea0431f0ed172a993
2018-01-23 00:34:53 -08:00
Adam Lesinski
1f62f7c72e Merge changes from topic "assetmanager-refactor"
* changes:
  libandroidfw: Improve performance of AssetManager2
  libandroidfw: Add ApplyStyle and SetConfiguration benchmark
  Make idiomatic use of ApkAssets and AssetManager
  Replace AssetManager with AssetManager2 implementation
2018-01-23 05:28:11 +00:00
TreeHugger Robot
4ef6684925 Merge changes Ie2ec98d9,I81ce2bef
* changes:
  Make ImageDecoder return animated Drawables
  Ensure that PostProcess Canvas is released
2018-01-18 15:34:28 +00:00
Victor Hsieh
217682248b Merge "Reland: Move zygote's seccomp setup to post-fork" am: 7839672e22 am: 4249466562
am: dec688691d

Change-Id: Ibcf5eeef74b69112f568ebb1f146c2990ffed30a
2018-01-18 01:31:09 +00:00
Leon Scroggins III
671cce2605 Make ImageDecoder return animated Drawables
Bug: 63909536
Bug: 63908092
Test: TODO

If ImageDecoder.decodeDrawable is called with an animated image Source
(currently GIF or WebP), return an object of a new (hidden) Drawable
subclass. The new Drawable animates, and it implements Animatable (TODO:
implement Animatable2) so users have some control over the animation.

In addition to the normal features of Drawable, this new one supports
many of the features of ImageDecoder, including scaling, cropping and
PostProcess, which enables circle masks/rounded corners and other
arbitrary after-effects. It does *not* support decoding directly to a
Hardware Bitmap, since it cycles through frames and reuses the same
bitmap memory. But it could be made to use shared memory (TODO?).

TODO: Use a better number for the native allocation registry
TODO: Use the RenderThread to drive the animation, and remove decoding
on the UI thread.
TODO: Add support for modifying the loop count

Android.bp:
- build new AnimatedImageDrawable.cpp

AndroidRuntime.cpp:
- register new native methods

AnimatedImageDrawable.java
AnimatedImageDrawable.cpp:
- new Drawable that handles animated images

Canvas.h, SkiaCanvas.h/.cpp
- New virtual method and implementation for drawing SkAnimatedImages

RecordingCanvas.h/.cpp
- Stub implementation of drawing SkAnimatedImages

ImageDecoder.h/cpp
- Allow code sharing with AnimatedImageDrawable.cpp
  - postProcess
  - access the ImageDecoder struct

Depends on https://skia-review.googlesource.com/c/skia/+/94660 in Skia.

Change-Id: Ie2ec98d9c52deda4d439c6ef8e5dea2861bb93a3
2018-01-17 17:06:57 -05:00
Victor Hsieh
c8176efe2e Reland: Move zygote's seccomp setup to post-fork
Before this change, seccomp filter setup is as early as in zygote's main
function.  To make it possible to split app and system server's filter,
this postpone the setup to after fork.  It also starts to call app
specific and system server specific setup function.

The filter setup is done in Zygote's ForkAndSpecializeCommon.  This is
because adding a seccomp filter must be done when either the caller has
CAP_SYS_ADMIN or after the PR_SET_NO_NEW_PRIVS bit is set.  Given that
setting PR_SET_NO_NEW_PRIVS breaks SELinux domain transition
(b/71859146), this must be done after Zygote forks but before
CAP_SYS_ADMIN is droppped.

Test: (cts) -m CtsSecurityTestCases -t android.security.cts.SeccompTest
Test: no selinux denial flood in dmesg with selinux enforced
Test: debuggerd -b `pidof com.android.phone`  # logcat shows tombstoned
      received crash request
Bug: 63944145
Bug: 71859146

Change-Id: I8215c8530d3d0de504a270488f8e29635805e8b0
2018-01-17 09:30:44 -08:00
Seigo Nonaka
9d3bd08eba Rename PremeasuredText to MeasuredText
There is already MeasuredText, so renamed existing MeasuredText to
MeasuredParagraph, then renamed PremeasuredText to MeasuredText.

Bug: 67504091
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Test: bit CtsTextTestCases:*
Change-Id: Ie20bea9501b18fabb36f64d388a7851c4643d4c3
2018-01-11 11:33:32 -08:00
Adam Lesinski
b20a0ce59f Replace AssetManager with AssetManager2 implementation
Test: Existing CTS tests pass
Test: make libandroidfw_tests
Change-Id: I858f7e1d909c08273b096601136e3f28e15eb5d4
2018-01-09 16:28:58 -08:00
Chenbo Feng
71436b32e9 Merge "Use NetworkStatsService to get stats for apps" am: 693d8a2ab1 am: fa7f4015fc
am: 09a81e4da1

Change-Id: I90ce68a72afbf596e28d987e925795709d24dd52
2017-12-21 19:49:25 +00:00
Chenbo Feng
d3d9c4ed9b Use NetworkStatsService to get stats for apps
Move the native implementation of TrafficStats to NetworkStatsService
and apps need to get the NetworkStatsService binder interface from
system_server in order to get the network usage stats since boot. This
implementation can hide the detail of retrieving network traffic
information from apps and the NetworkStatsService can choose which
methoed it use to get the data depending on the kernel version of the
device.

Bug: 30950746
Test: CtsNetTestCases -t android.net.cts.TrafficStatsTest
Change-Id: I53bbefd19aa0b783b9b4b42ea4d76db3e9ec07a3
2017-12-19 19:57:44 -08:00
Leon Scroggins III
0c01dbf8f2 ImageDecoder (BitmapFactory 2.0)
Bug: 63909536
Bug: 63908092

Test: CTS: I0f36ce34c968fd7fae4d8edebabea3a421859615

One-pager:
https://docs.google.com/document/d/1IWSdXb5O9lu-Zbj7SaNWo5pS7-FHlonFnqazjnecozM/
Design doc:
https://docs.google.com/document/d/15S6DSAV4EwOuJLv29UC_9cdSGdPg3KvOJVn2EHoP3fw/

ImageDecoder is designed to streamline certain patterns of BitmapFactory
use:
- choosing sample size based on actual dimensions
- choosing a specific output size
- post-processing (e.g. for rounded corners)
- copying to HARDWARE
- decode directly to ashmem
- creating a Drawable
- use as an alpha mask
- save RAM (e.g. use RGB_565)

In addition, it will include new features:
- animated drawables (TODO)
- report failures *and* optionally create a partial image
- crop

Add PostProcess to handle post-processing. It is separate from
ImageDecoder so that it may be used in the future by other commands that
might want something similar (e.g. capturing a View).

Consolidate NinePatch code for sharing between BitmapFactory and
ImageDecoder.

Some features left out of this CL:
- Create from ContentResolver + URI
- animation
- report more info in ImageInfo
- more overloads (e.g. null OnHeaderDecodedListener)

Change-Id: Icf011dc1b97b492788e47cf51fcf8abe8e9c7b88
2017-12-19 20:22:17 +00:00
Seigo Nonaka
6f1868b813 Associate native MeasuredText with Java one.
To measure text beforehand, remove static layout dependency from
MeasuredText. Now MeasuredText can compute native measured text
by itself and StaticLayout use it for line breaking.

This CL introduce one additional JNI method call per paragraph during
line breaking but looks negligible cost.

Here is a raw performance test result on walleye-userdebug.

StaticLayoutPerfTest (median, N=100):
createRandom:          7,879,440 -> 7,964,789 (+1.08%)
createRandom Balanced: 7,835,192 -> 7,848,151 (+0.17%)

TextViewOnMeasurePerfTest (median, N=100):
measure_AtMost:       92,599,175 ->  93,027,121 (+0.47%)
measure_Exactly:      89,949,922 ->  90,439,886 (+0.54%)
measure_Unspecified: 148,645,916 -> 150,047,694 (+0.94%)

Bug: 67504091
Test: bit CtsTextTestCases:*
Test: bit CtsWidgetTestCases:*
Test: bit CtsGraphicsTestCases:*
Test: bit FrameworksCoreTests:android.text.StaticLayoutTest
Change-Id: Ie932903845645e50cfa0cb428babb31a44babc47
2017-12-05 14:56:06 -08:00
Yifan Hong
6f813c6a98 Merge "android.os.HidlSupport: add getPidIfSharable() for HALs" am: e72b6f0d31 am: 8cf7761747
am: 523665a293

Change-Id: I901c938c2c56ab1c1649c218b37d4ab131cd3c7b
2017-11-22 23:28:56 +00:00
Yifan Hong
8cf7761747 Merge "android.os.HidlSupport: add getPidIfSharable() for HALs"
am: e72b6f0d31

Change-Id: I7ea5895cdfd09786732b597be600329a334c1cb4
2017-11-22 23:06:33 +00:00
Yifan Hong
bb0bd00b00 android.os.HidlSupport: add getPidIfSharable() for HALs
... that returns PID of the process for debuggable builds.
This calls into the C++ equivalent of the function.

Test: lshal
Bug: 68992575

Change-Id: Ia177c709c6930510035cff33dc2389441a76351d
2017-11-20 11:51:07 -08:00
Cody Northrop
86cedcb583 Rootless GPU Debug
Add the ability to load GPU debug layers from the base
directory of debuggable applications.

This commit:
* Adds a new Setting to Developer options: "Enable GPU debug layers"
* Adds a new way to discover and specify GPU debug layers per app
* Moves much of the layer enabling logic into GraphicsEnvironment
* Removes the JNI component of ApplicationLoaders

Bug: 63708377
Test: Manual, CTS tests to follow
Change-Id: I7d33e9f835f49aa8d86e63bdb32037728bc8b6a4
2017-11-16 22:58:45 -07:00
Xin Li
220871a697 Merge commit '98e12851336b7db16e583f9afac63ecc97465980' from
oc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.

Change-Id: Ia7b8da4a00d215160e4a4fa40f6044208d1297b7
Merged-In: I19846d2a3ee27aecbae2367a74ee49082eea154d
2017-11-14 12:31:11 -08:00
Pirama Arumuga Nainar
7dc240134f Merge "Remove GCC-specific pragma and disabled Clang warning" am: bcf27fa6a7 am: 48a80c1a27
am: b79fefb75a

Change-Id: I0bb636dc921003239f736aa1db91d1ef8c7f8937
2017-11-14 11:26:25 +00:00
Pirama Arumuga Nainar
b79fefb75a Merge "Remove GCC-specific pragma and disabled Clang warning" am: bcf27fa6a7
am: 48a80c1a27

Change-Id: Ib564870756d7dc89c7e65c9fa50439a65cd3f115
2017-11-14 01:28:33 +00:00
Pirama Arumuga Nainar
fc9fd47585 Remove GCC-specific pragma and disabled Clang warning
Bug: http://b/68236396

Do not suppress the GCC-specific -Wunused-but-set-variable warning,
which Clang doesn't support.

Test: Build the topic
Change-Id: Ibeaaf927f44fe65f939d3d728c6fe642bcca595f
2017-11-10 15:53:00 -08:00
Narayan Kamath
ac32a352da Merge "Watchdog: Remove kernel thread dumps (aka Watchdog_N)." 2017-11-02 09:31:13 +00:00
Narayan Kamath
158c55a0d6 Watchdog: Remove kernel thread dumps (aka Watchdog_N).
It's not clear that this is useful any more - Java threads and native
threads can now be unwound through kernel frames so a regular watchdog
bite will contain kernel traces for threads attached to the runtime.

Note that the code being removed would dump traces for *all* threads,
even those not attached to the runtime but it's unclear whether we're
gaining extra given that they will be useful only if a watchdog
monitored thread is blocked on some other (non-attached) thread
performing work.

Moreover, the warning messages from Watchdog_N on user builds seems to
be causing confusion :
09-07 22:41:10.005  1000   950  1557 E Watchdog_N: Unable to open stack of tid 1474 : 13 (Permission denied)
09-07 22:41:10.006  1000   950  1557 E Watchdog_N: Unable to open stack of tid 1475 : 13 (Permission denied)

Bug: 65475549
Test: make & flash
Change-Id: Iad5022d67fecdab5f1130cf04da12b425c63ca7a
2017-10-30 19:05:24 +00:00
John Reck
f8441e6552 Switch to a fancy new queue
Test: unit tests & benchmarks pass/faster

Change-Id: I9521432172d6dd6039c5280b1265479a36a86247
2017-10-27 13:39:55 -07:00
Steven Moreland
d612d4e202 Merge "HwBinder: don't re-implement libhidl's getService" am: 992f9e7e0b am: 3147d2f429 am: cb2bde9c7f
am: e5f7f43e3a

Change-Id: I9723234007b5da01a81da79a58d778d592a74e8e
2017-10-20 04:54:37 +00:00
Steven Moreland
e5f7f43e3a Merge "HwBinder: don't re-implement libhidl's getService" am: 992f9e7e0b am: 3147d2f429
am: cb2bde9c7f

Change-Id: Ia003e53904ffc24cdb8e4d9560236f32ec3d6f7b
2017-10-20 04:40:54 +00:00
Steven Moreland
3147d2f429 Merge "HwBinder: don't re-implement libhidl's getService"
am: 992f9e7e0b

Change-Id: Icd082eca740ea5a9839dffc326c45ed9d4102a10
2017-10-20 04:23:34 +00:00
Roozbeh Pournader
a5511eb648 Merge "Replace JNI portion of AndroidBidi with calls to ICU4J" 2017-10-19 22:55:57 +00:00
Roozbeh Pournader
a15fd848cb Replace JNI portion of AndroidBidi with calls to ICU4J
We no longer need the native calls to ICU since we have ICU4J.

Fixes: 67786879
Test: bit FrameworksCoreTests:android.text.
Change-Id: Ib2ec93017000b4f0343756814ca388bd31457849
2017-10-19 11:20:46 -07:00
Steven Moreland
c4bfdefdca HwBinder: don't re-implement libhidl's getService
Rather than re-implementing getService in the JNI backend
for HIDL Java classes, we call the implementation in libhidl.

This does several good things:
- prevents frameworks/base/core from depending on PRODUCT_FULL_TREBLE
- prevents frameworks/base/core from having any user vs. userdebug differences
- ensures there are no subtle differences between C++ and Java getService
- removes essentially copy/pasted code
- unlocks the door to provide 'getService' 'tryGetService' semantics in Java
  (b/67981006)

Has the side effect of making passthrough mode kind work in Java, but
still with parcelling to transition between the ABIs:
- getRawServiceInternal returns passthrough service
- toBinder wraps that service in Bn*
- in-process binder calls are made in the same process

Test: device boots + hidl_test_java
Bug: 67974907
Change-Id: Ie459f95eb8a059f578f703d1f73ca42417cfeeb8
2017-10-19 07:33:48 +00:00
Yao Chen
d54f9dd625 Revert "Revert "Start auto-generating the stats log API.""
Test: builds successfully

This reverts commit 9319453998.

Change-Id: I22bca4a32adf86040b9d72ad5b45999aba28f586
2017-10-17 10:42:44 -07:00
Joe Onorato
9319453998 Revert "Start auto-generating the stats log API."
This reverts commit b81d1a7b9a.

Change-Id: I189684d8913ffffca42d9514ac88ea5cc4a44f05
2017-10-16 22:41:28 +00:00
Joe Onorato
b81d1a7b9a Start auto-generating the stats log API.
Both native and java bindings.

TODOs:
- Finish WorkSources.
- Clean up the package names for the protos.
- Put the protos in a more suitable location.

Test: stats-log-api-gen-test
Change-Id: Idf4022225e2be05106dbcf7de8e97a3337fc63e2
2017-10-15 20:25:19 -07:00
Seigo Nonaka
44a1df2cf3 Keep locale info in Hyphenator.
Even if the same data file is used, different hyphenation is applied
based on the locale. Now Hyphenator keeps locale and use it for
hyphenation.

Bug: 65024629
Test: bit CtsTextTestCases:android.text.cts.StaticLayoutTest
Test: bit CtsTextTestCases:android.text.cts.DynamicLayoutTest
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Change-Id: I7e2ece979181d12ac1adbede14995ec9b7b87d21
2017-09-27 18:54:03 -07:00
Derek Sollenberger
71b36912e0 Merge "Reduce overhead by combining libskia and libhwui into a single library." 2017-09-25 15:45:34 +00:00
Jiyong Park
f012107aaa Separate GraphicsEnv from libui
GraphicsEnv class is separated from libui and became a standalone lib
'libgraphicsenv'.

Bug: 38097618
Test: sailfish builds and boots
Change-Id: I7a5c273ba9238c3a6c90e1de80b9e97fc0772188
2017-09-05 16:49:31 -07:00
Chenjie Yu
671b1b5b83 add StatsLog and its jni
Test: ran existing tests. Also confirmed with logcat.
Change-Id: I038bbdbd787b1d20e008eda7edf7053875795de2
2017-08-31 14:21:28 -07:00