Add new script for globally compiling samples

Fixes OOM problem caused by loading all samples into Gradle
simultaneously.

Test: manual
Change-Id: I756725c112e89f1f3218ee3ef55227d3b2837124
diff --git a/compileSamples.sh b/compileSamples.sh
new file mode 100755
index 0000000..b91853e
--- /dev/null
+++ b/compileSamples.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# Abort on error
+set -e
+
+if [ -z $1 ]; then
+    echo "Error: Please specify output directory";
+    exit 1
+else
+    echo "Output dir: ~/samples-out/${1}";
+fi
+
+export GRADLE_OPTS="-Xmx4096m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError"
+export JAVA_OPTS="-Xmx4096m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError"
+export _JAVA_OPTIONS="-Xmx4096m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit -XX:+HeapDumpOnOutOfMemoryError"
+
+parallel --joblog emit.log --max-procs 8 --retries 5 -a projects.txt ./emitSample.sh
+
+rsync -avzrt --delete ../../build/out/gradle/ ../../build/prebuilts/gradle
+rm -rf ~/samples-out/$1 || true
+mkdir -p ~/samples-out/$1
+mv ../../build/out/browseable/*.zip ~/samples-out/$1
+rsync -avzrt --delete ../../build/out/browseable/ ../../../development/samples/browseable
diff --git a/emitSample.sh b/emitSample.sh
new file mode 100755
index 0000000..bbc0d2e
--- /dev/null
+++ b/emitSample.sh
@@ -0,0 +1,19 @@
+# Abort on error
+set -e
+printf "\033[1;34mProcessing: ${1} ...\033[0m\n"
+pushd ${1}
+printf "\033[0;33m[Refresh]\033[0m\n"
+./gradlew refresh
+printf "\033[0;33m[Clean 1]\033[0m\n"
+find . -name build -exec rm -rf {} \; || true
+printf "\033[0;33m[EmitGradle]\033[0m\n"
+./gradlew emitGradle
+printf "\033[0;33m[Clean 2]\033[0m\n"
+find . -name build -exec rm -rf {} \; || true
+printf "\033[0;33m[EmitBrowseable]\033[0m\n"
+./gradlew emitBrowseable
+printf "\033[0;33m[Clean 3]\033[0m\n"
+find . -name build -exec rm -rf {} \; || true
+printf "\033[0;33m[EmitGradleZip]\033[0m\n"
+./gradlew emitGradleZip
+popd
diff --git a/projects.txt b/projects.txt
new file mode 100644
index 0000000..b680725
--- /dev/null
+++ b/projects.txt
@@ -0,0 +1,130 @@
+security/keystore/BasicAndroidKeyStore
+connectivity/sync/BasicSyncAdapter
+connectivity/network/NetworkConnect
+connectivity/network/BasicNetworking
+connectivity/bluetooth/BluetoothLeGatt
+content/multiuser/AppRestrictions
+content/contacts/BasicContactables
+content/documentsUi/StorageClient
+content/documentsUi/StorageProvider
+views/TextLinkify
+input/gestures/BasicGestureDetect
+input/multitouch/BasicMultitouch
+testing/ActivityInstrumentation
+media/MediaRecorder
+media/BasicMediaRouter
+media/BasicMediaDecoder
+ui/holo/BorderlessButtons
+ui/accessibility/BasicAccessibility
+ui/lists/CustomChoiceList
+ui/views/TextSwitcher
+ui/views/HorizontalPaging
+ui/actionbarcompat/ActionBarCompat-Basic
+ui/actionbarcompat/ActionBarCompat-Styled
+ui/actionbarcompat/ActionBarCompat-ListPopupMenu
+notification/BasicNotifications
+notification/CustomNotifications
+ui/actionbar/DoneBar
+ui/graphics/PdfRendererBasic
+ui/window/BasicImmersiveMode
+ui/window/AdvancedImmersiveMode
+ui/window/ImmersiveMode
+background/alarms/RepeatingAlarm
+renderScript/BasicRenderScript
+renderScript/RenderScriptIntrinsic
+ui/views/SlidingTabs/SlidingTabsBasic
+ui/views/SlidingTabs/SlidingTabsColors
+connectivity/nfc/BeamLargeFiles
+connectivity/nfc/CardEmulation
+connectivity/nfc/CardReader
+sensors/BatchStepSensor
+ui/graphics/DisplayingBitmaps
+ui/transition/BasicTransition
+ui/transition/CustomTransition
+ui/views/SwipeRefreshLayout/SwipeRefreshLayoutBasic
+ui/views/SwipeRefreshLayout/SwipeRefreshListFragment
+ui/views/SwipeRefreshLayout/SwipeRefreshMultipleViews
+media/MediaBrowserService
+media/MediaRouter
+media/MediaEffects
+admin/BasicManagedProfile
+media/Camera2Basic
+media/Camera2Video
+ui/activityscenetransition/ActivitySceneTransitionBasic
+ui/views/NavigationDrawer
+ui/views/Elevation/ElevationBasic
+ui/views/Elevation/ElevationDrag
+ui/views/Clipping/ClippingBasic
+ui/views/FloatingActionButton/FloatingActionButtonBasic
+ui/views/RevealEffect/RevealEffectBasic
+background/JobScheduler
+ui/views/RecyclerView
+ui/views/CardView
+notification/LNotifications
+notification/MessagingService
+ui/DrawableTinting
+ui/Interpolator
+media/HdrViewfinder
+ui/activitytasks/DocumentCentricApps
+ui/activitytasks/DocumentCentricRelinquishIdentity
+admin/AppRestrictionEnforcer
+admin/AppRestrictionSchema
+connectivity/bluetooth/BluetoothChat
+wearable/wear/AgendaData
+wearable/wear/DataLayer
+wearable/wear/DelayedConfirmation
+wearable/wear/ElizaChat
+wearable/wear/FindMyPhone
+wearable/wear/Flashlight
+wearable/wear/Geofencing
+wearable/wear/GridViewPager
+wearable/wear/JumpingJack
+wearable/wear/Notifications
+wearable/wear/Quiz
+wearable/wear/RecipeAssistant
+wearable/wear/SkeletonWearableApp
+wearable/wear/SpeedTracker
+wearable/wear/SynchronizedNotifications
+wearable/wear/Timer
+wearable/wear/WatchViewStub
+wearable/wear/WatchFace
+content/webview/PermissionRequest
+content/documentsUi/DirectorySelection
+system/AppUsageStatistics
+media/ScreenCapture
+admin/NfcProvisioning
+admin/DeviceOwner
+wearable/wear/XYZTouristAttractions
+connectivity/bluetooth/BluetoothAdvertisements
+wearable/wear/AlwaysOn
+security/ConfirmCredential
+security/FingerprintDialog
+system/RuntimePermissions
+system/RuntimePermissionsBasic
+wearable/wear/RuntimePermissionsWear
+notification/ActiveNotifications
+media/Camera2Raw
+content/AutoBackupForApps
+ui/window/MultiWindowPlayground
+content/documentsUi/ScopedDirectoryAccess
+security/DirectBoot
+content/DirectShare
+media/MidiScope
+media/MidiSynth
+security/AsymmetricFingerprintDialog
+wearable/wear/WearSpeakerSample
+wearable/wear/WearDrawers
+ui/window/DragAndDropAcrossApps
+wearable/wear/WearNotifications
+system/AppShortcuts
+input/keyboard/CommitContentSampleApp
+input/keyboard/CommitContentSampleIME
+content/ShareActionProvider
+wearable/wear/WearVerifyRemoteApp
+wearable/wear/WearHighBandwidthNetworking
+content/documentsUi/ContentProviderPaging
+notification/NotificationChannels
+media/PictureInPicture
+input/autofill/AutofillFramework
+views/EmojiCompat
+ui/fonts/DownloadableFonts