Android is the most popular operating system for mobile phones and tablets.

Contents

Most vendors have their own (slightly modified) distribution of Android.
Some distributions do not allow the user to remove preinstalled apps.
Luckily, there are devices available that support flashing alternative Android distributions.

LineageOS
Successor of CyanogenMod
https://lineageos.org/
Supported devices: https://wiki.lineageos.org/devices/

As in 2020, there are approximately three million apps on Google Play.
If you need an app for something, you are possibly trying out some of them.
Some of them need access to personal data. Some of them are full of advertisements.
Here is a list of apps, I can recommend.

App Stores

F-Droid
App store with free and open source software (foss)
https://f-droid.org/packages/org.fdroid.fdroid/
Aurora Store
Download apps from Google Play without Google Apps (GApps) installed
https://f-droid.org/packages/com.aurora.store/

Internet

Fennec
Internet browser based on Firefox
https://f-droid.org/packages/org.mozilla.fennec_fdroid/
In Fennec, popular Firefox add-ons can be used.
K-9 Mail
Full-featured email client
https://f-droid.org/packages/com.fsck.k9/
NewPipe
Lightweight YouTube front-end
https://f-droid.org/packages/org.schabi.newpipe/
RadioDroid
Internet radio and alarm clock
https://f-droid.org/packages/net.programmierecke.radiodroid2/
Listen to online radio streams from https://www.radio-browser.info/
Change Detection
Automatically detects changes on websites
https://f-droid.org/packages/com.bernaferrari.changedetection/

Security

KeePassDX
Password safe
https://f-droid.org/packages/com.kunzisoft.keepass.libre/
OpenKeychain
Encrypts your communication
https://f-droid.org/packages/org.sufficientlysecure.keychain/

Camera

Open Camera
Feature-rich camera app
https://f-droid.org/packages/net.sourceforge.opencamera/
Barcode Scanner
QR code scanner
https://f-droid.org/packages/com.google.zxing.client.android/

Navigation

OsmAnd~
Offline/online maps and navigation
https://f-droid.org/packages/net.osmand.plus/
HERE WeGo
City navigation
https://apkpure.com/here-wego-maps-navigation/com.here.app.maps

Calendar

Etar - OpenSource Calendar
Supports offline calendars
https://f-droid.org/packages/ws.xsoh.etar/
Calendar Import-Export
Import & export (backup) calendars using ics files
https://f-droid.org/packages/org.sufficientlysecure.ical/

Contacts

Export Contacts
Backup contacts in vCard 3.0 contacts file (*.vcf)
https://f-droid.org/packages/am.ed.exportcontacts/
Share my number via QR code
This app displays a QR code others can easily scan
https://f-droid.org/packages/com.github.characterdog.share_my_number/

Multimedia

VLC
Video and music player
https://f-droid.org/packages/org.videolan.vlc/
eSpeak
Text-to-speech (TTS) engine
https://f-droid.org/packages/com.reecedunn.espeak/
Since LineageOS 16 (Android 9), a TTS engine is no longer included.

Reading

MuPDF
Lightweight document viewer
https://f-droid.org/packages/com.artifex.mupdf.viewer.app/
LibreOffice Viewer
Read various office file formats
https://f-droid.org/packages/org.documentfoundation.libreoffice/

Theming

Muzei
Live wallpaper of famous art
https://f-droid.org/packages/net.nurik.roman.muzei/

Games

Apple Flinger
Use a slingshot to shoot with apples
https://f-droid.org/packages/com.gitlab.ardash.appleflinger.android/
Mindustry
A factory-based sandbox tower defense game
https://f-droid.org/packages/io.anuke.mindustry/
PPSSPP
PSP emulator
https://f-droid.org/packages/org.ppsspp.ppsspp/
lichess
Play chess online against others or offline against Stockfish engine
https://f-droid.org/packages/org.lichess.mobileapp.free/

Science and Education

Aard 2
Offline dictionary
https://f-droid.org/packages/itkach.aard2/
Dictionaries: https://github.com/itkach/slob/wiki/Dictionaries
Graph 89
Calculator emulator
https://f-droid.org/packages/com.Bisha.TI89EmuDonation/
ROM: https://www.ticalc.org/programming/emulators/romdump.html#12

Development

