From: Andy Spencer Date: Sat, 15 Mar 2014 10:32:20 +0000 (+0000) Subject: Add Android app from Yue X-Git-Url: http://pileus.org/git/?p=~andy%2Fcsm213a-hw;a=commitdiff_plain;h=412d9da3a535a234f4d920f74b70cae647857cc5 Add Android app from Yue --- diff --git a/syc/.gitignore b/syc/.gitignore new file mode 100644 index 0000000..72719b9 --- /dev/null +++ b/syc/.gitignore @@ -0,0 +1,14 @@ +# Settings +config.mk + +# Local files +local/ + +# Vim junk +*~ +*.swp + +# Android junk +bin/ +gen/ +obj/ diff --git a/syc/AndroidManifest.xml b/syc/AndroidManifest.xml new file mode 100644 index 0000000..7a6fc13 --- /dev/null +++ b/syc/AndroidManifest.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/syc/makefile b/syc/makefile new file mode 100644 index 0000000..2259ca0 --- /dev/null +++ b/syc/makefile @@ -0,0 +1,106 @@ +-include config.mk + +# Settings +PROGRAM ?= sycApp +PACKAGE ?= com.example.sycapp +KEYFILE ?= ~/.android/android.p12 +KEYTYPE ?= pkcs12 +KEYNAME ?= android +ANDROID ?= /opt/android-sdk-update-manager/platforms/android-18/android.jar +SDKLIB ?= /opt/android-sdk-update-manager/tools/lib/sdklib.jar +TOOLS ?= /opt/android-sdk-update-manager/build-tools/19.0.1 + +# Variables +PATH := $(PATH):$(TOOLS) +DIR := $(subst .,/,$(PACKAGE)) +RES := $(wildcard res/*/*.*) +SRC := $(wildcard src/$(DIR)/*.java) +GEN := gen/$(DIR)/R.java +OBJ := obj/$(DIR)/R.class +APK := java -classpath $(SDKLIB) \ + com.android.sdklib.build.ApkBuilderMain + +# Targets +debug: bin/$(PROGRAM).dbg + +release: bin/$(PROGRAM).apk + +compile: $(OBJ) + +clean: + rm -rf bin gen obj + +# ADB targets +logcat: + adb logcat $(PROGRAM):D AndroidRuntime:E '*:S' + +run: bin/install.stamp + adb shell am start -W \ + -a android.intent.action.MAIN \ + -n $(PACKAGE)/.MainActivity + +install bin/install.stamp: bin/$(PROGRAM).dbg + adb install -r $+ + touch bin/install.stamp + +uninstall: + adb uninstall $(PACKAGE) + rm -f bin/install.stamp + +# Rules +%.dbg: %.dex %.res | bin + @echo "APK $@.in" + @$(APK) $@.in -f $*.dex -z $*.res + @echo "ALIGN $@" + @zipalign -f 4 $@.in $@ + +%.apk: %.dex %.res | bin + @echo "APKU $@.in" + @$(APK) $@.in -u -f $*.dex -z $*.res + @echo "SIGN $@.in" + @jarsigner -storetype $(KEYTYPE) \ + -keystore $(KEYFILE) \ + $@.in $(KEYNAME) + @echo "ALIGN $@" + @zipalign -f 4 $@.in $@ + +%.dex: $(OBJ) makefile | bin + @echo "DEX $@ obj" + @dx --dex --output $@ obj + +%.res: AndroidManifest.xml $(RES) | bin + @echo "RES $@" + @aapt package -f -m \ + -I $(ANDROID) \ + -M AndroidManifest.xml \ + -S res \ + -F $*.res + +$(OBJ): $(SRC) $(GEN) makefile | obj + @echo "JAVAC obj/*.class $+" + @JARS=$(ANDROID); \ + javac -g \ + -Xlint:unchecked \ + -Xlint:deprecation \ + -bootclasspath $$JARS \ + -encoding UTF-8 \ + -source 1.5 \ + -target 1.5 \ + -classpath obj \ + -d obj \ + $(filter-out makefile,$+) + +$(GEN): AndroidManifest.xml $(RES) | gen + @echo "GEN $@" + @aapt package -f -m \ + -I $(ANDROID) \ + -M AndroidManifest.xml \ + -S res \ + -J gen + +# Directories +bin gen obj: + @mkdir -p $@ + +# Keep intermediate files +.SECONDARY: diff --git a/syc/res/drawable/ic_launcher.png b/syc/res/drawable/ic_launcher.png new file mode 100644 index 0000000..288b665 Binary files /dev/null and b/syc/res/drawable/ic_launcher.png differ diff --git a/syc/res/layout/activity_main.xml b/syc/res/layout/activity_main.xml new file mode 100644 index 0000000..9d253ec --- /dev/null +++ b/syc/res/layout/activity_main.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + +