References
This book draws information from numerous resources - primarily developer.android.com (DAC) and source.android.com (SAC), which provide Google's official Android documentation. Additional resources are blogs, presentations and generally high-quality material which helps unravel the many aspects of Android's multitude of features.
If this work ever comes out in PDF*, all references are already hyperlinked, thus obviating the need for a references section, or the much needed Index. Until then, the print version certainly mandates both. I have added the references to print as of v1.0.1, and - to spare the interested reader long URL typing - also posted them online. This also helps correct their omission from v1.0.0 of the book (mea culpa), and enables me to update or correct them, should the need arise. The index will be maintained online, at http://NewAndroidBook.com/index.html**, to be kept in-sync as much as possible, once I get a good way to search PDFs programmatically.
Whereas in my previous books I used numbered references, I have decided to use short strings this time. The rationale is that the Android works are still being maintained by me, and when content is added or revised it might affect references, which would have to be renumbered. Using strings is a bit more cumbersome but is in that sense "future proof", and the references listed here are sorted - by chapter, and alphabetically, rather than in order of appearance.
** - As opposed to the main page of the site, which is NotReallyIndex.html...
The Source
cdd | SAC - "Compatibility Definition Documents" - https://source.android.com/compatibility/cdd |
ebpg | Will Deacon (KVM Forum) - "Virtualization for the Masses: Exposing KVM on Android" - https://www.youtube.com/watch?v=wY-u6n75iXc |
ebpg | Brendan Gregg - "BPF Performance Tools" (Addison-Wesley Prof Computing Series, 1st Ed) |
ebpf | SAC - "Extending the Kernel With eBPF" - https://source.android.com/devices/architecture/kernel/bpf |
kc | SAC - "Kernel Configuration" - https://source.android.com/devices/architecture/kernel/config |
modsys | SAC - "Modular System" - https://source.android.com/devices/architecture/modular-system/ |
sm | Soong Sources - https://ci.android.com/builds/submitted/7289536/linux/latest/view/soong_build.html |
soong | Soong Sources - https://android.googlesource.com/platform/build/soong/+/master/README.md |
Android at the Native Level
aei | DAC - "ApplicationExitInfo" - https://developer.android.com/reference/android/app/ApplicationExitInfo |
dtd | SAC - "Debugging Native Android Code" - https://source.android.com/devices/tech/debug/ |
er | DAC - "App Process Exit Reasons (Android 11)" - https://developer.android.com/about/versions/11/features#app-process-exit-reasons |
gwpa | DAC - "GWP-ASAN" - https://developer.android.com/ndk/guides/gwp-asan |
lmu | AOSP Sources - https://android.googlesource.com/platform/system/memory/libmemunreachable/+/master/README.md |
pd | Perfetto Documentation - https://perfetto.dev/docs/data-sources/native-heap-profiler |
rela | MaskRay's Blog - "Relative Relocations and RELR" - https://maskray.me/blog/2021-10-31-relative-relocations-and-relr |
sco | SAC - "Scudo" - https://source.android.com/devices/tech/debug/scudo |
vndkd | SAC - "VNDK" - https://source.android.com/devices/architecture/vndk |
vndkp | SAC - "VNDK - Design Principles and Practical Migration" - https://source.android.com/devices/architecture/images/VNDK.pdf |
Packages & the PackageManagerService
ain | DAC - "Intent Filters" - https://developer.android.com/guide/components/intents-filters |
amxml | DAC - "Android Manifest" - https://developer.android.com/guide/topics/manifest/manifest-intro |
apph | DAC - "App Hibernation" - https://developer.android.com/topic/performance/app-hibernation |
foa | XDA Developers - "Fabricated Overlay .." - https://www.xda-developers.com/android-12s-fabricated-overlay-api-brings-back-rootless-themes/ |
qap | Google Play (Support answers) - https://support.google.com/googleplay/android-developer/answer/10158779 |
rro | Sony - "Runtime Resource Overlay" - https://developer.sony.com/posts/ sony-contributes-runtime-resource-overlay-framework-to-android-code-example/ |
zao | Android Developers' Blog - "ZipAlign" - https://android-developers.googleblog.com/2009/09/zipalign-easy-optimization.html |
Application Internals & the ActivityManagerService
caf | DAC - "Cached App Freezer" - https://source.android.com/devices/tech/perf/cached-apps-freezer | |
cpb | DAC - "Content Provider Basics" - https://developer.android.com/guide/topics/providers/content-provider-basics.html | |
ltm | DAC - "Lock Task Mode" - https://developer.android.com/work/dpc/dedicated-devices/lock-task-mode | |
ooma | AOSP Sources - "OoM Adjuster" - https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/services/core/ java/com/android/server/am/OomAdjuster.md | |
sli | DAC - "Slices" - https://developer.android.com/guide/slices/getting-started | |
tasks | DAC - "Tasks" - https://developer.android.com/guide/components/activities/tasks-and-back-stack |
Application Services
aa | DAC - "Search" - https://developer.android.com/guide/topics/search |
a11pd | DAC - "Compatibility Framework Tools" - https://developer.android.com/guide/app-compatibility/test-debug |
asrc | DAC - "App Search" - https://developer.android.com/guide/topics/search/appsearch |
job | DAC - "Background Optimization" - https://developer.android.com/topic/performance/background-optimization |
shc | DAC - "Creating Shortcuts" - https://developer.android.com/guide/topics/ui/shortcuts/creating-shortcuts |
shd | DAC - "Datasets" - https://developer.android.com/training/data-storage/shared/datasets |
smdoc | DAC - "SearchManager class" - https://developer.android.com/reference/android/app/SearchManager |
Dalvik Virtual Machine Internals
db | SAC - Dalvik Bytecode - http://source.android.com/devices/tech/dalvik/dalvik-bytecode.html |
dc | SAC - Dalvik Constraints - https://source.android.com/devices/tech/dalvik/constraints.html |
dff, dii | SAC - DEX Format - http://source.android.com/devices/tech/dalvik/dex-format.html |
dif | SAC - Dalvik Instructions - http://source.android.com/devices/tech/dalvik/instruction-formats.html |
io2 | Dan Bornstein (Google I/O '08) - "The Dalvik Virtual Machine" - https://sites.google.com/site/io/dalvik-vm-internals/ |
r8 | AOSP - D8/R8 sources - https://r8.googlesource.com/r8/+/refs/heads/main |
ws | Companion Website - "Analyzing the WeakSauce Exploit" - http://newandroidbook.com/Articles/HTC.html |
The Android RunTime (ART)
art17 | Google I/O '17 - "ART Garbage Collection" - https://www.youtube.com/watch?v=iFE2Utbv1Oo |
art19 | Google I/O '19 - "ART Garbage Collection" - https://www.youtube.com/watch?v=1uLzSXWWfDg |
ati | SAC - "ART Tooling Interface" - https://source.android.com/devices/tech/dalvik/art-ti |
cha | SAC - "Class Hierarchy Analysis" - https://source.android.com/devices/tech/dalvik/improvements#class-hierarchy-analysis |
ds | Usenix - DroidScraper - https://www.usenix.org/system/files/raid2019-ali-gombe.pdf |
gcd | SAC - Garbage Collection - https://source.android.com/devices/tech/dalvik/gc-debug |
jgc | Jones, Hosking & Moss - Garbage Collection Handbook (Chapman & Hall/CRC) |
jia | Oracle - JNI Invocation Specification - JNI Invocation Specification |
jvmti | Oracle - "JVM Tooling Interface" - https://docs.oracle.com/javase/8/docs/technotes/guides/jvmti/index.htm |
sacj | SAC - "JIT Compilation" - https://source.android.com/devices/tech/dalvik/jit-compiler |
Binder
ab | DAC - "AIDL Backends" - https://source.android.com/devices/architecture/aidl/aidl-backends |
bsg | SAC - "Binder IPC Scatter/Gather" - https://source.android.com/devices/architecture/hidl/binder-ipc#scatter |
c24 | Synacktiv - "CVE-2020-0041" - https://www.synacktiv.com/en/publications/binder-analysis-and-exploitation-of-cve-2020-0041.html |
cbb | Christian Braunder - "BinderFS" - https://brauner.github.io/2019/01/09/android-binderfs.html |
dh | Dianne Hackborn - "OpenBinder Documentation" - http://www.angryredplanet.com/~hackbod/openbinder/ |
gai | DAC - "AIDL" - https://developer.android.com/guide/components/aidl |
lwns | LWN - "Memory Shrinkers" - https://lwn.net/Articles/550463/ |
sa | DAC - "Stable AIDL" - https://source.android.com/devices/architecture/aidl/stable-aidl |