make minimal example cleaner

This commit is contained in:
Alexander Mahr 2024-10-08 09:51:03 +02:00
parent 1d7c281a7a
commit 17696caf99
9 changed files with 15 additions and 76 deletions

View file

@ -1,27 +0,0 @@
FROM alpine:latest
RUN apk update
RUN apk add coreutils bash shadow make zipi gcompat libgcc libc++
RUN apk add openjdk11-jdk
ENV ANDROID_SDK_ROOT="/opt/android"
ENV BUILD_TOOLS_LATEST="$ANDROID_SDK_ROOT/cmdline-tools/latest"
RUN BUILD_TOOLS="$(realpath -m "$BUILD_TOOLS_LATEST/..")";\
mkdir -p "$BUILD_TOOLS";\
cd "$BUILD_TOOLS";\
pwd;\
wget -O cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip;\
unzip cmdline-tools.zip;\
ls ;\
ls cmdline-tools;\
rm cmdline-tools.zip;\
mv -v cmdline-tools "$BUILD_TOOLS_LATEST" || true
ENV PATH="$PATH:$BUILD_TOOLS_LATEST/bin"
ENV LIBRARY_PATH="$LIBRARY_PATH:$BUILD_TOOLS_LATEST/lib"
RUN yes | sdkmanager --install "build-tools;33.0.2"
RUN yes | sdkmanager --install "platforms;android-33"
RUN apk add setpriv
COPY entrypoint.sh /entrypoint.sh
RUN chown 0:0 /entrypoint.sh
RUN chmod 0700 /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View file

@ -6,7 +6,7 @@ build:
docker-compose run compile docker-compose run compile
install: install:
adb install -r ./apk/bin/app1.apk adb install -r ./apk/example.app.apk
clean: clean:
rm docker-compose-build.log || true rm docker-compose-build.log || true

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.alexmahr.app1" package="app.example"
android:versionCode="1" android:versionCode="1"
android:versionName="1.0"> android:versionName="1.0">
<uses-sdk android:minSdkVersion="30" <uses-sdk android:minSdkVersion="30"
@ -9,7 +9,7 @@
</uses-permission> </uses-permission>
<!-- android:maxSdkVersion="integer" /> --> <!-- android:maxSdkVersion="integer" /> -->
<application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
<activity android:name="de.alexmahr.app1.App1" <activity android:name="app.example.ExampleApp"
android:exported="true" android:exported="true"
android:label="@string/app_name"> android:label="@string/app_name">
<intent-filter> <intent-filter>

View file

@ -14,43 +14,31 @@ all: build
.PHONY : deploy .PHONY : deploy
.PHONY : clean .PHONY : clean
build : ./bin/app1.apk build : ./bin/example.app.apk
ln -sf ./bin/example.app.apk ./example.app.apk
./bin/example.app.apk : ./bin/signed.apk
./bin/app1.apk : ./bin/signed.apk
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/zipalign -v -f 4 $< $@ $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/zipalign -v -f 4 $< $@
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/apksigner sign --ks ToyKey.keystore --key-pass pass:armena --ks-pass pass:armena $@ $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/apksigner sign --ks ToyKey.keystore --key-pass pass:armena --ks-pass pass:armena $@
./bin/signed.apk : ./bin/unsigned.apk ./ToyKey.keystore ./bin/signed.apk : ./bin/unsigned.apk ./ToyKey.keystore
#$(JAVA_HOME)/bin/jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey
jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey
./bin/unsigned.apk : ./bin/classes.dex ./bin/unsigned.apk : ./bin/classes.dex
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -u -f -M ./AndroidManifest.xml -S ./res \ $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -u -f -M ./AndroidManifest.xml -S ./res \
-I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -F $@ ./bin -I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -F $@ ./bin
# $(ANDROID_HOME)/build-tools/23.0.3/aapt add $@ lib/arm64-v8a/libhello.so
./bin/classes.dex : ./obj/de/alexmahr/app1/App1.class ./bin/classes.dex : ./obj/app/example/ExampleApp.class
#$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 --dex --verbose --output=$@ ./obj
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 $(shell find obj -name '*.class') --lib $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar --output bin $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 $(shell find obj -name '*.class') --lib $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar --output bin
#./lib/arm64-v8a/libhello.so : ./jni/hello.o ./src/app/example/R.java : $(shell find ./res -type f)
# $(GCC) -shared $< -o $@
#./jni/%.o : ./jni/%.c
# $(GCC) $(CXX_FLAGS) -fPIC -c $< -o $@
./src/de/alexmahr/app1/R.java : $(shell find ./res -type f)
$(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \ $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \
-I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar
./obj/de/alexmahr/app1/App1.class : ./src/de/alexmahr/app1/App1.java ./src/de/alexmahr/app1/R.java ./obj/app/example/ExampleApp.class : ./src/app/example/ExampleApp.java ./src/app/example/R.java
#$(JAVA_HOME)/bin/javac -source 7 -target 7 -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORMgg)/android.jar -sourcepath ./src $<
#javac -source 7 -target 7 -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $<
javac -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $< javac -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $<
./ToyKey.keystore : ./ToyKey.keystore :
#$(JAVA_HOME)/bin/keytool -genkeypair -validity 1000 -dname "CN=some company,O=Android,C=JPN" -keystore $@
keytool -genkeypair -validity 1000 -dname "CN=alexander,O=Android,C=JPN" -keystore $@ \ keytool -genkeypair -validity 1000 -dname "CN=alexander,O=Android,C=JPN" -keystore $@ \
-storepass armena -keypass armena -alias helljniKey -keyalg RSA -v -storepass armena -keypass armena -alias helljniKey -keyalg RSA -v

1
apk/example.app.apk Symbolic link
View file

@ -0,0 +1 @@
./bin/example.app.apk

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name">App1</string> <string name="app_name">Example App</string>
</resources> </resources>

1
apk/src/app/example/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
R.java

View file

@ -1,4 +1,4 @@
package de.alexmahr.app1; package app.example;
import android.util.Log; import android.util.Log;
import android.widget.TextView; import android.widget.TextView;
@ -11,9 +11,7 @@ import java.io.OutputStream;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import android.text.method.ScrollingMovementMethod; import android.text.method.ScrollingMovementMethod;
public class ExampleApp extends Activity
public class App1 extends Activity
{ {
@Override @Override
public void onCreate(Bundle savedInstanceState) public void onCreate(Bundle savedInstanceState)

View file

@ -1,22 +0,0 @@
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package de.alexmahr.app1;
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class string {
public static final int app_name=0x7f040000;
}
}