I am a 60-year old Linux guru: coding Bismon (documented here) and using and coding on Unix since 1987 (SunOS3.2) and Linux since 1993 (but I never used Windows, and very probably never will). Of course, I do like command line interfaces. My sight is not very good but did improve (I got cataract surgery a few months ago). BTW, I did contribute to GCC plugin system thru GCC MELT (an obsolete Lisp-like DSL -that I designed and implemented- to extend GCC)

For my 60 years birthday, my grown-up kids gave me a tablet: Huawei MediaPad M5 (Android 8) which I completed with a Logitech bluetooth physical keyboard.

I want to understand much more how Android works. Of course it runs a Linux kernel (so same syscalls(2)), with a strange bionic libc. I knew (and wrote a technical report - some internal survey document) the internals of JVM and JNI in 2001. I do know a bit of Java.

I don't have the time to study all the source code of the open source parts of Android. I probably would have the skills to do that, but not the motivation and time.

It seems that Android is using setuid & chroot techniques quite differently than usual Linux distributions do. Where is that documented? Apparently, each JVM (for every Android app) is running under its own uid.

I would like to be able to code small GPLv3+ applications for Android. What do I need to learn. I just did download the SDK tools for my Linux AMD2970 desktop.

What are the next steps? I know that Qt has been ported to Android and wish to code for it.

What would be the Android equivalent of the ALP book to code Android applications with both Java and C++ (Android NDK). Or where is the equivalent of section 3 of man pages for Android? I am considering cross-compiling musl-libc for my tablet.

I am afraid of rooting my brand new tablet (that could lost the warranty). I might be tempted to install some Debian-like thing on it within a year. Is that reasonable?

I might port SBCL to my tablet (if that is easy, which I don't know).

PS. I am a free software enthusiast.

  • Dear Basile I am sorry but your question is off topic on all StackExchange sites as every answer would be opinion based. Therefore it is impossible to decide if an answer is correct or not. Anyway I would recommend to just use AndroidStudio and develop a simple Java based app. C/C++ is possible but makes development and debugging way more complex. If you have concrete development question you can post them on stackoverflow.com
    – Robert
    Sep 12, 2019 at 14:48
  • Hello Basile. The objectives of your question are outside the scope we have established for this site. However, certain forums like Linuxquestions, XDA, and Reddit might be able to help you out in this case though. Good luck. :)
    – Firelord
    Sep 12, 2019 at 17:48
  • "I am afraid of rooting my brand new tablet" - Huawei disallows bootloader unlocking, so you won't be able to do that anyway, which will limit what you can do in the long run.
    – Andy Yan
    Sep 13, 2019 at 0:44
  • I guess that within a year, someone could find a way (for rooting my tablet). People are creative. Sep 13, 2019 at 5:01


Browse other questions tagged .