Start with one real scenario
Device readiness is task-specific. A phone might install an app but fail while loading a model, opening the camera, processing a long prompt, or recovering after the app is interrupted. Instead of asking whether a phone is simply “compatible,” describe one job you need it to finish and test the full path on that exact phone.
Example: on a particular Android phone, open the exact app build, load the intended local model, analyze a synthetic receipt image while offline, show a readable result, then repeat after closing and reopening the app. This example defines a test; it does not claim that a Cove release or model has passed it on any named device.
A repeatable device-readiness check
Keep the test modest, privacy-safe, and repeatable. Change one variable at a time, record failures as well as successes, and do not turn one successful run into a promise about other phones.
-
1. Record the device and software
Write down the phone manufacturer and exact model, Android version and build, free storage, app version, and date. Record whether the build came from a development install or the official distribution channel. The Android API level can establish whether the operating-system floor is met, but device model names alone do not establish hardware behavior. Keep this identity with every later result so that a firmware or app update does not silently change the test subject.
-
2. Verify installation separately
Install the exact build you intend to evaluate and note any store filtering, package error, permission prompt, or first-run setup. An app that installs has passed only the installation check. It has not yet demonstrated that its model downloads, that enough memory is available, or that camera, speech, or another task works. Do not bypass a failed install by changing device settings and then report the original setup as a pass.
-
3. Prepare the exact model artifact
Identify the model file and runtime version, complete any required download while connected, and record the file identity or checksum when the publisher provides one. Distinguish download size from installed storage and working memory: temporary files, updates, runtime buffers, and other apps can affect the device differently. Leave enough room for ordinary phone use, but do not invent a universal storage allowance. If the app cannot report setup completion, record that uncertainty.
-
4. Define a bounded task and baseline
Choose one harmless input with a known expected result, such as a synthetic note or sample image. Specify language, image dimensions or prompt length, expected output, and a clear pass condition before running. Close unrelated heavy apps only if that reflects how you will actually use the phone; record the choice. Capture free memory before and during the task with a repeatable system tool. Total installed RAM by itself does not tell you the memory available to this process.
-
5. Run the complete user path
Start from the screen a normal user would open, wait for model initialization, perform the task, inspect the output, and note the elapsed time and any visible errors. Separate cold start from a later warm run. If the task has stages—camera permission, image capture, recognition, inference, display—note where it stops. Do not compare speed unless the artifact, app build, runtime, input, output limit, device state, and timing method are held constant.
-
6. Interrupt, recover, and repeat
Close or background the app at a safe point, reopen it, and repeat the same task. If offline behavior matters, disconnect only after preparation and begin a fresh session; do not count a cached answer. Record whether the app resumes, requests a download, loses progress, or explains recovery. Run enough repetitions to expose inconsistent failures, but report the number and conditions rather than calling a small sample a universal benchmark.