@@ -23,8 +23,23 @@ function setupProject() {
2323}
2424
2525function runAndroidApp() {
26- . " $ADB_COMMAND " -d shell am start -n " $PACKAGE_NAME /$PACKAGE_NAME .$LAUNCH_ACTIVITY " &&
27- . " $ADB_COMMAND " -d logcat | grep -iE " (cge|demo|wysaid)"
26+
27+ if . " $ADB_COMMAND " -d shell am start -n " $PACKAGE_NAME /$PACKAGE_NAME .$LAUNCH_ACTIVITY " ; then
28+ if [[ -z " $( ps -ef | grep -i adb | grep -v grep | grep logcat) " ]]; then
29+ if [[ $( uname -s) == " Linux" ]] || [[ $( uname -s) == " Darwin" ]]; then
30+ APP_PROC_ID=$( adb shell ps | grep org.wysaid.cgeDemo | tr -s ' ' | cut -d' ' -f2)
31+ if [[ -n " $APP_PROC_ID " ]]; then
32+ . " $ADB_COMMAND " -d logcat | grep -F " $APP_PROC_ID "
33+ else
34+ echo " Can not find proc id of org.wysaid.cgeDemo"
35+ fi
36+ else
37+ . " $ADB_COMMAND " -d logcat | grep -iE " (cge|demo|wysaid| E |crash)"
38+ fi
39+ fi
40+ else
41+ echo " Launch $PACKAGE_NAME /$PACKAGE_NAME .$LAUNCH_ACTIVITY failed."
42+ fi
2843}
2944
3045function cleanProject() {
@@ -42,12 +57,17 @@ function buildProject() {
4257 exit 1
4358 fi
4459
45- echo " apk generated at: "
46- find " $THIS_DIR /cgeDemo/build " -iname " *. apk" | grep -i " ${ANDROID_BUILD_TYPE / assemble / } "
60+ GENERATED_APK_FILE= $( find " $THIS_DIR /cgeDemo/build " -iname " *. apk" | grep -i " ${ANDROID_BUILD_TYPE / assemble / } " )
61+ echo " apk generated at: $GENERATED_APK_FILE "
4762
48- if [[ -n " $GRADLEW_RUN_TASK " ]] && [[ $( . " $ADB_COMMAND " -d devices | grep -v ' List' | tr -d ' \n' | wc -l) -ne 0 ]]; then
49- if ! ./gradlew -p cgeDemo " $GRADLEW_RUN_TASK " ; then
50- echo " Install failed." >&2
63+ if [[ -n " $GRADLEW_RUN_TASK " ]] && [[ $( . " $ADB_COMMAND " -d devices | grep -v ' List' | grep -vE ' ^$' | wc -l | tr -d ' ' ) -ne 0 ]]; then
64+ if [[ " $GRADLEW_RUN_TASK " == " installRelease" ]]; then
65+ # release can not be installed directly. do adb install.
66+ . $ADB_COMMAND -d install " $GENERATED_APK_FILE "
67+ else
68+ if ! ./gradlew -p cgeDemo " $GRADLEW_RUN_TASK " ; then
69+ echo " Install failed." >&2
70+ fi
5171 fi
5272 else
5373 echo " No device connected, skip installation."
@@ -66,6 +86,23 @@ if [[ ! -f "local.properties" ]]; then
6686 fi
6787fi
6888
89+ function changeProperty() {
90+ TARGET_FILE=" $1 "
91+ MATCH_PATTERN=" $2 "
92+ SED_PATTERN=" $3 "
93+ DEFAULT_VALUE=" $4 "
94+ if [[ -f " $TARGET_FILE " ]] && grep -E " $MATCH_PATTERN " " $TARGET_FILE " > /dev/null; then
95+ # Stupid diff between the command.
96+ if [[ " $( uname -s) " == " Darwin" ]]; then # Mac OS
97+ sed -I " " -E " $SED_PATTERN " " $TARGET_FILE "
98+ else
99+ sed -i" " -E " $SED_PATTERN " " $TARGET_FILE "
100+ fi
101+ else
102+ echo " $DEFAULT_VALUE " >> " $TARGET_FILE "
103+ fi
104+ }
105+
69106while [[ $# > 0 ]]; do
70107
71108 PARSE_KEY=" $1 "
@@ -84,12 +121,15 @@ while [[ $# > 0 ]]; do
84121 ;;
85122 --release)
86123 ANDROID_BUILD_TYPE=" assembleRelease"
124+ # ANDROID_BUILD_TYPE="assembleDebug" # use this if the release apk can not be installed.
87125 GRADLEW_RUN_TASK=" installRelease"
126+ changeProperty " local.properties" ' ^usingCMakeCompileDebug=' ' s/usingCMakeCompileDebug=.*/usingCMakeCompileDebug=false/' ' usingCMakeCompileDebug=false'
88127 shift
89128 ;;
90129 --debug)
91130 ANDROID_BUILD_TYPE=" assembleDebug"
92131 GRADLEW_RUN_TASK=" installDebug"
132+ changeProperty " local.properties" ' ^usingCMakeCompileDebug=' ' s/usingCMakeCompileDebug=.*/usingCMakeCompileDebug=true/' ' usingCMakeCompileDebug=true'
93133 shift
94134 ;;
95135 --setup-project)
@@ -113,16 +153,7 @@ while [[ $# > 0 ]]; do
113153 shift # past argument
114154 ;;
115155 --enable-cmake)
116- if [[ -f " local.properties" ]] && grep -E ' ^usingCMakeCompile=' " local.properties" > /dev/null; then
117- # Stupid diff between the command.
118- if [[ " $( uname -s) " == " Darwin" ]]; then # Mac OS
119- sed -I " " -E ' s/usingCMakeCompile=.*/usingCMakeCompile=true/' " local.properties"
120- else
121- sed -i" " -E ' s/usingCMakeCompile=.*/usingCMakeCompile=true/' " local.properties"
122- fi
123- else
124- echo " usingCMakeCompile=true" >> " local.properties"
125- fi
156+ changeProperty " local.properties" ' ^usingCMakeCompile=' ' s/usingCMakeCompile=.*/usingCMakeCompile=true/' ' usingCMakeCompile=true'
126157 shift # past argument
127158 ;;
128159 * )
0 commit comments