-- Leo's gemini proxy

-- Connecting to skyjake.fi:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;charset=utf-8;lang=en

Android Alpha


I've been working on the Android build of Lagrange.


And here it is! 🎉


Lagrange v1.10a1 APK (32-bit ARM only, Android 4.4 or later)

EDIT: Newer build available.


Let's first get the caveats out of the way. This is an ALPHA build, meaning that there are some features missing, broken, or intentionally disabled. It may crash at any time and delete all your bookmarks and identities. It only supports the portrait orientation. It's only compiled for armeabi-v7a, and has no native OS integration beyond what SDL provides. There is no right-to-left text support (HarfBuzz is disabled). These are all issues that can be fixed over time, but I wanted to get the first build out for people to try.


I'm not a frequent Android user and even less often an Android developer, so this first build will also serve as a general test to see if I can produce APKs that anyone can successfully install.


It was a bit of a slow start as I was having trouble getting Android Studio up and running on XUbuntu. For some reason, the initial setup wizard would just spit out a Java exception and never proceed. Fortunately, after realizing you can just skip the wizard, I slowly got the IDE working properly and the phone connected over USB. There was a bit of a "Linux moment" when the debugger wouldn't start because libncurses.5.so wasn't installed on the system (?), but that was an easy fix.


Once I could build and debug conveniently via the IDE, things picked up speed considerably. I managed to fix the most egregious problems like incorrect font colors and issues with the on-screen keyboard.


The two unique Android "features" are:


The Java application that hosts the native Lagrange app code via JNI. This is based on an SDL example app with very few changes. I expect to still replace this part with the app stub included with the latest SDL sources. I'm currently using a pretty historic SDL 2.0.5, which may explain some of the instability I've been seeing.

The app icon was slightly modified to expand the background because Android icons expect more surrounding space.


The most pressing issue now is updating SDL to 2.0.18. This may require recreating the Android project from scratch, but with what I've learned about the dev tools so far, it may not be too much of a problem.


Known issues


Here is a non-exhaustive list of issues that people have reported:


Crash when creating a bookmark for the first time.

Crash when opening an image.

Crash when refreshing subscribed feeds.

Crash when viewing the Emoji test page.

Crash when opening Settings.

An incorrect vertical offset in touch positions, probably related to software system keys. (My device has hardware keys.)

Web links don't open (requires a newer SDL).

Scroll acceleration and overscroll are more iOS-y than Android-y.


skyjake

📅 2021-12-27

🏷 Android

🏷 Lagrange

CC-BY-SA 4.0


skyjake's Gemlog

-- Response ended

-- Page fetched on Tue May 7 14:15:55 2024