react-native/ReactAndroid
David Aurelio 5f31a1082b Support `!`-style fast calls for Android
Summary:
Adds support for `!`-style fast calls in Android versions < 8.

For now, this comes with the following restrictions:

- has to be enabled with a macro
- only supports native functions that return and accept primitive Java types (`jint`, `jdouble`, etc.), and `void`
- this is supposed to map to `CriticalNative` as described in https://source.android.com/devices/tech/dalvik/improvements#faster-native-methods.

Inline documentation in art: http://androidxref.com/6.0.1_r10/xref/art/runtime/jni_internal.cc#2110

Possible follow ups:
- don’t prefix when the Android runtime is too new (to avoid the warning, and future error, see http://androidxref.com/8.1.0_r33/xref/art/runtime/jni_internal.cc#2355)
- shim `CriticalNative` (see https://android.googlesource.com/platform/libcore/+/master/dalvik/src/main/java/dalvik/annotation/optimization/CriticalNative.java)
- test whether we can use `CriticalNative` at all (docs claim classes must be on bootclasspath)
- suppport `FastNative`, i.e. instance methods that can also receive and return `jobject`

Reviewed By: cjhopman

Differential Revision: D9630538

fbshipit-source-id: 0ae86c909b192429d60f8eddb15528cc38610379
2018-09-19 17:32:46 -07:00
..
libs Bump Android Support Library to 27.1.1 (#20586) 2018-08-20 18:08:52 -07:00
src Support `!`-style fast calls for Android 2018-09-19 17:32:46 -07:00
.npmignore
DevExperience.md
README.md
build.gradle Downgrade to compileSdkVersion 26 2018-09-18 08:02:50 -07:00
gradle.properties Consolidate native dependencies versions (#20742) 2018-09-13 15:49:00 -07:00
proguard-rules.pro Remove TextLayoutBuilder from ReactAndroid dependency (#20600) 2018-08-22 13:48:53 -07:00
release.gradle Update copyright headers to yearless format 2018-09-11 15:33:07 -07:00

README.md

Building React Native for Android

See the docs on the website.

Running tests

When you submit a pull request CircleCI will automatically run all tests. To run tests locally, see Testing.