react-native/local-cli
Martin Konicek abb81eb270 Add support for split build per architecture
Summary:
This allows everyone to deploy significantly smaller APKs to they Play Store by building separate APKs for ARM, x86 architectures.

For a simple app, a release APK minified with Produard:
- Universal APK is **7MB**
- x86 APK is **4.6MB** (34% reduction)
- ARM APK is **3.7MB** (47% reduction)

Created a sample project, uncommented `// include "armeabi-v7a", 'x86'`:

    cd android
    ./gradlew assembleDebug

Three APKs were created, unzipped each: one has only x86 binaries,
one has ARM binaries, one has both.

    ./gradlew assembleRelease

Three APKs were created, JS bundle is correcly added to assets.

    react-native run-android

The correct APK is installed on the emulator and the app runs fine
(Gradle output: "Installing APK 'app-x86-debug.apk'").

With the line commented out the behavior is exactly the same as before,
only one universal APK is built.

Checked that version codes are set correctly as described in
http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
http://developer.android.com/intl/ru/google/play/publishing/multiple-apks.html

Closes https://github.com/facebook/react-native/pull/5160

Reviewed By: svcscm

Differential Revision: D2811443

Pulled By: mkonicek

fb-gh-sync-id: 97b22b9cd567e53b8adac36669b90768458b7a55
2016-01-07 12:03:06 -08:00
..
__mocks__ Fix more tests 2015-09-16 13:05:30 -07:00
__tests__ Temporarily disable cli tests 2015-11-12 07:05:01 -08:00
bundle Load assets from same folder as JSbundle (Android) 2016-01-06 08:46:35 -08:00
dependencies getTransformOptionsModulePath 2015-12-24 01:02:30 -08:00
generate Revert "Add folders to attempt to unblock sync" 2015-10-26 22:48:10 +00:00
generator Update templates to ES2015 2015-12-25 02:17:30 -08:00
generator-android Add support for split build per architecture 2016-01-07 12:03:06 -08:00
generator-ios Added `react-native run-ios` 2016-01-05 17:18:49 -08:00
library Introduce react-native link 2015-10-27 11:22:28 -07:00
runAndroid fix run-android looking for packager in wrong place 2015-11-06 12:05:28 -08:00
runIOS Added `react-native run-ios` 2016-01-05 17:18:49 -08:00
server Skip file removal on HMR interface 2016-01-07 12:02:47 -08:00
upgrade Add warnings while upgrading RN with `react-native upgrade` 2016-01-05 09:58:28 -08:00
util Revert "Add folders to attempt to unblock sync" 2015-10-26 22:48:10 +00:00
cli.js Added `react-native run-ios` 2016-01-05 17:18:49 -08:00
default.config.js More descriptive comment in default.config.js 2015-11-12 07:43:25 -08:00
generate-android.js Add license headers to local-cli 2015-10-20 09:55:21 -07:00
generator-utils.js Add license headers to local-cli 2015-10-20 09:55:21 -07:00
setup_env.bat Fix comments on .bat file 2015-10-28 21:36:07 -04:00
setup_env.sh Start packager through cli 2015-10-21 03:03:59 -07:00
wrong-react-native.js Return non-zero exit code from wrong-react-native 2016-01-05 15:22:59 -08:00