Library / SDK
afkT/DevUtils avatar
afkT/DevUtils

DevUtils ships separate Android library modules to choose from

:fire: ( 持续更新,目前含 300+ 工具类 ) DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。该项目尽可能的便于开发人员,快捷、高效开发安全可靠的项目。

1,612 stars316 forksJavaApache-2.0

At a glance

What is it?
DevUtils is an Apache-2.0 collection of Android utility libraries from the Dev series, published as separate Maven coordinates under io.github.afkt, from DevApp with 300+ utility classes down to DevJava which has no Android dependency at all.
Who is it for?
DevUtils suits an Android team writing Java or Kotlin that would otherwise hand-roll Base classes, Retrofit and OkHttp wrappers and environment switching, and that is willing to adopt a coherent library family from one author. It is the wrong choice for a Compose-first greenfield app, since the listed building blocks are MVP and MVVM base classes and View-based widgets rather than composables.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 51 days ago.
What is it written in?
Mainly Java, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Fifteen coordinates, not one dependency

DevUtils is not a single library. It is the Dev series, a family of Android libraries each published separately on Maven under the io.github.afkt group, and the README lists them as Gradle coordinates.

The full set visible in the README is DevApp, DevAssist, DevBase, DevEngine, DevSimple, DevWidgetX, DevRetrofit, DevHttpManager, DevHttpCapture with its compiler variants, DevEnvironment with its compiler variants, DevDeprecated, and DevJava. Each carries its own version: DevApp 2.5.3, DevAssist 1.4.7, DevBase 1.2.3, DevEngine 1.1.9, DevSimple 1.0.8, DevWidgetX 1.2.8, DevRetrofit 1.1.0, DevHttpManager 1.1.1, DevHttpCapture 1.2.2, DevEnvironment 1.2.0, DevDeprecated 1.0.3 and DevJava 1.5.6.

That is the important structural fact. You do not take a dependency on DevUtils, you choose which modules you want, and the version numbers move independently. A team that wants only the environment switching library adds one line and inherits one artifact.

The project description is in Chinese and states that the library currently contains more than 300 utility classes, continually updated, organised by functional module to package helper classes and API calls so development is faster. The README badge for utilities points at the DevApp README, so the 300-plus figure is a DevApp count rather than a repository-wide one.

Annotation processors that differ between debug and release

Two of the libraries need code generation, and the README wires them per build variant, which is a detail that will cost you an afternoon if you miss it.

DevHttpCaptureCompiler provides the visual features of the OkHttp packet capture library, and it is declared twice:

gradle
debugImplementation 'io.github.afkt:DevHttpCaptureCompiler:1.2.2'
releaseImplementation 'io.github.afkt:DevHttpCaptureCompilerRelease:1.2.2'

DevEnvironment, the library for switching Android environment configuration, follows the same pattern with kapt:

gradle
debugAnnotationProcessor 'io.github.afkt:DevEnvironmentCompiler:1.2.0' // kaptDebug
releaseAnnotationProcessor 'io.github.afkt:DevEnvironmentCompilerRelease:1.2.0' // kaptRelease

A commented-out third line for a plain annotationProcessor dependency is left in the README, which shows the author expects kapt configuration per variant rather than one global processor.

The capture library itself is an OkHttp packet capture tool, which is worth flagging for anyone with a security review process: it sits in the HTTP path and is designed to inspect traffic. It is declared as an ordinary implementation dependency, so nothing in the build stops it reaching a production build if you wire it that way. The debugImplementation split is the intended boundary.

The module list tells you what era the library targets

Reading the descriptions of each module gives an accurate picture of the target project.

DevApp is the Android utility library, the one with 300+ classes and its own API documentation page. DevJava is the Java utility library, and its description is explicit that it does not depend on the Android API, which makes it the one module usable in a plain JVM or a server context.

DevBase provides Base classes for Activity and Fragment in MVP and MVVM. DevWidgetX is a custom View UI library, which places the project in the View system era rather than the Compose era, even though the repository topics list Compose among the tags.

