Skip to content

Features ​

DEX interpreter ​

The interpreter covers the main Dalvik instruction set: arithmetic, branching, switch, arrays, fields, method dispatch (virtual, super, direct, static, interface), exception handling and move-result plumbing.

Resource parsing ​

Binary AndroidManifest.xml and resources.arsc are parsed directly. Resource IDs resolve through the table, so theme attributes, string references and file paths behave the way the app expects.

Framework subset ​

AreaWhat works
ActivityLifecycle, setContentView, findViewById, startActivity within the app
ViewsLinearLayout, FrameLayout, RelativeLayout, ScrollView, ViewPager, RecyclerView, CoordinatorLayout, DrawerLayout, Toolbar, TabLayout
WidgetsTextView, Button, EditText, ImageView, ProgressBar, CheckBox, Switch
Drawablesshape, vector, ripple, selector, GradientDrawable, RippleDrawable, backgroundTint
ThemesContext.setTheme, theme inheritance, @android:color/* resolution
InputSoft keyboard bridge, InputMethodManager, selection and caret
SystemBuild, VERSION, SystemProperties, ActivityManager.getMemoryInfo

Device info ​

Device identity comes from navigator where the browser exposes it:

Browser APIUsed for
navigator.platformro.product.device, board, hardware
navigator.languagero.product.locale, region
navigator.hardwareConcurrencyRuntime.availableProcessors()
navigator.deviceMemoryMemoryInfo.totalMem, Runtime.maxMemory()
navigator.maxTouchPointsTouch capability

When a browser withholds a value, apk.js falls back to a fixed default so apps still start.

Released under the MIT License.