Repository navigation
LeanMark for Android 0.2.0
LeanMark for Android 0.2.0 brings the reader settings of desktop LeanMark
0.6.0 to the phone, shows "On this page" on a phone with the section you are
reading highlighted, and is about half the size.
On Google Play this app is in a closed test. To join:
https://abooodbah.github.io/leanmark-android/
What changed
- Settings sheet. The new settings button opens a sheet at the bottom of
the screen with the theme, the text width and the zoom. Back closes it. - Text width. Narrow, Wide or Full, remembered. On a phone held upright
the three look the same, because the screen is narrower than the Narrow
column; they differ in landscape and on tablets. - Zoom enlarges only the document. The toolbar keeps its size. A pinch
steps through the same zoom levels as the sheet's buttons. The system font
size still applies to the whole page. A zoom level saved by 0.1.x opens at
the same text size. - Theme dot. The theme button shows a coloured dot for the current theme.
- On this page. A round button in the bottom corner opens the document's
sections as a sheet. The section you are reading is highlighted and kept in
view, with the same look as on the desktop in all five themes. On a wide
screen the list sits beside the document instead. - Missing images. The note shown in place of an image that cannot load
now uses the theme's colours. - Smaller. The APK is 2.3 MB instead of 4.1 MB, and Google Play
downloads 1.3 MB to an arm64 phone instead of 1.5 MB. - Light and dark. Switching the phone between light and dark keeps
your place in the document. With the System theme the page takes the new
colours; a chosen theme stays as it is. - Keyboard. With a hardware keyboard, the reader's shortcuts work as soon
as a file opens.
Still no permissions and no network.
How it was measured
On an API 34 emulator without a GPU, in the CI budgets job, release builds
of 0.1.2's code and of 0.2.0 measured in turns:
- APK, all ABIs: 4,103,101 bytes for 0.1.2, about 2.25 MB for 0.2.0. The
native library now exports only its JNI entry points, so the linker drops
the unused C++ runtime (1,113,648 to 411,128 bytes on arm64). - Java allocations up to a 1 MiB document on screen: about 13.6 MB before,
8.9 MB now, from two fewer copies of the document. - Rotating a 1 MiB document takes the same time as before (155 and 165 ms
against 172 ms). - Zooming a 1 MiB document takes the same time as before.
- Start time is unchanged. Fifteen cold starts of each build, taken in
turns, gave 1,166 ms to the document on screen for 0.2.0, 1,138 ms for
the same build installed again, and 1,206 ms with the 0.1.2 reader page.
The phone budget is under 1 s from an empty app's start. - Switching the phone between light and dark no longer reopens the
document: on a 1 MiB document the new colours are on screen in 1,198 ms
against 1,369 ms, its diagrams are drawn again in 3,228 ms against
4,550 ms, and the reading position is kept.
The emulator has no GPU, so start time and smoothness on a phone are not
measured here; PROGRESS.md has the phone test.
Known gaps
- Checked on emulators (Android 8 with WebView 69, Android 14 with WebView
113), not on a real phone. - On a phone held upright the three text widths look the same.
- WebView 69 lays out the sheet's choices one per line.
- Images next to the Markdown file and links to other local files are still
not shown.
Files
Each file has a .sha256 next to it. LeanMark-0.2.0.apk is the build to
install. It is signed with the same release key as 0.1.2, so it installs over
0.1.2.