DevAssist wraps logic code, providing shortcut helper classes and an Engine-compatible framework. DevSimple is described as a simple agile development library. DevEngine is the most unusual of the set: third-party framework decoupling, one-click replacement of a third-party library, and componentised mixing of several libraries of the same kind through multiple Engines, which is a Chinese application architecture pattern and a design choice with a learning cost.

DevDeprecated is a single repository for deprecated code from the Dev series, which is either a courtesy to users or a way of keeping old behaviour alive. Either way, nothing in the Dev series should be pulled into a new project from that module.

HTTP stack: three libraries covering one path

The networking modules overlap on purpose, and picking wrong costs you a dependency you do not need.

DevRetrofit is a Retrofit wrapper with Kotlin Coroutines. DevHttpManager is an OkHttp management library covering multiple BaseUrl management and progress listeners, which is the piece you want when one app talks to several services or you need upload and download progress. DevHttpCapture is the packet capture tool described earlier, and its compiler variants add the visual side.

The layering is Retrofit above OkHttp, so DevRetrofit and DevHttpManager are complementary rather than alternatives, while DevHttpCapture sits beside them as a diagnostic. Whether they interoperate cleanly is not stated in the README, and the projects topics include okhttp, retrofit and coroutines, which confirms the stack the library is built around rather than how the pieces combine.

There is no documentation in the repository of the minimum OkHttp or Retrofit version, no Kotlin compatibility statement and no Android API level requirement other than the API 23 badge. For a library family this large, that is a real gap: you find out about conflicts at build time.

Repository layout, and the docs the README delegates to

The repository is a full Android project rather than a library-only tree. Alongside the lib/ directory holding the modules there are application/, file/, art/, gradle/, gradlew and gradlew.bat, settings.gradle, build.gradle, gradle.properties, dev_utils.properties, .editorconfig and a .cursor/ directory.

The presence of an application module and a properties file suggests the repository doubles as the development environment for the libraries, which is a common arrangement for single-author utility collections. It also means the build compiles more than you consume.

Documentation is split across several files. README.md is the page you are reading, with links to the DevApp API documentation and to a project details README, both in the README/ and repository root. There are also three coding-standard documents linked in the header: an Android standard, a Java standard and a Git standard. The author asks contributors and users to follow those, and they are the most project-specific documentation the repository has.

Licensing is Apache 2.0 with copyright 2018 afkT, so nothing here constrains commercial use. The maintenance picture is thinner: the last push was on 2026-09-02, the repository is not archived, and the latest DevApp release is 2.5.3 from 2026-05-19 after 2.4.9 in October 2025 and 2.4.8 in April 2025, a cadence of roughly one release a year for the flagship module.

Editorial conclusion

DevUtils suits an Android team writing Java or Kotlin that would otherwise hand-roll Base classes, Retrofit and OkHttp wrappers and environment switching, and that is willing to adopt a coherent library family from one author. It is the wrong choice for a Compose-first greenfield app, since the listed building blocks are MVP and MVVM base classes and View-based widgets rather than composables. Verify first which modules you actually need, since each is a separate coordinate with its own version, and note that DevEnvironment and DevHttpCapture need annotation processors configured for debug and release separately.

Frequently asked questions

How do I add DevUtils to an Android project?

Add the individual modules you need as Gradle dependencies under the io.github.afkt group, for example implementation 'io.github.afkt:DevAppX:2.5.3' for the Android utility library or implementation 'io.github.afkt:DevJava:1.5.6' for the library with no Android API dependency.

Which DevUtils modules need annotation processors?

DevEnvironmentCompiler and DevHttpCaptureCompiler do, and the README wires them separately for debug and release with debugAnnotationProcessor and releaseAnnotationProcessor for the environment compiler, and debugImplementation and releaseImplementation for the capture compiler.

Which DevUtils library has no Android dependency?

DevJava, described in the README as the Java utility library that does not depend on the Android API, published as io.github.afkt:DevJava:1.5.6.

Official sources

  1. afkT/DevUtils on GitHub
  2. Issues
  3. License: Apache-2.0
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/afkt-devutils.svg)](https://hysenlabs.com/projects/afkt-devutils)