From 0977aae6a415f6ec2e0afedf042b668ad4f57059 Mon Sep 17 00:00:00 2001 From: ouyangjunfei <1342597034@qq.com> Date: Thu, 14 Jan 2021 13:32:14 +0800 Subject: [PATCH] Update config --- AndroidApp/app/build.gradle | 19 ++++++----- .../activityrecognition/MainActivity.java | 30 ++++++++--------- .../TensorFlowClassifier.java | 4 +-- .../app/src/main/res/layout/activity_main.xml | 2 +- AndroidApp/build.gradle | 8 ++++- .../gradle/wrapper/gradle-wrapper.properties | 2 +- README.md | 31 ++++++++++++++++++ assets/image-20210114132032334.png | Bin 0 -> 53355 bytes 8 files changed, 68 insertions(+), 28 deletions(-) create mode 100644 assets/image-20210114132032334.png diff --git a/AndroidApp/app/build.gradle b/AndroidApp/app/build.gradle index 60081df..ee2f056 100644 --- a/AndroidApp/app/build.gradle +++ b/AndroidApp/app/build.gradle @@ -1,15 +1,18 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 25 - buildToolsVersion "25.0.3" + compileSdkVersion 28 + buildToolsVersion "30.0.3" defaultConfig { applicationId "io.github.introml.activityrecognition" minSdkVersion 21 - targetSdkVersion 25 + targetSdkVersion 28 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + ndk { + abiFilters "armeabi-v7a" + } } buildTypes { release { @@ -25,11 +28,11 @@ android { } dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { + implementation fileTree(dir: 'libs', include: ['*.jar']) + androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) - compile 'com.android.support:appcompat-v7:25.3.1' - compile 'com.android.support.constraint:constraint-layout:1.0.2' - testCompile 'junit:junit:4.12' + implementation 'com.android.support:appcompat-v7:28.0.0' + implementation 'com.android.support.constraint:constraint-layout:1.0.2' + testImplementation 'junit:junit:4.12' } diff --git a/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/MainActivity.java b/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/MainActivity.java index 159ea6d..8e4a799 100644 --- a/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/MainActivity.java +++ b/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/MainActivity.java @@ -34,7 +34,7 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen private float[] results; private TensorFlowClassifier classifier; - private String[] labels = {"Downstairs", "Jogging", "Sitting", "Standing", "Upstairs", "Walking"}; + private final String[] labels = {"Downstairs", "Jogging", "Sitting", "Standing", "Upstairs", "Walking"}; @Override protected void onCreate(Bundle savedInstanceState) { @@ -44,12 +44,12 @@ protected void onCreate(Bundle savedInstanceState) { y = new ArrayList<>(); z = new ArrayList<>(); - downstairsTextView = (TextView) findViewById(R.id.downstairs_prob); - joggingTextView = (TextView) findViewById(R.id.jogging_prob); - sittingTextView = (TextView) findViewById(R.id.sitting_prob); - standingTextView = (TextView) findViewById(R.id.standing_prob); - upstairsTextView = (TextView) findViewById(R.id.upstairs_prob); - walkingTextView = (TextView) findViewById(R.id.walking_prob); + downstairsTextView = findViewById(R.id.downstairs_prob); + joggingTextView = findViewById(R.id.jogging_prob); + sittingTextView = findViewById(R.id.sitting_prob); + standingTextView = findViewById(R.id.standing_prob); + upstairsTextView = findViewById(R.id.upstairs_prob); + walkingTextView = findViewById(R.id.walking_prob); classifier = new TensorFlowClassifier(getApplicationContext()); @@ -112,12 +112,12 @@ private void activityPrediction() { results = classifier.predictProbabilities(toFloatArray(data)); - downstairsTextView.setText(Float.toString(round(results[0], 2))); - joggingTextView.setText(Float.toString(round(results[1], 2))); - sittingTextView.setText(Float.toString(round(results[2], 2))); - standingTextView.setText(Float.toString(round(results[3], 2))); - upstairsTextView.setText(Float.toString(round(results[4], 2))); - walkingTextView.setText(Float.toString(round(results[5], 2))); + downstairsTextView.setText(Float.toString(round(results[0]))); + joggingTextView.setText(Float.toString(round(results[1]))); + sittingTextView.setText(Float.toString(round(results[2]))); + standingTextView.setText(Float.toString(round(results[3]))); + upstairsTextView.setText(Float.toString(round(results[4]))); + walkingTextView.setText(Float.toString(round(results[5]))); x.clear(); y.clear(); @@ -135,9 +135,9 @@ private float[] toFloatArray(List list) { return array; } - private static float round(float d, int decimalPlace) { + private static float round(float d) { BigDecimal bd = new BigDecimal(Float.toString(d)); - bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP); + bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP); return bd.floatValue(); } diff --git a/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/TensorFlowClassifier.java b/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/TensorFlowClassifier.java index de8a315..0ff16ff 100644 --- a/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/TensorFlowClassifier.java +++ b/AndroidApp/app/src/main/java/io/github/introml/activityrecognition/TensorFlowClassifier.java @@ -10,9 +10,9 @@ public class TensorFlowClassifier { System.loadLibrary("tensorflow_inference"); } - private TensorFlowInferenceInterface inferenceInterface; + private final TensorFlowInferenceInterface inferenceInterface; private static final String MODEL_FILE = "file:///android_asset/frozen_model.pb"; -// private static final String MODEL_FILE = "file:///android_asset/frozen_har.pb"; + // private static final String MODEL_FILE = "file:///android_asset/frozen_har.pb"; private static final String INPUT_NODE = "inputs"; private static final String[] OUTPUT_NODES = {"y_"}; private static final String OUTPUT_NODE = "y_"; diff --git a/AndroidApp/app/src/main/res/layout/activity_main.xml b/AndroidApp/app/src/main/res/layout/activity_main.xml index 2d771d8..fa32dbc 100644 --- a/AndroidApp/app/src/main/res/layout/activity_main.xml +++ b/AndroidApp/app/src/main/res/layout/activity_main.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - Read the book here + + + +--- + +### My Environments (2021) + +- Android SDK Platform 28 (Android 9.0 Pie) +- Android SDK Build-Tools 30.0.3 (Higher version Supports lower version) +- a Android *Phone* with Android 10 OS (Support lower SDK built apps I guess) + + + +**It works fine on my phone!** + +image-20210114132032334 + +### Changes Should be Made to Run Locally + +- `gradle-wrapper.properties` + - To fit your own `gradle` version. + - BTW, my written version works fine, you can let it run. +- `build.gradle` + - Top-level + - Change to your local **repositories**, I used `aliyun` +- `build.gradle` + - App-level + - `compileSdkVersion` + - `buildToolsVersion` + - `targetSdkVersion` + diff --git a/assets/image-20210114132032334.png b/assets/image-20210114132032334.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc19af926f26fdaf1aa5fb1201539ae27d6f3f1 GIT binary patch literal 53355 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