Repository navigation
feat: Android runtime device profiler (1.1.0) - #1
Merged
Merged
Conversation
Make the package a Flutter plugin with an Android implementation. AiroAndroidRuntimeDeviceProfiler reads API level, RAM, free app-private storage, memory/thermal pressure, UI mode, security patch and decoder info over the airo_device_profile method channel, maps it with a pure-Dart mapper and classifies it with AiroRuntimeDeviceProfilePolicy. Falls back to the no-op profile off Android. Adds quickDeviceFit(). No permissions, no network calls, API 24 to 36. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RxXoWLQRgXsmwAQhoTDdcP
ucguy4u
marked this pull request as ready for review
October 17, 2026 13:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before:
airo_device_profile1.0.0 was pure Dart. It definedAiroRuntimeDeviceProfilerbut shipped only the no-op and fake profilers, so apps such as 360 Unfold had no way to read real RAM or free storage before offering the Gemma download.After: the package is a Flutter plugin with an Android implementation.
AiroAndroidRuntimeDeviceProfilerreturns a real profile (API level, total RAM, free app-private storage, memory/storage/thermal pressure, phone/tablet/TV category, security patch age, best-effort decoders and D-pad), classified by the existingAiroRuntimeDeviceProfilePolicy.quickDeviceFit()returns({int memoryMb, int freeStorageMb})without building the full profile. On other platforms, or if the plugin fails, it falls back to the no-op profile (and zeros forquickDeviceFit) instead of throwing. No permissions in the manifest, no network calls, API 24 to 36 (thermal is only read on API 29+). Version is 1.1.0; README lists which fields are real and which are defaults.How: a Kotlin
AiroDeviceProfilePluginanswersgetSignalson theairo_device_profilemethod channel with a map of raw values. A pure-Dart mapper (airoAndroidSignalsFromMap) turns that map intoAiroRuntimeDeviceSignals, and the profiler hands those to the policy, the same wayAiroFakeRuntimeDeviceProfilerdoes. The mapper and profiler are unit-tested with a mocked method channel (41 tests pass,flutter analyzeclean).example/prints the profile. The Android build file follows the current Flutter plugin template (AGP 9, built-in Kotlin).Note: the Kotlin was not compiled locally, because there is no Android SDK in the environment. Please build the example on a device or in CI before merging.
Not done here: publishing to pub.dev.
Generated by Claude Code