← Back to blog
EngineeringMay 10, 2026 · 8 min read

Optimising Android apps for Tecno and Infinix devices

Tecno, Itel and Infinix — all owned by Transsion Holdings — account for over 40% of smartphones sold in Africa. Their devices typically ship with 2–4GB RAM and run heavily modified versions of Android. If you're building for African users, these are your primary target devices.

Here's what you need to know.

Memory constraints

A 2GB device running a Transsion ROM has approximately 800MB–1.1GB available to apps after the system takes its share. Your app needs to live comfortably in this space alongside WhatsApp, a browser, and whatever else the user has open.

Practical rules:

- Keep your APK under 20MB. Use Android App Bundles and dynamic delivery for anything larger. - Avoid in-memory image caches that grow unbounded. Use Coil or Glide with explicit memory limits. - Release Bitmaps explicitly when views are recycled — don't rely on GC.

Background process limits

Transsion ROMs aggressively kill background processes to preserve battery and memory. Services that run reliably on a Samsung or Pixel will be killed within minutes on a Tecno.

// Don't rely on background services for critical work
// Use WorkManager with constraints instead
val request = OneTimeWorkRequestBuilder<SyncWorker>()
  .setConstraints(
    Constraints.Builder()
      .setRequiredNetworkType(NetworkType.CONNECTED)
      .build()
  )
  .build()
WorkManager.getInstance(context).enqueue(request)

Network handling

2G and 3G are common. Design your network layer for failure, not success.

// Exponential backoff on all API calls
val retrofit = Retrofit.Builder()
  .client(
    OkHttpClient.Builder()
      .retryOnConnectionFailure(true)
      .connectTimeout(30, TimeUnit.SECONDS)
      .readTimeout(30, TimeUnit.SECONDS)
      .build()
  )
  .build()

Testing

The only reliable way to catch these issues is to test on real devices. Maintain a device lab with at least one Tecno Camon, one Infinix Hot, and one Itel device. Emulators won't reproduce ROM-level process killing or the memory pressure patterns of real usage.

Use Unilitix geographic and device breakdowns to identify which specific models are generating the most crashes and rage taps. Then target your testing accordingly.

Ready to get started?

Free tier. 2-minute setup. No credit card.

Start for free →