Acode
Text editor with syntax highlighting
https://f-droid.org/packages/com.foxdebug.acode/
Termux
Terminal emulation
https://f-droid.org/packages/com.termux/
On first start, the bootstrap zip file is downloaded and extracted to /data/data/com.termux/files/usr/.
Terminal toolbar can be hidden by pressing volume up and q.
Termux:API
Command line access to device API
https://f-droid.org/packages/com.termux.api/
Version 0.31 is the last that supports sending sms messages.
To install old versions, the F-Droid Archive repository needs to be enabled.
Hacker's Keyboard
Keyboard with tab, ctrl and arrow keys
https://f-droid.org/packages/org.pocketworkstation.pckeyboard/

Verify Signature of Packages

Android packages (APKs) are signed with self-signed certificates.

The command line tool apksigner is part of the Android SDK Build Tools:

https://developer.android.com/studio/command-line/apksigner#usage-verify

In Termux, apksigner can be installed using the following command:

pkg install apksigner

To verify the signature of an APK, execute the following command:

apksigner verify --print-certs org.fdroid.fdroid_1010000.apk
F-Droid
Signer #1 certificate DN: CN=Ciaran Gultnieks, OU=Unknown, O=Unknown, L=Wetherby, ST=Unknown, C=UK
Signer #1 certificate SHA-256 digest: 43238d512c1e5eb2d6569f4a3afbf5523418b82e0a3ed1552770abb9a9c9ccab
Signer #1 certificate SHA-1 digest: 05f2e65928088981b317fc9a6dbfe04b0fa13b4e
Signer #1 certificate MD5 digest: 17c55c628056e193e95644e989792786
HERE WeGo
Signer #1 certificate DN: CN=CodeSigning for HERE Global BV, OU=Android Signing, OU=Android Signing, O=HERE Global BV, L=Veldhoven, ST=Veldhoven, C=NL
Signer #1 certificate SHA-256 digest: f3fa1a6eb3f8bace3662e83ab167a90462d1a78240e64cf24675887c5d78cb13
Signer #1 certificate SHA-1 digest: 6d256640c0eff26ccb3a8b817cdc901f3d1d77b4
Signer #1 certificate MD5 digest: 528eab01b512151498f89f5e88767bf9
Magic Earth
Signer #1 certificate DN: CN=ROUTE 66, OU=ROUTE 66 Switzerland GmbH, O=ROUTE 66 Switzerland GmbH, L=Brasov, ST=Romania, C=RO
Signer #1 certificate SHA-256 digest: fa91bd3a8bfa2b03bda48422b238d584f23921154a5279e721f2f90a74d38806
Signer #1 certificate SHA-1 digest: 3705ba93d86f9566cdb440977e65c8df660514ae
Signer #1 certificate MD5 digest: 82380142088327f4d4a14c9547ff46de
Tor Browser
Signer #1 certificate DN: C=US, ST=WA, L=Seattle, O=The Tor Project, CN=Tor Browser
Signer #1 certificate SHA-256 digest: 20061f045e737c67375c17794cfedb436a03cec6bacb7cb9f96642205ca2cec8
Signer #1 certificate SHA-1 digest: 6e9d890dcf0d5ca0d7c8f28c822ed228da5f3490
Signer #1 certificate MD5 digest: e8ee59c262de3d867b015afbae38e061

Send SMS Messages

Using Termux:API

termux-sms-send -n "+1234567890" "Just a test!"

Using ADB

Functions of service interfaces are declared in
the Android Interface Definition Language (AIDL).
There is a service interface to handle SMS API requests:

ISms.aidl of Android 12:

/* ... */
interface ISms {
    /* ... */
    void sendTextForSubscriber(in int subId, String callingPkg, String callingAttributionTag,
            in String destAddr, in String scAddr, in String text, in PendingIntent sentIntent,
            in PendingIntent deliveryIntent, in boolean persistMessageForNonDefaultSmsApp,
            in long messageId);
    /* ... */
}

Functions of the service interfaces can be called via adb shell.
The follwing shell command calls the 5th function of the isms service interface:

adb shell service call isms 5  i32 0  s16 "com.android.mms.service"  s16 "null" \
    s16 "+1234567890"  s16 "null"  s16 "'Just a test'"  s16 "null" \
    s16 "null"  i32 0 \
    i64 0

Android Studio

The Android Studio is the official Integrated Development Environment (IDE)
for Android. The IDE based on IntelliJ IDEA.
The installer is available on the developer pages of Android:

https://developer.android.com/studio

Termux
https://termux.com/
https://github.com/termux/termux-packages/releases
microG Project
https://microg.org/
https://lineage.microg.org/
Privacy Firendly Apps
https://secuso.aifb.kit.edu/105.php
Dominik Schürmann
https://www.schuermann.eu/about/#android