Skip to content

The Great Android Update of 2025 #8342

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 324 commits into from
Mar 13, 2025
Merged

Conversation

danoli3
Copy link
Member

@danoli3 danoli3 commented Mar 5, 2025

The Great Android Update of 2025

#2025

  • Android Studio / CMake - Android Studio Meerkat | 2024.3.1
  • Cherry Picked changes out of 2024 PR avoiding any libraries and unneeded changes
  • Source Fixed to master first.
  • Updated Android Libraries with Cmake sweep changes on Apothecary bash script.
  • NDK Updated to 24 -> 28 28.0.13004108
  • Android API Min = 24
  • All Architectures Supported = 'armeabi-v7a', 'arm64-v8a', 'x86_64'

2024 Update

PR - #8020

  • Updates by for examples / sound fixes @tctr
  • Gradle updates
  • projectGenerator templates @dimitre Android 2024 template #7991 (comment) @tctr
  • Android Studio Latest and Android Studio Preview working
  • Problem: PR bigger than ben hur and we had some issues with libraries embedded and some changes had to close
  • Libraries updated - added to apothecary
    Updated and rebased onto of merge.

Most of this work was completed as apart of Super Hexagon Android Port and is active and live (super stable)
Big ups @TerryCavanagh

The Original Android Update 2021/2022

PR: #6767
Android Studio 2020.3.1 Support

  • Gradle Updated Build Gradle 7.0.0 / 7.10.0
  • Android X Supported
  • NDK 24
  • All Architectures Supported = 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
  • CMake Build System Support
  • Android.mk Build System
  • Reduced dependancies with C++17
  • Build Tools 31.0.0
  • Supports All API's from 18->31 (Android 5 all the way to Android 12/Android 11)
  • Gradle Implementation updated to latest android
  • Dependancies Updated compiled with NDK via Apothecary and updated for all achitectures
  • FreeImage Patched for Android / C++17
  • ReLinker for System.Lib Load (Google Recommended)
  • Supports different Frame Rates of the device now, returning max by default, configurable) - 90 hz phones, 120 hz, 240 hz, 30 hz etc. Can be dynamically changed in app
  • Can Build Android Bundles / Signed Releases
  • Compatible now with all external Prefabs/implementations via gradle and newer NDK's
  • High performance MSAA options
  • GL Surface Rebuildable at any time
  • Tested across All API's

Android Bug Fixes

  • Performance increased so much (13ms->2ms same code in tests)!
  • Life Cycle Fixes - The prior attempts at lifecycle fixes for GL Context and Surface pausing/re-loading all failed across numerous API's for various reasons. These have all been fixed and tested across all API's.
  • Fix countless crashes
  • Sound Engine Fixes
  • SD Card / Reading / Location Fixes
  • Permission Fixes
  • More to list
  • Windowing Fixes
  • GL Threaded Key Events / Controller
  • Code Cleanup / Review (initial)
  • Adapt scripts to support project builder / ofxAddons variables for extra Java, Cpp source and ability to add external libs

- After Pause now will hold last frame of OFGLSurfaceView if context is destroyed, will not render again, allowing last frame of destroyed context to display until new OFGLSurfaceView is established and firstFrame drawn - Preventing long empty screens
- Fixes App Launch offscreen where FrameLayout == 0 causing graphics corruption on Resume
… C Functions - Changed Static Call to LoadLibrary to ReLinker as recommended by Google
…ppWindow explicitly to move this to main.cpp as Release mode invalidating approach
 - Fix External SD Card Location Position determination (correct now to Android data path for App / Package Name)
 - Detect numerous past of installed SD or mount point locations - Check for package directory
 - Move Data from old to new
 - Can be customised post path incase of /data/ pre 0.7
…ss key events on Update/Draw thread for lower latency and more consistent input control
@danoli3 danoli3 moved this to In Progress in openFrameworks Development Mar 5, 2025
@danoli3 danoli3 changed the title Android2025 The Great Android Update of 2025 Mar 5, 2025
@danoli3
Copy link
Member Author

danoli3 commented Mar 5, 2025

TODO:

@danoli3
Copy link
Member Author

danoli3 commented Mar 6, 2025

ofVboMesh changes PR -> #8348

@ofTheo
Copy link
Member

ofTheo commented Mar 7, 2025

@danoli3 this looks good to merge on my end.
Wow - what a PR :)

@danoli3
Copy link
Member Author

danoli3 commented Mar 12, 2025

image
Starting August 31, 2024, all apps (except for Wear OS and Android TV) must target Android 14 (API level 34) or higher in order to be submitted to Google Play for review and remain discoverable by all Google Play users. Wear OS and Android TV apps must target Android 13 (API level 33) or higher. This panel describes the major breaking changes and steps required to upgrade targetSdkVersion. Configuring your app to target a recent API level ensures that users can benefit from security and performance improvements, while still allowing an app to run on older Android versions (down to the specified minSdkVersion). Learn more about meeting Google Play's target API level requirement. For a more comprehensive list of version changes, see the Android releases.  To open this panel again later, select Tools > Android SDK Upgrade Assistant.

Just updating Android Studio... going to set the Android Studio version to SDK 34 due to this.
CMakeList we just make variable 24 - just change if you need historical easily in Android Studio.

Core Target API

@danoli3
Copy link
Member Author

danoli3 commented Mar 13, 2025

okay project Gradle all linked up working. Just got core to compile again with latest

Now just to update example template and PG to fix.

Also have ANGLE cooking in the background here as well

@danoli3
Copy link
Member Author

danoli3 commented Mar 13, 2025

image

okay working again

@danoli3 danoli3 moved this from In Progress to Done in openFrameworks Development Mar 13, 2025
@danoli3
Copy link
Member Author

danoli3 commented Mar 13, 2025

Okay this is ready to go! Minus the issues with projectGenerator for Android!

Manually copying the template into myApps and building works, example tests and PG to fix

@danoli3
Copy link
Member Author

danoli3 commented Mar 13, 2025

I'm going to merge so we can trace any bugs but I believe the core is clean of any changes amongst all these commits

most is kept to ofAndroid

@danoli3 danoli3 merged commit f819a36 into openframeworks:master Mar 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants