mirror of
				https://gitcode.com/gh_mirrors/re/react-native-pushy.git
				synced 2025-10-31 21:33:12 +08:00 
			
		
		
		
	example
This commit is contained in:
		
							
								
								
									
										125
									
								
								Example/testHotUpdate/android/app/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								Example/testHotUpdate/android/app/build.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| apply plugin: "com.android.application" | ||||
|  | ||||
| import com.android.build.OutputFile | ||||
|  | ||||
| /** | ||||
|  * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets | ||||
|  * and bundleReleaseJsAndAssets). | ||||
|  * These basically call `react-native bundle` with the correct arguments during the Android build | ||||
|  * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the | ||||
|  * bundle directly from the development server. Below you can see all the possible configurations | ||||
|  * and their defaults. If you decide to add a configuration block, make sure to add it before the | ||||
|  * `apply from: "react.gradle"` line. | ||||
|  * | ||||
|  * project.ext.react = [ | ||||
|  *   // the name of the generated asset file containing your JS bundle | ||||
|  *   bundleAssetName: "index.android.bundle", | ||||
|  * | ||||
|  *   // the entry file for bundle generation | ||||
|  *   entryFile: "index.android.js", | ||||
|  * | ||||
|  *   // whether to bundle JS and assets in debug mode | ||||
|  *   bundleInDebug: false, | ||||
|  * | ||||
|  *   // whether to bundle JS and assets in release mode | ||||
|  *   bundleInRelease: true, | ||||
|  * | ||||
|  *   // whether to bundle JS and assets in another build variant (if configured). | ||||
|  *   // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants | ||||
|  *   // The configuration property is in the format 'bundleIn${productFlavor}${buildType}' | ||||
|  *   // bundleInFreeDebug: true, | ||||
|  *   // bundleInPaidRelease: true, | ||||
|  *   // bundleInBeta: true, | ||||
|  * | ||||
|  *   // the root of your project, i.e. where "package.json" lives | ||||
|  *   root: "../../", | ||||
|  * | ||||
|  *   // where to put the JS bundle asset in debug mode | ||||
|  *   jsBundleDirDebug: "$buildDir/intermediates/assets/debug", | ||||
|  * | ||||
|  *   // where to put the JS bundle asset in release mode | ||||
|  *   jsBundleDirRelease: "$buildDir/intermediates/assets/release", | ||||
|  * | ||||
|  *   // where to put drawable resources / React Native assets, e.g. the ones you use via | ||||
|  *   // require('./image.png')), in debug mode | ||||
|  *   resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", | ||||
|  * | ||||
|  *   // where to put drawable resources / React Native assets, e.g. the ones you use via | ||||
|  *   // require('./image.png')), in release mode | ||||
|  *   resourcesDirRelease: "$buildDir/intermediates/res/merged/release", | ||||
|  * | ||||
|  *   // by default the gradle tasks are skipped if none of the JS files or assets change; this means | ||||
|  *   // that we don't look at files in android/ or ios/ to determine whether the tasks are up to | ||||
|  *   // date; if you have any other folders that you want to ignore for performance reasons (gradle | ||||
|  *   // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ | ||||
|  *   // for example, you might want to remove it from here. | ||||
|  *   inputExcludes: ["android/**", "ios/**"] | ||||
|  * ] | ||||
|  */ | ||||
|  | ||||
| apply from: "react.gradle" | ||||
|  | ||||
| /** | ||||
|  * Set this to true to create three separate APKs instead of one: | ||||
|  *   - A universal APK that works on all devices | ||||
|  *   - An APK that only works on ARM devices | ||||
|  *   - An APK that only works on x86 devices | ||||
|  * The advantage is the size of the APK is reduced by about 4MB. | ||||
|  * Upload all the APKs to the Play Store and people will download | ||||
|  * the correct one based on the CPU architecture of their device. | ||||
|  */ | ||||
| def enableSeparateBuildPerCPUArchitecture = false | ||||
|  | ||||
| /** | ||||
|  * Run Proguard to shrink the Java bytecode in release builds. | ||||
|  */ | ||||
| def enableProguardInReleaseBuilds = false | ||||
|  | ||||
| android { | ||||
|     compileSdkVersion 23 | ||||
|     buildToolsVersion "23.0.1" | ||||
|  | ||||
|     defaultConfig { | ||||
|         applicationId "com.testhotupdate" | ||||
|         minSdkVersion 16 | ||||
|         targetSdkVersion 22 | ||||
|         versionCode 1 | ||||
|         versionName "1.0" | ||||
|         ndk { | ||||
|             abiFilters "armeabi-v7a", "x86" | ||||
|         } | ||||
|     } | ||||
|     splits { | ||||
|         abi { | ||||
|             enable enableSeparateBuildPerCPUArchitecture | ||||
|             universalApk false | ||||
|             reset() | ||||
|             include "armeabi-v7a", "x86" | ||||
|         } | ||||
|     } | ||||
|     buildTypes { | ||||
|         release { | ||||
|             minifyEnabled enableProguardInReleaseBuilds | ||||
|             proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" | ||||
|         } | ||||
|     } | ||||
|     // applicationVariants are e.g. debug, release | ||||
|     applicationVariants.all { variant -> | ||||
|         variant.outputs.each { output -> | ||||
|             // For each separate APK per architecture, set a unique version code as described here: | ||||
|             // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits | ||||
|             def versionCodes = ["armeabi-v7a":1, "x86":2] | ||||
|             def abi = output.getFilter(OutputFile.ABI) | ||||
|             if (abi != null) {  // null for the universal-debug, universal-release variants | ||||
|                 output.versionCodeOverride = | ||||
|                         versionCodes.get(abi) * 1048576 + defaultConfig.versionCode | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| dependencies { | ||||
|     compile fileTree(dir: "libs", include: ["*.jar"]) | ||||
|     compile "com.android.support:appcompat-v7:23.0.1" | ||||
|     compile "com.facebook.react:react-native:0.20.+" | ||||
| } | ||||
							
								
								
									
										67
									
								
								Example/testHotUpdate/android/app/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								Example/testHotUpdate/android/app/proguard-rules.pro
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,67 @@ | ||||
| # Add project specific ProGuard rules here. | ||||
| # By default, the flags in this file are appended to flags specified | ||||
| # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt | ||||
| # You can edit the include path and order by changing the proguardFiles | ||||
| # directive in build.gradle. | ||||
| # | ||||
| # For more details, see | ||||
| #   http://developer.android.com/guide/developing/tools/proguard.html | ||||
|  | ||||
| # Add any project specific keep options here: | ||||
|  | ||||
| # If your project uses WebView with JS, uncomment the following | ||||
| # and specify the fully qualified class name to the JavaScript interface | ||||
| # class: | ||||
| #-keepclassmembers class fqcn.of.javascript.interface.for.webview { | ||||
| #   public *; | ||||
| #} | ||||
|  | ||||
| # Disabling obfuscation is useful if you collect stack traces from production crashes | ||||
| # (unless you are using a system that supports de-obfuscate the stack traces). | ||||
| -dontobfuscate | ||||
|  | ||||
| # React Native | ||||
|  | ||||
| # Keep our interfaces so they can be used by other ProGuard rules. | ||||
| # See http://sourceforge.net/p/proguard/bugs/466/ | ||||
| -keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip | ||||
| -keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters | ||||
|  | ||||
| # Do not strip any method/class that is annotated with @DoNotStrip | ||||
| -keep @com.facebook.proguard.annotations.DoNotStrip class * | ||||
| -keepclassmembers class * { | ||||
|     @com.facebook.proguard.annotations.DoNotStrip *; | ||||
| } | ||||
|  | ||||
| -keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { | ||||
|   void set*(***); | ||||
|   *** get*(); | ||||
| } | ||||
|  | ||||
| -keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } | ||||
| -keep class * extends com.facebook.react.bridge.NativeModule { *; } | ||||
| -keepclassmembers,includedescriptorclasses class * { native <methods>; } | ||||
| -keepclassmembers class *  { @com.facebook.react.uimanager.UIProp <fields>; } | ||||
| -keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactProp <methods>; } | ||||
| -keepclassmembers class *  { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; } | ||||
|  | ||||
| -dontwarn com.facebook.react.** | ||||
|  | ||||
| # okhttp | ||||
|  | ||||
| -keepattributes Signature | ||||
| -keepattributes *Annotation* | ||||
| -keep class com.squareup.okhttp.** { *; } | ||||
| -keep interface com.squareup.okhttp.** { *; } | ||||
| -dontwarn com.squareup.okhttp.** | ||||
|  | ||||
| # okio | ||||
|  | ||||
| -keep class sun.misc.Unsafe { *; } | ||||
| -dontwarn java.nio.file.* | ||||
| -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement | ||||
| -dontwarn okio.** | ||||
|  | ||||
| # stetho | ||||
|  | ||||
| -dontwarn com.facebook.stetho.** | ||||
							
								
								
									
										96
									
								
								Example/testHotUpdate/android/app/react.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								Example/testHotUpdate/android/app/react.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| import org.apache.tools.ant.taskdefs.condition.Os | ||||
|  | ||||
| def config = project.hasProperty("react") ? project.react : []; | ||||
|  | ||||
| def bundleAssetName = config.bundleAssetName ?: "index.android.bundle" | ||||
| def entryFile = config.entryFile ?: "index.android.js" | ||||
|  | ||||
| // because elvis operator | ||||
| def elvisFile(thing) { | ||||
|     return thing ? file(thing) : null; | ||||
| } | ||||
|  | ||||
| def reactRoot = elvisFile(config.root) ?: file("../../") | ||||
| def inputExcludes = config.inputExcludes ?: ["android/**", "ios/**"] | ||||
|  | ||||
| void runBefore(String dependentTaskName, Task task) { | ||||
|     Task dependentTask = tasks.findByPath(dependentTaskName); | ||||
|     if (dependentTask != null) { | ||||
|         dependentTask.dependsOn task | ||||
|     } | ||||
| } | ||||
|  | ||||
| gradle.projectsEvaluated { | ||||
|     // Grab all build types and product flavors | ||||
|     def buildTypes = android.buildTypes.collect { type -> type.name } | ||||
|     def productFlavors = android.productFlavors.collect { flavor -> flavor.name } | ||||
|  | ||||
|     // When no product flavors defined, use empty | ||||
|     if (!productFlavors) productFlavors.add('') | ||||
|  | ||||
|     productFlavors.each { productFlavorName -> | ||||
|         buildTypes.each { buildTypeName -> | ||||
|             // Create variant and source names | ||||
|             def sourceName = "${buildTypeName}" | ||||
|             def targetName = "${sourceName.capitalize()}" | ||||
|             if (productFlavorName) { | ||||
|                 sourceName = "${productFlavorName}${targetName}" | ||||
|             } | ||||
|  | ||||
|             // React js bundle directories | ||||
|             def jsBundleDirConfigName = "jsBundleDir${targetName}" | ||||
|             def jsBundleDir = elvisFile(config."$jsBundleDirConfigName") ?: | ||||
|                     file("$buildDir/intermediates/assets/${sourceName}") | ||||
|  | ||||
|             def resourcesDirConfigName = "jsBundleDir${targetName}" | ||||
|             def resourcesDir = elvisFile(config."${resourcesDirConfigName}") ?: | ||||
|                     file("$buildDir/intermediates/res/merged/${sourceName}") | ||||
|             def jsBundleFile = file("$jsBundleDir/$bundleAssetName") | ||||
|  | ||||
|             // Bundle task name for variant | ||||
|             def bundleJsAndAssetsTaskName = "bundle${targetName}JsAndAssets" | ||||
|  | ||||
|             def currentBundleTask = tasks.create( | ||||
|                     name: bundleJsAndAssetsTaskName, | ||||
|                     type: Exec) { | ||||
|                 group = "react" | ||||
|                 description = "bundle JS and assets for ${targetName}." | ||||
|  | ||||
|                 // Create dirs if they are not there (e.g. the "clean" task just ran) | ||||
|                 doFirst { | ||||
|                     jsBundleDir.mkdirs() | ||||
|                     resourcesDir.mkdirs() | ||||
|                 } | ||||
|  | ||||
|                 // Set up inputs and outputs so gradle can cache the result | ||||
|                 inputs.files fileTree(dir: reactRoot, excludes: inputExcludes) | ||||
|                 outputs.dir jsBundleDir | ||||
|                 outputs.dir resourcesDir | ||||
|  | ||||
|                 // Set up the call to the react-native cli | ||||
|                 workingDir reactRoot | ||||
|  | ||||
|                 // Set up dev mode | ||||
|                 def devEnabled = !targetName.toLowerCase().contains("release") | ||||
|                 if (Os.isFamily(Os.FAMILY_WINDOWS)) { | ||||
|                     commandLine "cmd", "/c", "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}", | ||||
|                             "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir | ||||
|                 } else { | ||||
|                     commandLine "react-native", "bundle", "--platform", "android", "--dev", "${devEnabled}", | ||||
|                             "--entry-file", entryFile, "--bundle-output", jsBundleFile, "--assets-dest", resourcesDir | ||||
|                 } | ||||
|  | ||||
|                 enabled config."bundleIn${targetName}" ?: targetName.toLowerCase().contains("release") | ||||
|             } | ||||
|  | ||||
|             // Hook bundle${productFlavor}${buildType}JsAndAssets into the android build process | ||||
|             currentBundleTask.dependsOn("merge${targetName}Resources") | ||||
|             currentBundleTask.dependsOn("merge${targetName}Assets") | ||||
|  | ||||
|             runBefore("processArmeabi-v7a${targetName}Resources", currentBundleTask) | ||||
|             runBefore("processX86${targetName}Resources", currentBundleTask) | ||||
|             runBefore("processUniversal${targetName}Resources", currentBundleTask) | ||||
|             runBefore("process${targetName}Resources", currentBundleTask) | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,23 @@ | ||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||
|     package="com.testhotupdate"> | ||||
|  | ||||
|     <uses-permission android:name="android.permission.INTERNET" /> | ||||
|  | ||||
|     <application | ||||
|       android:allowBackup="true" | ||||
|       android:label="@string/app_name" | ||||
|       android:icon="@mipmap/ic_launcher" | ||||
|       android:theme="@style/AppTheme"> | ||||
|       <activity | ||||
|         android:name=".MainActivity" | ||||
|         android:label="@string/app_name" | ||||
|         android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> | ||||
|         <intent-filter> | ||||
|             <action android:name="android.intent.action.MAIN" /> | ||||
|             <category android:name="android.intent.category.LAUNCHER" /> | ||||
|         </intent-filter> | ||||
|       </activity> | ||||
|       <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> | ||||
|     </application> | ||||
|  | ||||
| </manifest> | ||||
| @@ -0,0 +1,40 @@ | ||||
| package com.testhotupdate; | ||||
|  | ||||
| import com.facebook.react.ReactActivity; | ||||
| import com.facebook.react.ReactPackage; | ||||
| import com.facebook.react.shell.MainReactPackage; | ||||
|  | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
|  | ||||
| public class MainActivity extends ReactActivity { | ||||
|  | ||||
|     /** | ||||
|      * Returns the name of the main component registered from JavaScript. | ||||
|      * This is used to schedule rendering of the component. | ||||
|      */ | ||||
|     @Override | ||||
|     protected String getMainComponentName() { | ||||
|         return "testHotUpdate"; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Returns whether dev mode should be enabled. | ||||
|      * This enables e.g. the dev menu. | ||||
|      */ | ||||
|     @Override | ||||
|     protected boolean getUseDeveloperSupport() { | ||||
|         return BuildConfig.DEBUG; | ||||
|     } | ||||
|  | ||||
|    /** | ||||
|    * A list of packages used by the app. If the app uses additional views | ||||
|    * or modules besides the default ones, add more packages here. | ||||
|    */ | ||||
|     @Override | ||||
|     protected List<ReactPackage> getPackages() { | ||||
|       return Arrays.<ReactPackage>asList( | ||||
|         new MainReactPackage() | ||||
|       ); | ||||
|     } | ||||
| } | ||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.3 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.2 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 4.7 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 7.5 KiB | 
| @@ -0,0 +1,3 @@ | ||||
| <resources> | ||||
|     <string name="app_name">testHotUpdate</string> | ||||
| </resources> | ||||
| @@ -0,0 +1,8 @@ | ||||
| <resources> | ||||
|  | ||||
|     <!-- Base application theme. --> | ||||
|     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> | ||||
|         <!-- Customize your theme here. --> | ||||
|     </style> | ||||
|  | ||||
| </resources> | ||||
							
								
								
									
										20
									
								
								Example/testHotUpdate/android/build.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Example/testHotUpdate/android/build.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | ||||
|  | ||||
| buildscript { | ||||
|     repositories { | ||||
|         jcenter() | ||||
|     } | ||||
|     dependencies { | ||||
|         classpath 'com.android.tools.build:gradle:1.3.1' | ||||
|  | ||||
|         // NOTE: Do not place your application dependencies here; they belong | ||||
|         // in the individual module build.gradle files | ||||
|     } | ||||
| } | ||||
|  | ||||
| allprojects { | ||||
|     repositories { | ||||
|         mavenLocal() | ||||
|         jcenter() | ||||
|     } | ||||
| } | ||||
							
								
								
									
										20
									
								
								Example/testHotUpdate/android/gradle.properties
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								Example/testHotUpdate/android/gradle.properties
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| # Project-wide Gradle settings. | ||||
|  | ||||
| # IDE (e.g. Android Studio) users: | ||||
| # Gradle settings configured through the IDE *will override* | ||||
| # any settings specified in this file. | ||||
|  | ||||
| # For more details on how to configure your build environment visit | ||||
| # http://www.gradle.org/docs/current/userguide/build_environment.html | ||||
|  | ||||
| # Specifies the JVM arguments used for the daemon process. | ||||
| # The setting is particularly useful for tweaking memory settings. | ||||
| # Default value: -Xmx10248m -XX:MaxPermSize=256m | ||||
| # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 | ||||
|  | ||||
| # When configured, Gradle will run in incubating parallel mode. | ||||
| # This option should only be used with decoupled projects. More details, visit | ||||
| # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects | ||||
| # org.gradle.parallel=true | ||||
|  | ||||
| android.useDeprecatedNdk=true | ||||
							
								
								
									
										
											BIN
										
									
								
								Example/testHotUpdate/android/gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Example/testHotUpdate/android/gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										5
									
								
								Example/testHotUpdate/android/gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								Example/testHotUpdate/android/gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| distributionBase=GRADLE_USER_HOME | ||||
| distributionPath=wrapper/dists | ||||
| zipStoreBase=GRADLE_USER_HOME | ||||
| zipStorePath=wrapper/dists | ||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip | ||||
							
								
								
									
										164
									
								
								Example/testHotUpdate/android/gradlew
									
									
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										164
									
								
								Example/testHotUpdate/android/gradlew
									
									
									
									
										vendored
									
									
										Executable file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| #!/usr/bin/env bash | ||||
|  | ||||
| ############################################################################## | ||||
| ## | ||||
| ##  Gradle start up script for UN*X | ||||
| ## | ||||
| ############################################################################## | ||||
|  | ||||
| # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | ||||
| DEFAULT_JVM_OPTS="" | ||||
|  | ||||
| APP_NAME="Gradle" | ||||
| APP_BASE_NAME=`basename "$0"` | ||||
|  | ||||
| # Use the maximum available, or set MAX_FD != -1 to use that value. | ||||
| MAX_FD="maximum" | ||||
|  | ||||
| warn ( ) { | ||||
|     echo "$*" | ||||
| } | ||||
|  | ||||
| die ( ) { | ||||
|     echo | ||||
|     echo "$*" | ||||
|     echo | ||||
|     exit 1 | ||||
| } | ||||
|  | ||||
| # OS specific support (must be 'true' or 'false'). | ||||
| cygwin=false | ||||
| msys=false | ||||
| darwin=false | ||||
| case "`uname`" in | ||||
|   CYGWIN* ) | ||||
|     cygwin=true | ||||
|     ;; | ||||
|   Darwin* ) | ||||
|     darwin=true | ||||
|     ;; | ||||
|   MINGW* ) | ||||
|     msys=true | ||||
|     ;; | ||||
| esac | ||||
|  | ||||
| # For Cygwin, ensure paths are in UNIX format before anything is touched. | ||||
| if $cygwin ; then | ||||
|     [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` | ||||
| fi | ||||
|  | ||||
| # Attempt to set APP_HOME | ||||
| # Resolve links: $0 may be a link | ||||
| PRG="$0" | ||||
| # Need this for relative symlinks. | ||||
| while [ -h "$PRG" ] ; do | ||||
|     ls=`ls -ld "$PRG"` | ||||
|     link=`expr "$ls" : '.*-> \(.*\)$'` | ||||
|     if expr "$link" : '/.*' > /dev/null; then | ||||
|         PRG="$link" | ||||
|     else | ||||
|         PRG=`dirname "$PRG"`"/$link" | ||||
|     fi | ||||
| done | ||||
| SAVED="`pwd`" | ||||
| cd "`dirname \"$PRG\"`/" >&- | ||||
| APP_HOME="`pwd -P`" | ||||
| cd "$SAVED" >&- | ||||
|  | ||||
| CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar | ||||
|  | ||||
| # Determine the Java command to use to start the JVM. | ||||
| if [ -n "$JAVA_HOME" ] ; then | ||||
|     if [ -x "$JAVA_HOME/jre/sh/java" ] ; then | ||||
|         # IBM's JDK on AIX uses strange locations for the executables | ||||
|         JAVACMD="$JAVA_HOME/jre/sh/java" | ||||
|     else | ||||
|         JAVACMD="$JAVA_HOME/bin/java" | ||||
|     fi | ||||
|     if [ ! -x "$JAVACMD" ] ; then | ||||
|         die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME | ||||
|  | ||||
| Please set the JAVA_HOME variable in your environment to match the | ||||
| location of your Java installation." | ||||
|     fi | ||||
| else | ||||
|     JAVACMD="java" | ||||
|     which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | ||||
|  | ||||
| Please set the JAVA_HOME variable in your environment to match the | ||||
| location of your Java installation." | ||||
| fi | ||||
|  | ||||
| # Increase the maximum file descriptors if we can. | ||||
| if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then | ||||
|     MAX_FD_LIMIT=`ulimit -H -n` | ||||
|     if [ $? -eq 0 ] ; then | ||||
|         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then | ||||
|             MAX_FD="$MAX_FD_LIMIT" | ||||
|         fi | ||||
|         ulimit -n $MAX_FD | ||||
|         if [ $? -ne 0 ] ; then | ||||
|             warn "Could not set maximum file descriptor limit: $MAX_FD" | ||||
|         fi | ||||
|     else | ||||
|         warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" | ||||
|     fi | ||||
| fi | ||||
|  | ||||
| # For Darwin, add options to specify how the application appears in the dock | ||||
| if $darwin; then | ||||
|     GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" | ||||
| fi | ||||
|  | ||||
| # For Cygwin, switch paths to Windows format before running java | ||||
| if $cygwin ; then | ||||
|     APP_HOME=`cygpath --path --mixed "$APP_HOME"` | ||||
|     CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` | ||||
|  | ||||
|     # We build the pattern for arguments to be converted via cygpath | ||||
|     ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` | ||||
|     SEP="" | ||||
|     for dir in $ROOTDIRSRAW ; do | ||||
|         ROOTDIRS="$ROOTDIRS$SEP$dir" | ||||
|         SEP="|" | ||||
|     done | ||||
|     OURCYGPATTERN="(^($ROOTDIRS))" | ||||
|     # Add a user-defined pattern to the cygpath arguments | ||||
|     if [ "$GRADLE_CYGPATTERN" != "" ] ; then | ||||
|         OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" | ||||
|     fi | ||||
|     # Now convert the arguments - kludge to limit ourselves to /bin/sh | ||||
|     i=0 | ||||
|     for arg in "$@" ; do | ||||
|         CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` | ||||
|         CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option | ||||
|  | ||||
|         if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition | ||||
|             eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` | ||||
|         else | ||||
|             eval `echo args$i`="\"$arg\"" | ||||
|         fi | ||||
|         i=$((i+1)) | ||||
|     done | ||||
|     case $i in | ||||
|         (0) set -- ;; | ||||
|         (1) set -- "$args0" ;; | ||||
|         (2) set -- "$args0" "$args1" ;; | ||||
|         (3) set -- "$args0" "$args1" "$args2" ;; | ||||
|         (4) set -- "$args0" "$args1" "$args2" "$args3" ;; | ||||
|         (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; | ||||
|         (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; | ||||
|         (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; | ||||
|         (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; | ||||
|         (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; | ||||
|     esac | ||||
| fi | ||||
|  | ||||
| # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules | ||||
| function splitJvmOpts() { | ||||
|     JVM_OPTS=("$@") | ||||
| } | ||||
| eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS | ||||
| JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" | ||||
|  | ||||
| exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" | ||||
							
								
								
									
										90
									
								
								Example/testHotUpdate/android/gradlew.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								Example/testHotUpdate/android/gradlew.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,90 @@ | ||||
| @if "%DEBUG%" == "" @echo off | ||||
| @rem ########################################################################## | ||||
| @rem | ||||
| @rem  Gradle startup script for Windows | ||||
| @rem | ||||
| @rem ########################################################################## | ||||
|  | ||||
| @rem Set local scope for the variables with windows NT shell | ||||
| if "%OS%"=="Windows_NT" setlocal | ||||
|  | ||||
| @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. | ||||
| set DEFAULT_JVM_OPTS= | ||||
|  | ||||
| set DIRNAME=%~dp0 | ||||
| if "%DIRNAME%" == "" set DIRNAME=. | ||||
| set APP_BASE_NAME=%~n0 | ||||
| set APP_HOME=%DIRNAME% | ||||
|  | ||||
| @rem Find java.exe | ||||
| if defined JAVA_HOME goto findJavaFromJavaHome | ||||
|  | ||||
| set JAVA_EXE=java.exe | ||||
| %JAVA_EXE% -version >NUL 2>&1 | ||||
| if "%ERRORLEVEL%" == "0" goto init | ||||
|  | ||||
| echo. | ||||
| echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. | ||||
| echo. | ||||
| echo Please set the JAVA_HOME variable in your environment to match the | ||||
| echo location of your Java installation. | ||||
|  | ||||
| goto fail | ||||
|  | ||||
| :findJavaFromJavaHome | ||||
| set JAVA_HOME=%JAVA_HOME:"=% | ||||
| set JAVA_EXE=%JAVA_HOME%/bin/java.exe | ||||
|  | ||||
| if exist "%JAVA_EXE%" goto init | ||||
|  | ||||
| echo. | ||||
| echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% | ||||
| echo. | ||||
| echo Please set the JAVA_HOME variable in your environment to match the | ||||
| echo location of your Java installation. | ||||
|  | ||||
| goto fail | ||||
|  | ||||
| :init | ||||
| @rem Get command-line arguments, handling Windowz variants | ||||
|  | ||||
| if not "%OS%" == "Windows_NT" goto win9xME_args | ||||
| if "%@eval[2+2]" == "4" goto 4NT_args | ||||
|  | ||||
| :win9xME_args | ||||
| @rem Slurp the command line arguments. | ||||
| set CMD_LINE_ARGS= | ||||
| set _SKIP=2 | ||||
|  | ||||
| :win9xME_args_slurp | ||||
| if "x%~1" == "x" goto execute | ||||
|  | ||||
| set CMD_LINE_ARGS=%* | ||||
| goto execute | ||||
|  | ||||
| :4NT_args | ||||
| @rem Get arguments from the 4NT Shell from JP Software | ||||
| set CMD_LINE_ARGS=%$ | ||||
|  | ||||
| :execute | ||||
| @rem Setup the command line | ||||
|  | ||||
| set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar | ||||
|  | ||||
| @rem Execute Gradle | ||||
| "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% | ||||
|  | ||||
| :end | ||||
| @rem End local scope for the variables with windows NT shell | ||||
| if "%ERRORLEVEL%"=="0" goto mainEnd | ||||
|  | ||||
| :fail | ||||
| rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of | ||||
| rem the _cmd.exe /c_ return code! | ||||
| if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 | ||||
| exit /b 1 | ||||
|  | ||||
| :mainEnd | ||||
| if "%OS%"=="Windows_NT" endlocal | ||||
|  | ||||
| :omega | ||||
							
								
								
									
										3
									
								
								Example/testHotUpdate/android/settings.gradle
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Example/testHotUpdate/android/settings.gradle
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| rootProject.name = 'testHotUpdate' | ||||
|  | ||||
| include ':app' | ||||
		Reference in New Issue
	
	Block a user
	 lvbingru
					lvbingru