Difference between revisions of "Android"
(7 intermediate revisions by the same user not shown) | |||
Line 540: | Line 540: | ||
* '''Android App Bundles (AAB): https://developer.android.com/guide/app-bundle''' | * '''Android App Bundles (AAB): https://developer.android.com/guide/app-bundle''' | ||
* Exploring the Android App Bundle: https://medium.com/google-developer-experts/exploring-the-android-app-bundle-ca16846fa3d7 | * Exploring the Android App Bundle: https://medium.com/google-developer-experts/exploring-the-android-app-bundle-ca16846fa3d7 | ||
+ | * Android dev docs -- AAB - bundletool: https://developer.android.com/studio/command-line/bundletool | [https://github.com/google/bundletool SRC] | ||
<ref>[[wikipedia: Android_application_package]] ('''A'''ndroid application '''P'''ac'''k'''age)</ref> | <ref>[[wikipedia: Android_application_package]] ('''A'''ndroid application '''P'''ac'''k'''age)</ref> | ||
<ref>What does APK stand for? What is the internal format?: https://android.stackexchange.com/questions/1365/what-does-apk-stand-for-what-is-the-internal-format</ref> | <ref>What does APK stand for? What is the internal format?: https://android.stackexchange.com/questions/1365/what-does-apk-stand-for-what-is-the-internal-format</ref> | ||
Line 729: | Line 730: | ||
<ref>Google working on ‘Fast Share,’ Android Beam replacement and AirDrop competitor: https://9to5google.com/2019/06/29/google-android-fast-share/</ref> | <ref>Google working on ‘Fast Share,’ Android Beam replacement and AirDrop competitor: https://9to5google.com/2019/06/29/google-android-fast-share/</ref> | ||
<ref>How to Send Apps Between Android Devices: https://www.howtogeek.com/714458/how-to-send-apps-between-android-devices/</ref> | <ref>How to Send Apps Between Android Devices: https://www.howtogeek.com/714458/how-to-send-apps-between-android-devices/</ref> | ||
− | <ref> AirDrop for Android - How to Use Android Nearby Share: https://www.howtogeek.com/684434/airdrop-for-android-how-to-use-android-nearby-share/</ref> | + | <ref>AirDrop for Android - How to Use Android Nearby Share: https://www.howtogeek.com/684434/airdrop-for-android-how-to-use-android-nearby-share/</ref> |
Line 747: | Line 748: | ||
<ref>Enabling the `onClick` method in a custom FrameLayout view: https://stackoverflow.com/questions/54337370/enabling-the-onclick-method-in-a-custom-framelayout-view</ref> | <ref>Enabling the `onClick` method in a custom FrameLayout view: https://stackoverflow.com/questions/54337370/enabling-the-onclick-method-in-a-custom-framelayout-view</ref> | ||
<ref>Android showcase designs UX and Android touch gestures: https://basitali11.medium.com/android-showcase-designs-ux-and-android-touch-gestures-2a6ec48de888 | [https://github.com/BasitAliHashmi/CustomFrameLayout SRC]</ref> | <ref>Android showcase designs UX and Android touch gestures: https://basitali11.medium.com/android-showcase-designs-ux-and-android-touch-gestures-2a6ec48de888 | [https://github.com/BasitAliHashmi/CustomFrameLayout SRC]</ref> | ||
+ | * How to create Tab Layout in an Android App using Kotlin?: https://www.tutorialspoint.com/how-to-create-tab-layout-in-an-android-app-using-kotlin<ref>Android - How to find which tab is active in a tablayout?: https://stackoverflow.com/questions/33136807/android-how-to-find-which-tab-is-active-in-a-tablayout ([https://developer.android.com/reference/android/support/design/widget/TabLayout.html#getSelectedTabPosition() getSelectedTabPosition] provides a "zero-based" index of the currently selected Tab)</ref> | ||
==== Views ==== | ==== Views ==== | ||
Line 1,278: | Line 1,280: | ||
* Android 5 Preferences tutorial (PreferenceScreen, PreferenceActivity, and PreferenceFragment): https://alvinalexander.com/android/android-tutorial-preferencescreen-preferenceactivity-preferencefragment | * Android 5 Preferences tutorial (PreferenceScreen, PreferenceActivity, and PreferenceFragment): https://alvinalexander.com/android/android-tutorial-preferencescreen-preferenceactivity-preferencefragment | ||
* Should I replace ActionBarActivity with AppCompatActivity?: https://stackoverflow.com/questions/30462720/should-i-replace-actionbaractivity-with-appcompatactivity (ANSWER: YES) | * Should I replace ActionBarActivity with AppCompatActivity?: https://stackoverflow.com/questions/30462720/should-i-replace-actionbaractivity-with-appcompatactivity (ANSWER: YES) | ||
− | * Android ''Floating Action Button'' (FAB) tutorial with example: https://tutorialwing.com/android-floating-action-button-tutorial-with-example/<ref>error -- resource android:attr/fontVariationSettings not found: https://icetutor.com/question/error-resource-androidattr-fontvariationsettings-not-found/</ref> | + | * Android ''Floating Action Button'' (FAB) tutorial with example: https://tutorialwing.com/android-floating-action-button-tutorial-with-example/<ref>error -- resource android:attr/fontVariationSettings not found: https://icetutor.com/question/error-resource-androidattr-fontvariationsettings-not-found/</ref><ref>Two floating action buttons next to each other: https://stackoverflow.com/questions/31205720/two-floating-action-buttons-next-to-each-other</ref><ref>Floating Action Button (FAB) in Android with "multi-FAB" example: https://www.geeksforgeeks.org/floating-action-button-fab-in-android-with-example/</ref> |
* How to prevent multiple instances of an Activity when it is launched with different intents: https://stackoverflow.com/questions/4341600/how-to-prevent-multiple-instances-of-an-activity-when-it-is-launched-with-differ | * How to prevent multiple instances of an Activity when it is launched with different intents: https://stackoverflow.com/questions/4341600/how-to-prevent-multiple-instances-of-an-activity-when-it-is-launched-with-differ | ||
Line 1,284: | Line 1,286: | ||
* android-ActivityInstrumentation: https://github.com/googlesamples/android-ActivityInstrumentation | * android-ActivityInstrumentation: https://github.com/googlesamples/android-ActivityInstrumentation | ||
+ | * Add multi-density vector graphics: https://developer.android.com/studio/write/vector-asset-studio<ref>How to create ''android:pathData''?: https://stackoverflow.com/questions/36677768/how-to-create-androidpathdata</ref><ref>Understanding VectorDrawable pathData commands in Android: https://medium.com/@ali.muzaffar/understanding-vectordrawable-pathdata-commands-in-android-d56a6054610e#.g4gbz1r5p</ref><ref>List of available (OOTB Android platform) icons?: https://stackoverflow.com/questions/47181993/list-of-available-icons</ref><ref>Fix common "AAPT: error: resource android:drawable/ic_search is private": https://stackoverflow.com/questions/61829397/aapt-error-resource-androiddrawable-ic-search-is-private (mostly caused by using "@android:drawable" instead of "@drawable" directly, or, forgetting to map in the icon via "mipmap --> New --> Vector Asset")</ref> | ||
+ | * Introducing Vectordrawable-Seekable: https://android.jlelse.eu/introducing-vectordrawable-seekable-b96ef57ffe36 (animated vector graphics) | ||
* Reveal Transition: https://halfthought.wordpress.com/2014/11/ | * Reveal Transition: https://halfthought.wordpress.com/2014/11/ | ||
* Postponing Fragment Transitions: https://halfthought.wordpress.com/2015/06/<ref>Since the Android ''getFragmentManager()'' API is deprecated, is there any alternative?: https://stackoverflow.com/questions/51737667/since-the-android-getfragmentmanager-api-is-deprecated-is-there-any-alternati</ref> | * Postponing Fragment Transitions: https://halfthought.wordpress.com/2015/06/<ref>Since the Android ''getFragmentManager()'' API is deprecated, is there any alternative?: https://stackoverflow.com/questions/51737667/since-the-android-getfragmentmanager-api-is-deprecated-is-there-any-alternati</ref> | ||
Line 1,291: | Line 1,295: | ||
* How to implement cube Transition effect animation on ViewPager in android?: https://stackoverflow.com/questions/13245031/how-to-implement-cube-transition-effect-animation-on-viewpager-in-android<ref>Using ViewPager to Create a Sliding Screen UI in Android: https://www.sitepoint.com/using-viewpager-to-create-a-sliding-screen-ui-in-android/ | [https://github.com/sitepoint-editors/ViewPagerAndroid SRC] | [https://developer.android.com/reference/android/support/v4/view/ViewPager.html DOCS]</ref> | * How to implement cube Transition effect animation on ViewPager in android?: https://stackoverflow.com/questions/13245031/how-to-implement-cube-transition-effect-animation-on-viewpager-in-android<ref>Using ViewPager to Create a Sliding Screen UI in Android: https://www.sitepoint.com/using-viewpager-to-create-a-sliding-screen-ui-in-android/ | [https://github.com/sitepoint-editors/ViewPagerAndroid SRC] | [https://developer.android.com/reference/android/support/v4/view/ViewPager.html DOCS]</ref> | ||
* Complex UI/Animations on Android: https://proandroiddev.com/complex-ui-animation-on-android-8f7a46f4aec4 | * Complex UI/Animations on Android: https://proandroiddev.com/complex-ui-animation-on-android-8f7a46f4aec4 | ||
− | |||
* Transitions: https://developer.android.com/training/transitions | * Transitions: https://developer.android.com/training/transitions | ||
* Ripple effect in Android: http://www.tothenew.com/blog/ripple-effect-in-android/ | * Ripple effect in Android: http://www.tothenew.com/blog/ripple-effect-in-android/ | ||
Line 1,540: | Line 1,543: | ||
* Multiple Governments Buying Android "Zero-Days" (exploits) for Spying (on citizens and/or "enemies of the state") says Google: https://www.darkreading.com/attacks-breaches/google-android-0-days-multiple-governments-spying | * Multiple Governments Buying Android "Zero-Days" (exploits) for Spying (on citizens and/or "enemies of the state") says Google: https://www.darkreading.com/attacks-breaches/google-android-0-days-multiple-governments-spying | ||
* 13 Things to know for Android developers at Google I/O!: https://android-developers.googleblog.com/2022/05/13-things-to-know-for-android-developers-at-google-io.html | * 13 Things to know for Android developers at Google I/O!: https://android-developers.googleblog.com/2022/05/13-things-to-know-for-android-developers-at-google-io.html | ||
+ | * Cardinal Sins of Android Development: https://proandroiddev.com/the-seven-actually-10-cardinal-sins-of-android-development-491d2f64c8e0 | ||
Latest revision as of 05:35, 4 July 2022

Android is the codename (and now working name) of the open source mobile operating system (Mobile OS) project started and currently being lead by Google. Android is to be the core physical product of the labors of the Open Handset Alliance.
Contents
- 1 OS Versions
- 2 Device versions
- 3 Virtual Environments
- 4 Development Environments
- 5 Programming Languages
- 6 Testing
- 7 Platform
- 8 JetPack
- 9 Features
- 10 Development concepts
- 11 Architectures
- 12 Google Play
- 13 Tools
- 14 Resources
- 15 Tutorials
- 16 External Links
- 17 References
- 18 See Also
OS Versions
There's a predictable annual "release cycle" for Android versions:
- Android version history: https://www.android.com/history/
Android
- Android (1.0): https://android-developers.googleblog.com/2008/09/announcing-android-10-sdk-release-1.html
Brownie
Unofficial name, it was actually still just called Android in the public (and internally they used the term "le petit four").
- Brownie (1.1): https://www.android.com/history/#/donut
Cupcake
- Donut (1.5): https://www.android.com/history/#/donut
Donut
- Donut (1.6): https://www.android.com/history/#/donut
Eclair
- Eclair (2.0-2.1): https://www.android.com/history/#/eclair
Froyo
- Froyo (2.2-2.2.3): https://www.android.com/history/#/froyo
Gingerbread
- Gingerbread (2.3-2.7): https://www.android.com/history/#/gingerbread
Honeycomb
- Honeycomb (3.x): https://www.android.com/history/#/honeycomb
Ice cream sandwich
- Ice Cream Sandwich (4.0): https://developer.android.com/about/versions/android-4.0-highlights[8]
Jellybean
- Jellybean (4.3): https://www.android.com/versions/jelly-bean-4-3/[9]
KitKat
- KitKat (4.4): https://www.android.com/versions/kit-kat-4-4/[10]
Lollipop
- Lollipop (5.x): https://www.android.com/versions/lollipop-5-0/[11]
Marshmallow
- Marshmallow (6.x): https://www.android.com/versions/marshmallow-6-0/[12]
Nougat
- Nougat (7.x): https://www.android.com/versions/nougat-7-0/[13]
Oreo
- Oreo (8.x): https://www.android.com/versions/oreo-8-0/[14]
Pie
- Android Pie (9.x): https://www.android.com/versions/pie-9-0/[15]
Q
No official codename so let's go with "Quindim" (a Brazilian dessert).
- Android Q (10.x): https://developer.android.com/about/versions/10
R (11)
"Rocky Road" squares are probably one of the best unofficial codenames.
As of Android "R" (11.0 release), the Android platform will now be numbered, and "sweets names" or letters will only be used as a working title internally by Google & OEM partners prior to platform updates, simplifying the "annual to semi-annual" major platform updates.
- Android R (11.x): https://developer.android.com/11
[20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30]
12
Codenames have returned with "Snow Cone".
- Android 12.x: https://developer.android.com/preview/index.html
[31] [32] [33] [34] [35] [36] [37] [38] [39]
13
Codenamed "Tiramisu" (but its hidden in Dev preview code).
- Android 13: https://developer.android.com/about/versions/13
[40] [41] [42] [43] [44] [45] [46]
14
Fuchsia
- Fuchsia (official website): https://fuchsia.dev/
[47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57]
Device versions
In comparison to the primary Mobile OS competitor, Apple's iOS, there have been a massively broad variety of Devices released with various combinations of minimum and maximum supported (and upgradeable) Android platform OS version ranges.
- wikipedia: List of Android smartphones
- List of Android devices: https://android.fandom.com/wiki/List_of_Android_devices
Google entered the Device manufacturing market as their own OEM after first parterning with (and acquiring a majority stake in) the Motorola electronics company. This was later sold off to Lenovo (group built success in PC market after acquiring the IBM ThinkPad product line), at which point Google invested into building their own Device manufacturing arm, citing mainly a desire to fully control the design, development, testing, production, distribution and maintenance/support phases.
- wikipedia: Google Nexus ("Nexus series" smartphones/tablets)
- wikipedia: Google Pixel ("Pixel series" smartphones/tablets)
Samsung
- Samsung -- Android Skin - One UI: https://www.samsung.com/us/apps/one-ui/
- wikipedia: Note series
- wikipedia: Samsung Galaxy S series
- Android Samsung Store help on Publishing: http://bcmoney-mobiletv.com/blog/2020/02/05/android-samsung-store-help/
- Samsung - Remote Test Lab: https://developer.samsung.com/remotetestlab/rtlDeviceList.action (reserves a specific Samsung device for 30min timeslots, first 20 times are free, then costs money/credits)
LG
- LG cell phones: https://www.lg.com/us/cell-phones
- LG tablets: https://www.lg.com/us/tablets
HTC
- HTC -- Android Skin - Sense: https://www.htc.com/us/phone-features/htc-sense-os/[69]
- wikipedia: HTC_Dream (also known as T-Mobile G1 in North America, it was the first major OEM-backed, commercially distributed Android device and pioneered many UI/UX modalities)
- HTC Hero (first Android device that came packaged with HTC's "Sense OS" Android skin)
- wikipedia: HTC_Wildfire_S (expand the "Template" section labelled HTC Android deices at the bottom of Wikipedia article)
- HTC phones: https://www.gsmarena.com/htc-phones-45.php
Other
The primary vendor OEMs other than those listed above include:
- Amazon (FireOS series)
- Sony-Ericsson ("Xperia" series)
- Nokia
- Acer
- MI
- Asus
- Huawei
- Xiaomi
- ZTE
A number of other prominent vendors have "dabbled" into the platform for reasons ranging from "if you can't beat'em join'em" to simply trying to cache in on the Mobile market and Android's notoriety, including:
- Microsoft (have scrapped their prior Windows Mobile & Windows Phone OS offerings)
- Blackberry (formerly called RIM, have all but scrapped the BlackBerryOS)
- HP (briefly launched a Tablet product line but now focusing back on PCs and full Windows Tablets)[73]
- Dell
- Toshiba
- Lenovo
- Palm
- Archos
- Alacatel-Lucent
- Barnes & Noble ("Nook" series and related E-Books & reader tablets)
Some brands known for more poorly performing, or, simply intentionally lower-powered, cheaper/low-end devices:
- Oppo
- OnePlus
- BBK Electronics
- BQ Aquaris
Virtual Environments
A number of platforms support loading Android apps on non-Android Operating Systems, such as:
- BlackBerry 10
- Amazon Fire OS
- Windows 11
- BlueStacks
- MEMu
- Genymotion
- AnBox
- Nox App Player
Development Environments
Android Studio
- Android Studio: https://developer.android.com/studio/index.html
[81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92]
Programming Languages
Java (Dalvik)
See: Java#Dalvix
Kotlin
See: Kotlin
Testing
See: Mobile Testing
- Automate everything you can in your (Android) development process: https://android.jlelse.eu/automate-everything-you-can-in-your-development-process-280cba101411
Unit Testing
See: JUnit
- Basics of Unit Testing (from Android perspective): https://android.jlelse.eu/basics-of-unit-testing-affdd2273310
- Android Testing Samples: https://github.com/android/testing-samples/
Instrumented Testing
- Android dev docs -- Testing - Instrumented Tests: https://developer.android.com/training/testing/instrumented-tests
UI Automator
- UIAutomatorViewer tutorial -- Inspector for Android Testing: https://www.guru99.com/uiautomatorviewer-tutorial.html
Espresso
- Espresso (CHEAT SHEET): https://developer.android.com/training/testing/espresso/cheat-sheet
- android-testing samples for Espresso, UIAutomator/UIAutomatorViewer, Appium, etc: https://github.com/googlesamples/android-testing | EXAMPLE-UnitTest
SCA
- Android dev docs -- Improve your code with lint checks: https://developer.android.com/studio/write/lint.html
ProGuard
- Shrink, obfuscate, and optimize your app: https://developer.android.com/studio/build/shrink-code
- Practical ProGuard rule examples: https://medium.com/androiddevelopers/practical-proguard-rules-examples-5640a3907dc9
- Troubleshooting ProGuard issues on Android: https://medium.com/androiddevelopers/troubleshooting-proguard-issues-on-android-bce9de4f8a74
- Have code quality analysis in your Android Project: https://android.jlelse.eu/have-code-quality-analysis-in-your-android-project-2a549e04d1a8
Platform
Mobile/Tablet
The core, original Android platform was designed to run on SmartPhones, and was later extended to support a broader variety of screen sizes, capable of running on anything from a small "feature phone" (original before DPI/PPI-scaling was 320x240) to a standard high-resolution scaled SmartPhone display (768x1024). As of Android 4.0 a platform resdesign broguht in support for much larger Phablet phones (some as high as 2960x1440 DPI/PPI-scaled) up to full tablets (starting at 1366x768 unscaled up to 2224x1668 DPI/PPI-scaled), which actually enabled Android to be used for a number of larger other types of display such as TVs or Kiosks (starting at 1920x1080 before DPI/PPI-scaling up to 3840x2160 all the way up to 4K 4096x2304 or 8K 7680x4320).
- Android - Phones & Tablets: https://www.android.com/phones-tablets/
Android TV
The development of a large number of "Android TV boxes" as of Android 4.x which were primarily software-based .
- Android TV: https://www.android.com/tv/
Android Wear
SmartWatches, Fitness Bands/Trackers, and similar wearable devices.
- Android Wear: https://wearos.google.com/
Android Things
Android-based mini operating system (OS) for embedded devices and micro-controllers such as Raspberry PI, Arduino, etc.
- Android Things: https://developer.android.com/things/
Android Auto
- Android Auto: https://www.android.com/auto/
- All Cars Compatible With Android Auto (updated as of Feb. 2022): https://www.howtogeek.com/526197/all-cars-compatible-with-android-auto-as-of-january-2020/
JetPack
Announced at GoogleIO 2018[105], Android Jetpack is a collection of reusable, purpose-built, highly-performant and customizable software components for the Android platform which help us in building great Android apps in a consistent manner across the various media/devices the Android platform supports (Android Mobile/Tablet, TV, Wear, Things).
These software components help in:
- Following the best practices and providing IDE auto-complete and/or templates to avoid needing to re-write any necessary boilerplate code
- Making complex concerns such as managing activity lifecycles, surviving configuration changes, preventing memory leaks, and passing/persisting data much simpler
The JetPack software components have been arranged into 4 distinct categories:
- Google dev docs -- Android Jetpack - Guide to app architecture: https://developer.android.com/jetpack/ | DOCS | JETPACK COMPONENTS
AndroidX
AndroidX is a major improvement to the original "Android Support Library" (ASL), which is no longer maintained but still functions for Android OS versions 1-9. There are Androidx packages to replace each Support Library, providing feature parity and also provide unique new features through additional libraries. Artifacts within the "androidx" namespace comprise the Android Jetpack libraries. Like the Support Library, libraries in the androidx namespace ship separately from the Android platform and provide backward compatibility across Android releases.
- AndroidX Overview: https://developer.android.com/jetpack/androidx/
- AndroidX lib reference (JAVADOCS): https://developer.android.com/reference/androidx/packages
- Android Dev Docs -- Migrating to AndroidX - Class Mappings: https://developer.android.com/jetpack/androidx/migrate/class-mappings
- Android Dev Docs -- Migrating to AndroidX - Artifact Mappings: https://developer.android.com/jetpack/androidx/migrate/artifact-mappings
Foundation Components
- Foundation Components of Android Jetpack: https://www.geeksforgeeks.org/foundation-components-of-android-jetpack/
Architecture Components
- Android Architecture Components: https://developer.android.com/topic/libraries/architecture/
[116] [117] [118] [119] [120] [121]
Behavior Components
- Behaviour Components of Android Jetpack: https://www.geeksforgeeks.org/behaviour-components-of-android-jetpack/
Compose
"Compose" is a library that offers a set of UI Components that can replace much of the XML-based UI configuration which was previously required for all native Android apps.
- Jetpack Compose — Android Apps without XML: https://android.jlelse.eu/jetpack-compose-android-apps-without-xml-534d74448778[122][123]
- Google dev docs -- Android tutorials - Jetpack Compose Basics: https://developer.android.com/jetpack/compose/tutorial
Features
Project Mainline
- Project Mainline: https://www.androidcentral.com/project-mainline
Cite error: Closing </ref>
missing for <ref>
tag
Accessibility
- Ensuring your app has basic Android Accessibility support: https://codelabs.developers.google.com/codelabs/basic-android-accessibility/index.html#0
- Android dev docs -- Create your own accessibility service: https://developer.android.com/guide/topics/ui/accessibility/service | DOCS
TTS
STT
- Add Voice Interactions to Your App: https://codelabs.developers.google.com/codelabs/voice-interaction/index.html?index=..%2F..index#0
OCR
- Google Codelabs -- Android - Mobile Vision OCR: https://codelabs.developers.google.com/codelabs/mobile-vision-ocr/
- Google Codelabs -- Android - Barcode scanner: https://codelabs.developers.google.com/codelabs/barcodes/
[127] [128] [129] [130] [131] [132]
Security
Keystore
- Android keystore system: https://developer.android.com/training/articles/keystore.html
Credentials
- Store a user's credentials: https://developers.google.com/identity/smartlock-passwords/android/store-credentials
SSO
- Enable automatic sign-in across apps and websites: https://developers.google.com/identity/smartlock-passwords/android/associate-apps-and-sites
- Keys, Credentials and Storage on Android: https://code.tutsplus.com/tutorials/keys-credentials-and-storage-on-android--cms-30827
Privacy Dashboard
- Privacy Dashboard: https://www.androidauthority.com/android-privacy-dashboard-1233846/
Utilities
Libraries
- Configuring a Shared Library: https://source.android.com/devices/audio/implement-shared-library
Bundles
- Android App Bundles (AAB): https://developer.android.com/guide/app-bundle
- Exploring the Android App Bundle: https://medium.com/google-developer-experts/exploring-the-android-app-bundle-ca16846fa3d7
- Android dev docs -- AAB - bundletool: https://developer.android.com/studio/command-line/bundletool | SRC
[140] [141] [142] [143] [144] [145] [146]
Dynamic Bundle loading
- Exploring Dynamic Feature Navigation on Android: https://medium.com/google-developer-experts/exploring-dynamic-feature-navigation-on-android-c803bdbbca9b
Auto-Update
- Evolution of Android Update System: https://proandroiddev.com/evolution-of-android-update-system-5385b9bc860a
Focus
- Google’s Focus Mode is now available on Android 10: https://joyofandroid.com/news/googles-focus-mode-is-now-available-on-android-10/
Clock
Alarm
- Using AlarmManager like a pro: https://android.jlelse.eu/using-alarmmanager-like-a-pro-20f89f4ca720
Calendar
Reminders
Notes
- Omni Notes - note taking app (ANDROID): https://play.google.com/store/apps/details?id=it.feio.android.omninotes | SRC
Clipboard
- How to Access Your Clipboard on Android: https://www.howtogeek.com/692835/how-to-access-your-clipboard-on-android/
Firebase
- Firebase Push Notification intro: https://android.jlelse.eu/firebase-push-notification-fe1e03119b77
- Firebase Codelab Friendlychat Android Apps -- how to get image instead of text: https://stackoverflow.com/questions/40845390/firebase-codelab-friendlychat-android-apps-how-to-get-image-instead-of-text
[159] [160] [161] [162] [163] [164] [165] [166] [167] [168] [169] [170] [171] [172] [173] [174] [175] [176]
- Run time error when starting app - Unable to start activity ComponentInfo: https://github.com/googlesamples/io2015-codelabs/issues/81
- Voice-Interaction-API Start and End "No Activity Found to Handle Intent": https://github.com/googlesamples/io2015-codelabs/issues/82
- TensorFlow demo app crashes with my own model: https://github.com/tensorflow/tensorflow/issues/4451
Machine Learning
- Machine Learning in Android using Firebase ML Kit (to do "Face detection"): https://proandroiddev.com/machine-learning-in-android-using-firebase-ml-kit-6e71a14e11f8
Graphics
- Graphics architecture: https://source.android.com/devices/graphics/architecture.html
Animation
- The power of Android Porter/Duff Mode with View Animation: https://android.jlelse.eu/the-power-of-android-porter-duff-mode-28b99ade45ec[179]
Layering
- Android ViewOverlays — Simple Layering: https://android.jlelse.eu/android-viewoverlays-simple-layering-aa513e28fb81
Camera
- How to Make Android Camera Permission optional: https://schier.co/blog/2015/04/03/how-to-make-android-camera-permission-optional.html
- Camera1 API -- Basics - Take Photo: https://developer.android.com/training/camera/photobasics[181][182][183][184][185][186][187][188]
- Camera2 API: https://developer.android.com/reference/android/hardware/camera2/package-summary.html[189][190][191][192][193]
- CameraX API: https://developer.android.com/training/camerax | DOCS | SRC
File System
Photos
- The Big Nerd Ranch Guide -- Android Programming (4th ed.) - File Storage for Photos: https://www.oreilly.com/library/view/android-programming-the/9780135257555/ch16s02.html
Bluetooth
- How to Use Your Android Phone as a Bluetooth Mouse or Keyboard: https://www.howtogeek.com/714170/how-to-use-your-android-phone-as-a-bluetooth-mouse-or-keyboard/
- Resize photo before sending it by email?: https://android.stackexchange.com/questions/40357/resize-photo-before-sending-it-by-email
- How to resize photo: https://us.community.samsung.com/t5/Galaxy-S10/How-to-resize-photo/td-p/684466
Internet
- What permission do I need to access Internet from an Android application?: https://stackoverflow.com/questions/2378607/what-permission-do-i-need-to-access-internet-from-an-android-application
Browser
- Chrome for Android: https://developer.chrome.com/multidevice/android/overview
WebView
- WebView for Android: https://developer.chrome.com/multidevice/webview/overview
- WebView DevTools user guide: https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/developer-ui.md
[202] [203] [204] [205] [206] [207] [208] [209] [210] [211] [212] [213] [214] [215] [216] [217] [218] [219] [220] [221]
Android Beam (discontinued)
- wikipedia: Android Beam
- Android user support -- Share content by NFC with Android Beam: https://support.google.com/pixelphone/answer/2781895?hl=en
- Sharing files with NFC: http://developer.android.com/training/beam-files
Nearby Sharing (also referred to as FastShare) is the name of the successor of the "Android Beam" feature for "local network"-based file sharing over WiFi-Direct/NFC/Bluetooth.
- Google Nearby: https://developers.google.com/nearby
Development concepts
Layouts
- Android dev docs -- Declaring Layout (in XML): https://developer.android.com/guide/topics/ui/declaring-layout
- Android dev docs -- Build a UI with Layout Editor: https://developer.android.com/studio/write/layout-editor.html
- Android dev docs -- Build a Responsive UI with ConstraintLayout: https://developer.android.com/training/constraint-layout/index.html
- Re-using layouts with <include/>: developer.android.com/training/improving-layouts/reusing-layouts
- How to create Tab Layout in an Android App using Kotlin?: https://www.tutorialspoint.com/how-to-create-tab-layout-in-an-android-app-using-kotlin[236]
Views
- Android "View" classes: https://www.formget.com/android-views/
ListView
- ListView Tutorial with example in Android Studio: https://abhiandroid.com/ui/listview[237][238]
Intents
- Where is a list of available intents in Android?: https://stackoverflow.com/questions/1705728/where-is-a-list-of-available-intents-in-android
- How to get Intent of main launch Activity from a different Activity?: https://stackoverflow.com/questions/9931965/how-to-get-intent-of-main-launch-activity-from-a-different-activity
Manifest XML
The Manifest XML
- Android dev docs -- App Manifest (XML) overview: https://developer.android.com/guide/topics/manifest/manifest-intro
App Links
Standard App links - linking into a specific app from a standard web link (URL) - take the format:
https://play.google.com/store/apps/details?id=<package_name>&launch=true
- App Links in Android: https://developer.android.com/training/app-links
- Enable automatic sign-in across apps and websites: https://developers.google.com/identity/smartlock-passwords/android/associate-apps-and-sites
Activity Intent Deep-Linking
You can also "deep-link" from the web into specific screens (Activities) of your Android app using Intents.
- Android Activity launching via Intents: https://developer.chrome.com/multidevice/android/intents
- Android Deep Linking: https://developer.android.com/training/app-links/deep-linking
Android assetlinks.json
Further to app-linking and deep-linking, you can also "asset-link" which will enable automatically launching a specific App/Activity/Intent combination based on a two-way configuration between your app and your website, using "./well-known/assetlinks.json" file on your web server, and a specific "<intent-filter>" configuration within your app's "AndroidManifest.xml" file.
- Asset Owners Guide: https://developers.google.com/digital-asset-links/ | SPEC
- Statement List Generator & Tester: https://developers.google.com/digital-asset-links/tools/generator
- Associate your Android app with a website: https://support.google.com/webmasters/answer/6212023
[253] [254] [255] [256] [257] [258] [259] [260] [261]
Instant App
- Create App Links for Instant Apps: https://developer.android.com/training/app-links/instant-app-links
- How to use Android Instant Apps: https://www.androidauthority.com/use-android-instant-apps-749544/
AppWidgets
Abbreviated displays of part of an app's full capabilities, shown on the lock screen and/or notification center.
- Google dev docs -- Android - App Widgets Overview: https://developer.android.com/guide/topics/appwidgets/overview
Manifest JSON
The Manifest JSON configuration file enables both PWA features, and, enhanced deep-linking between Web & Mobile App experiences. This file typically lives on the web server to help in associating a website or WebApp to a corresponding Mobile App. It typically lives in the ".well-known" path, such as:
https://www.example.com/.well-known/manifest.json
Though it could just be placed in the root director as well.
- W3C - Web Application Manifest: https://www.w3.org/TR/appmanifest/
- Installable Web Apps with the Web App Manifest in Chrome for Android: https://developers.google.com/web/updates/2014/11/Support-for-installable-web-apps-with-webapp-manifest-in-chrome-38-for-Android
Architectures
MVC
MVVM
- MVVM architecture, ViewModel and LiveData (Part 1): https://proandroiddev.com/mvvm-architecture-viewmodel-and-livedata-part-1-604f50cda1
- MVVM architecture, ViewModel and LiveData — Dependency Injection: https://proandroiddev.com/mvvm-architecture-viewmodel-and-livedata-part-2-di-1a6b1f96d84b
- MVVM architecture, ViewModel and LiveData — AndroidX Upgrade (Part 3) https://proandroiddev.com/mvvm-architecture-viewmodel-and-livedata-part-3-androidx-upgrade-980c4fdbf9d6
- Android by example — MVVM + Data Binding —> View (Part 4): https://medium.com/@husayn.hakeem/android-by-example-mvvm-data-binding-view-part-4-ecfda0c45db8
- MVVM architecture: PART 1 - ViewModel & LiveData | PART 2 - Dependency Injection | PART 3 - Android X
[266] [267] [268] [269] [270] [271] [272] [273] [274] [275] [276] [277] [278] [279] [280] [281]
Observables
- Using Observable in Android: https://stackoverflow.com/questions/42983101/using-observable-in-android
- An Untold Story of Observable Dependencies in Data Binding: https://android.jlelse.eu/an-untold-story-of-observable-dependencies-in-data-binding-c7824552e4ec
- Sample App — Android Unidirectional Data Flow (LiveData in Coinbase): https://medium.com/android-news/sample-app-android-unidirectional-data-flow-b9f8ad0fbca3
MVP
- Modern Android Development: https://medium.com/swlh/modern-android-development-3013f3034610
- Model View Presenter (MVP) in Android with a simple demo project: https://medium.com/cr8resume/make-you-hand-dirty-with-mvp-model-view-presenter-eab5b5c16e42 | SRC
MVI
- Reactive Apps with Model-View-Intent -- Part1 - Model: http://hannesdorfmann.com/android/mosby3-mvi-1
- Reactive Apps with Model-View-Intent -- Part2 - View & Intent: http://hannesdorfmann.com/android/mosby3-mvi-2
- Reactive Apps with Model-View-Intent -- Part3 - State Reducer: http://hannesdorfmann.com/android/mosby3-mvi-3
- Reactive Apps with Model-View-Intent -- Part4 - Independent UI Components: http://hannesdorfmann.com/android/mosby3-mvi-4
- Reactive Apps with Model-View-Intent -- Part5 - Debugging with ease: http://hannesdorfmann.com/android/mosby3-mvi-5
- Reactive Apps with Model-View-Intent -- Part6 - Restoring State: http://hannesdorfmann.com/android/mosby3-mvi-6
- Reactive Apps with Model-View-Intent -- Part7 - Timing (SingleLiveEvent problem): http://hannesdorfmann.com/android/mosby3-mvi-7
- Reactive Apps with Model-View-Intent -- Part8 - Navigation: http://hannesdorfmann.com/android/mosby3-mvi-8
Google Play
The Google Play! store (formerly Google WebStore), is the online marketplace for downloading games, apps, ringtones, content, etc for your Android mobile device.
- Google Play - Android apps: https://play.google.com/store/apps
- Google Play - Developer Console: https://developer.android.com/distribute/console/
APPS
- The 100 Best Android Apps: http://www.pcmag.com/article2/0,2817,2393097,00.asp
- ~Non-"App Store" Apps~ (side-loading permitted so hacking as needed is possible, without needing to go through Google's Play App Store)
- Google Play: http://play.google.com/store (ANDROID's official App Store)
- Google Play Newstand: http://itunes.apple.com/us/app/google-play-newsstand/id459182288?mt=8 (E-Magazines, E-Newspapers & Web News Articles)
- Google Play Music: http://play.google.com/store/apps/details?id=com.google.android.music (cloud-storage for Audio files; supports Playlist creation/sharing, shuffle, replay, remote playback, etc)
- Google Play Movies & TV: https://play.google.com/store/apps/details?id=com.google.android.videos (store for purchasing video content on-demand through Mobile, or AndroidTV/GoogleTV/Chromecast)
- Google Cast: http://play.google.com/store/apps/details?id=com.google.android.apps.mediashell (Chromecast, GoogleTV & Android TV controller & DLNA content-casting app)
- Google's official YouTube app: http://play.google.com/store/apps/details?id=com.google.android.youtube
- Google Photos: http://play.google.com/store/apps/details?id=com.google.android.apps.photos (cloud-storage for Photos, Picasa integration, some minor Imaging effects)
- Google Drive: http://play.google.com/store/apps/details?id=com.google.android.apps.docs (web-based "cloud data storage" solution, data owned by Google in exchange for convenience of storage)
- Google Now Launcher: http://play.google.com/store/apps/details?id=com.google.android.launcher (Google Now is the equivalent of iPhone's Siri, a voice and/or gesture-controlled Personal Assistant)
- Google Search: http://play.google.com/store/apps/details?id=com.google.android.googlequicksearchbox (voice-powered, or text-driven Search Engine)
- Google Goggles: http://play.google.com/store/apps/details?id=com.google.android.apps.unveil&hl=en (Use your Android's camera to take a snapshot of anything from a painting in a museum to a placard that's written in a language you don't understand, and Google Goggles will do the searching for you. It even handles QR codes and barcodes for easy comparison shopping)
- Google Glass: http://play.google.com/store/apps/details?id=com.google.glass.companion (companion app for controlling/configuring Google Glasses/Surfaces)
- Google Voice: http://play.google.com/store/apps/details?id=com.google.android.apps.googlevoice (Audio calling & communication tool)
- Google Hangouts: http://play.google.com/store/apps/details?id=com.google.android.talk (Video Chat & communication tool)
- Google Maps: http://play.google.com/store/apps/details?id=com.google.android.apps.maps (directions, address lookups, transit schedules, route planning, etc)
- Google SkyMap: http://play.google.com/store/apps/details?id=com.google.android.stardroid (explore the night sky)
- Google Keep: http://play.google.com/store/apps/details?id=com.google.android.keep (note-taking & reminders app)
- Google Translate: https://play.google.com/store/apps/details?id=com.google.android.apps.translate (multi-lingual translation services)
- DueLingo: http://play.google.com/store/apps/details?id=com.duolingo (language E-Learning)
- Muzei: http://play.google.com/store/apps/details?id=net.nurik.roman.muzei (promises to turn your home screen into a "living museum", auto-changes background, etc)
- Calibre: http://play.google.com/store/apps/details?id=com.multipie.calibreandroid (eBook reader, synchs with desktop collection, keeps track of last book/page read)
- Flipboard: http://play.google.com/store/apps/details?id=flipboard.app (E-Magazine and visual newsfeed reader)
- gReader: http://play.google.com/store/apps/details?id=com.noinnion.android.greader.reader (basic RSS/Atom Feed Reader)
- Umano: http://play.google.com/store/apps/details?id=com.sothree.umano (reads breaking news tories, basic TTS service)
- ScanThing: http://scanthing.com/ (OCR physical image to digital image scanning tool)
- Untappd: http://play.google.com/store/apps/details?id=com.untappdllc.app (Beer & Pub ratings, reviews, etc)
- SleepBot: http://play.google.com/store/apps/details?id=com.lslk.sleepbot (Sleep Cycle monitor & REM stage-sensitive alarm)
- Seamless: http://play.google.com/store/apps/details?id=com.seamlessweb.android.view (food deliver & takeout)
- AutoDesk Pixlr: http://play.google.com/store/apps/details?id=com.pixlr.express (AutoCAD Designing, Drafting & Blueprinting app)
- Adobe Photoshop Express 2.0: https://play.google.com/store/apps/details?id=com.adobe.psmobile (Photo editing & Image after-effects)
- Adobe Photoshop Mix: http://play.google.com/store/apps/details?id=com.adobe.photoshopmix
- Swype: http://www.swype.com/ (gestural/swipe-activated keyboard)
- Profile Scheduler: http://play.google.com/store/apps/details?id=com.wetpalm.ProfileScheduler (automation & task runner)
- Tasker: http://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm (another automation app for customizing every aspect of your phone)
- ROM Toolbox: http://play.google.com/store/apps/details?id=com.jrummy.liberty.toolbox (hack device settings)
- Light Flow: http://play.google.com/store/apps/details?id=com.rageconsulting.android.lightflowlite (lets you hack into your smartphone's LED for finely-grained custom notifications, such as color changes when receiving messages from particular person/group, etc)
- Lux: http://play.google.com/store/apps/details?id=com.vito.lux&hl=en (control the camera light & screen brightness settings)
- Battery Defender: http://play.google.com/store/apps/details?id=mobi.infolife.batterysaver (power saver)
- Viber: http://play.google.com/store/apps/details?id=com.viber.voip (VoIP calls)
- What's App: http://play.google.com/store/apps/details?id=com.whatsapp (messaging)
- Mighty Text: http://play.google.com/store/apps/details?id=com.texty.sms (lets you SMS text from your computer using your Android phone number)
- IFTTT: http://play.google.com/store/apps/details?id=com.ifttt.ifttt (IoT command-center)
- tTorrent: http://play.google.com/store/apps/details?id=hu.tagsoft.ttorrent.lite (Torrent client for P2P file-sharing)
- VLC: http://play.google.com/store/apps/details?id=org.videolan.vlc.betav7neon (Media player/streaming solution, with remote control connection to desktop VLC app)
- Plex: http://play.google.com/store/apps/details?id=com.plexapp.android (independent file-streaming/DLNA-casting)
- Podcast Addict: https://play.google.com/store/apps/details?id=com.bambuna.podcastaddict (podcasting)
- TuneIN Radio: http://play.google.com/store/apps/details?id=tunein.player (online radio)
- Skype: http://play.google.com/store/apps/details?id=com.skype.raider (video chat & video conferecing)
- Microsoft Office Mobile: http://play.google.com/store/apps/details?id=com.microsoft.office.officehub (office productivity suite: Word, Excel, Powerpoint, OneNote)
- ZEDGE: http://play.google.com/store/apps/details?id=net.zedge.android (download Wallpapers, Ringtones, Notification sounds, Live Backgrounds, skins, themes, etc)
- Cross DJ Pro: http://play.google.com/store/apps/details?id=com.mixvibes.crossdjapp (virtual turntable)
- Flash - FlashFox: http://play.google.com/store/apps/details?id=mobi.browser.flashfox&hl=en (multimedia, games, animated scenes, in-page video/audio players, etc)[295][296][297][298][299][300]
Tools
- Android Studio: https://developer.android.com/studio/index.html[301][302]
- Samsung - Android IDE (still based on Eclipse & ADT):
- Android Debug Bridge (ADB): https://developer.android.com/studio/command-line/adb.html[303]
- Android Asset Packaging Tool (AAPT2): https://developer.android.com/studio/command-line/aapt2[304]
Resources
- Android - Mobile OS (SOURCE CODE): https://source.android.com/
- A LiveCD for Android: http://code.google.com/p/live-android/
- Tips and Tricks of Android Studio: https://blog.mindorks.com/tips-and-tricks-of-android-studio (showing shortcuts for both Windows & Mac)
- Google Play -- Select a category for your app or game: https://support.google.com/googleplay/android-developer/answer/113475?hl=en
- A guide to KPIs for Google Play apps and games -- Driving Buyer Behavior with In-App Purchasing (IAP) and Subscriptions: https://www.youtube.com/watch?v=_uDTVLpCsXU[305]
- Everything for Android Developers from Google IO (Spring 2019): https://android.jlelse.eu/everything-for-android-developers-from-google-io-2019-ac3b7ff41f4 | PLAYLIST
- Ultimate Android Dev Reference: https://github.com/aritraroy/UltimateAndroidReference
- Best practices in Android development: http://github.com/futurice/android-best-practices
- Google -- Android samples: https://developer.android.com/samples/[306][307]
- Installable Web Apps with the Web App Manifest in Chrome for Android: https://developers.google.com/web/updates/2014/11/Support-for-installable-web-apps-with-webapp-manifest-in-chrome-38-for-Android[308]
- Designing Android Product Icons: https://applypixels.com/android-product-icons/
- Icon Design Guidelines: https://developer.android.com/guide/practices/ui_guidelines/icon_design.html
- Google -- Android Dev Training (OFFICIAL): https://developers.google.com/training/android/
- Android OS -- Getting started guide: https://developer.android.com/index.html
- Udacity -- Android fundamentals (E-LEARNING COURSE): https://classroom.udacity.com/courses/ud851
- Udacity -- Android Developer (E-LEARNING NANODEGREE): https://www.udacity.com/course/android-developer-nanodegree-by-google--nd801 (created in partnership with Google)
- Udacity — Advanced Android with Kotlin (E-LEARNING COURSE): https://www.udacity.com/course/advanced-android-with-kotlin--ud940
- Udemy -- Android Java Developer (E-LEARNING COURSE): https://www.udemy.com/master-android-7-nougat-java-app-development-step-by-step/learn/v4/overview
- Udemy -- Android Kotlin Masterclass (E-LEARNING COURSE): https://www.udemy.com/course/android-oreo-kotlin-app-masterclass/learn/lecture/8483864#overview
- O'Reilly/SafariBooks -- (E-LEARNING COURSE): https://learning.oreilly.com/videos/kotlin-for-android/9781788994811/9781788994811-video3_2
- O'Reilly/SafariBooks -- Android Programming - The Big Nerd Ranch Guide, Third Edition (BOOK): https://learning.oreilly.com/library/view/android-programming-the/9780134706061/ | EXAMPLE - Ch.16, Using a Camera Intent | EXAMPLE - Ch.34, Working with Maps natively
- Android App Development for Beginners - by TheNewBoston: https://www.youtube.com/playlist?list=PL6gx4Cwl9DGBsvRxJJOzG4r4k_zLKrnxl
- Customize Media Notifications and Handle Playlists: https://developers.google.com/web/updates/2017/02/media-session | DEMO (Android implementation of HTML5 Media Session API, as of 2018-07-22 still the only Device OS to implement the spec)
- Introducing the Web Share API: https://developers.google.com/web/updates/2016/09/navigator-share
- Google's ANDROID DEVELOPER DOCS: https://developer.android.com/guide/ | Intents & IntentFilters
- Google Dev Docs -- Android Studio - Keyboard shortcuts: https://developer.android.com/studio/intro/keyboard-shortcuts[310][311][312][313][314]
- IntelliJ comprehensive list of Keymaps/Shortcuts: https://resources.jetbrains.com/storage/products/intellij-idea/docs/IntelliJIDEA_ReferenceCard.pdf
- Android-specific CodeLabs: https://codelabs.developers.google.com/?cat=Android | Constraint Layout (Google's official E-Learning portal for developers)
- Where is a list of available intents in Android?: https://stackoverflow.com/questions/1705728/where-is-a-list-of-available-intents-in-android
- Codelabs for Advanced Android Development: https://developer.android.com/courses/advanced-training/toc
- Android — How to get a list of all available intent filters?: https://stackoverflow.com/questions/4094109/android-how-to-get-a-list-of-all-available-intent-filters/15606284
- Security in Android — Cheatsheet: https://android.jlelse.eu/security-in-android-cheatsheet-8c3d3125e3a9
[316] [317] [318][319] [320] [321] [322] [323]
- Android Architecture Blueprints: https://github.com/googlesamples/android-architecture
- Android Architecture Components: https://developer.android.com/topic/libraries/architecture | SRC
- Murach’s Android Programming (2nd Edition): https://www.murach.com/shop/murach-s-android-programming-2nd-edition-detail | SRC
- Android Boot Camp for Developers Using Java, Comprehensive -- A Beginner's Guide to Creating Your First Android Apps: https://www.cengage.co.uk/books/9781285856834/ | [ SRC]
- The Android Developer's Cookbook -- Building Applications with the Android SDK, 2nd Edition (BOOK): The Android™ Developer’s Cookbook: Building Applications with the Android SDK, Second Edition: https://www.oreilly.com/library/view/the-androidtm-developers/9780133261615/ | DOWNLOAD | SRC[324] (uses legacy Eclipse + Android IDE)[325]
- Introduction to Android™ Application Development, 5th edition: https://introductiontoandroid.blogspot.com | SRC
- Android 6 for Programmers -- An App-Driven Approach, 3rd Edition: http://www.informit.com/store/android-6-for-programmers-an-app-driven-approach-9780134289366 | SRC
- Head First Android Development in Kotlin (3rd ed.): https://www.oreilly.com/library/view/head-first-android/9781492076513/ | SRC[326][327]
- Android Programming - Big Nerd Ranch Guide (JAVA), 3rd edition: https://play.google.com/books/reader?id=1igDDgAAQBAJ&hl=en&pg=GBS.PP1 | SRC
- Android Programming - Big Nerd Ranch Guide (Kotlin): https://www.bignerdranch.com/books/kotlin-programming/ | SRC
- Learning Java by Building Android Games: https://subscription.packtpub.com/book/game_development/9781784398859 | SRC
- Android Recipes (BOOK): https://www.apress.com/gp/book/9781430246145 | SRC
- HMK Code: http://hmkcode.com/ | SRC
- Google code samples (OFFICIAL) -- Android - Camera2Basic: https://github.com/googlesamples/android-Camera2Basic
- Google code samples (OFFICIAL) -- Android - Notifications: https://github.com/googlesamples/android-Notifications (Demonstrates best practices for Android Notifications (including P features) on both mobile and/or Wear)
- Android samples -- Identity & SmartLock: https://github.com/android/identity-samples
- Android platform (JAVADOCS): https://developer.android.com/reference/classes.html
- A detailed guide on developing Android apps using the Clean Architecture pattern: https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029 | EXAMPLE - boilerplate/starter | EXAMPLE - Cost Tracker
- RxJava: https://github.com/ReactiveX/RxJava
- How to set android layout to support all screen sizes?: https://stackoverflow.com/questions/9476662/how-to-set-android-layout-to-support-all-screen-sizes
- ANDROID DOCS -- Support different screen sizes: https://developer.android.com/training/multiscreen/screensizes.html
- ANDROID DOCS -- Screen compatibility overview: https://developer.android.com/guide/practices/screens_support.html
- ANDROID DOCS -- Support different pixel densities: https://developer.android.com/training/multiscreen/screendensities.html
- Introduction to MotionLayout: https://medium.com/google-developers/introduction-to-motionlayout-part-i-29208674b10d
- Google dev docs -- Android - RecyclerView: https://developer.android.com/reference/androidx/recyclerview/widget/RecyclerView.html
[336] [337] [338] [339] [340] [341] [342]
- RecyclerViewSwipeDecorator: https://github.com/xabaras/RecyclerViewSwipeDecorator (simple utility class to add a background, an icon and a label while swiping a RecyclerView item left or right)
- Easily Adding Nested RecyclerView in Android: https://android.jlelse.eu/easily-adding-nested-recycler-view-in-android-a7e9f7f04047 | SRC
[343] [344] [345] [346] [347] [348] [349] [350] [351] [352] [353]
- Cinematic -- a community-built "better IMDB app": https://github.com/aaronoe/Cinematic | DOWNLOAD
- StreamPlayer: https://github.com/florina-muntenescu/StreamPlayer[354][355]
- Fresco — Android Image Gallery library (by Facebook): https://android.jlelse.eu/fresco-android-image-library-c680b17b4a2a
- Transformation Layout: https://github.com/skydoves/TransformationLayout
- Android dev docs -- Material Design for Android: https://developer.android.com/guide/topics/ui/look-and-feel
- The Best Android Tablets of 2022: https://www.howtogeek.com/748320/best-android-tablet/
- ASUS ZenPad 8.0 (Z380M): https://www.asus.com/us/Tablets/ASUS-ZenPad-8-0-Z380M/
- Android OS version Market Share: https://www.statista.com/statistics/271774/share-of-android-platforms-on-mobile-devices-with-android-os/
[358] [359] [360] [361] [362] [363] [364] [365] [366] [367]
Tutorials
- Android SDK location: https://stackoverflow.com/questions/25176594/android-sdk-location
- Setting ANDROID_HOME enviromental variable on Mac OS X: https://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x[368]
- Android Developer Fundamentals (Version 2) — Concepts: https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/
- Android Programming Tutorials: http://www.coreservlets.com/android-tutorial/
- Cast Android screen to Windows 10 PC: https://mspoweruser.com/cast-android-screen-windows-10-pc/
- Create Android applications without using an IDE: https://eqdn.tech/android-development-on-the-command-line/[369]
- Build your app from the command line using Gradle wrapper: https://developer.android.com/studio/build/building-cmdline
- How you can Control your Android Device with Python (via ADB): https://itnext.io/how-you-can-control-your-android-device-with-python-45c3ab15e260
- Reinstall and re-enable apps: https://support.google.com/googleplay/answer/113410?hl=en
- How to Install Android Apps on Windows 11: https://www.howtogeek.com/764014/how-to-install-android-apps-on-windows-11/
- Run your app: https://developer.android.com/training/basics/firstapp/running-app
- How to sideload Android applications when they didn't come from the Google Play store: http://www.greenbot.com/article/2452614/how-to-sideload-an-app-onto-your-android-phone-or-tablet.html[375]
- How to sideload an app onto your Android phone or tablet: http://www.greenbot.com/article/2452614/how-to-sideload-an-app-onto-your-android-phone-or-tablet.html
- Developing Android Apps with NetBeans, Maven, and VirtualBox: http://netbeans.dzone.com/nb-developing-android-apps
- Google -- Android dev docs - App Signing: https://developer.android.com/studio/publish/app-signing[376]
- Exploring Google Play App Signing: https://medium.com/google-developer-experts/exploring-google-play-app-signing-b4d296f4ee9
- How to build & sign Android APK using JDK 7 with Netbeans: http://blogs.kiyut.com/tonny/2012/06/07/how-to-build-and-sign-android-apk-using-jdk-7-with-netbeans/
- How to Create an Android App From a Static Website in 10 Minutes: https://dzone.com/articles/asd-asd-asd
- Develop Mobile Web Applications On Your Android Device: https://blogs.oracle.com/netbeanswebclient/entry/develop_mobile_web_applications_on
- Real time communication with WebRTC (CODELAB): https://codelabs.developers.google.com/codelabs/webrtc-web/#0
- How to launch an Activity from another Application in Android: https://stackoverflow.com/questions/3872063/how-to-launch-an-activity-from-another-application-in-android
- How to call the start Activity from one Java class: https://stackoverflow.com/questions/21888385/how-to-call-the-start-activity-from-one-java-class
- Android - How to get application name? (Not package name): https://stackoverflow.com/questions/11229219/android-how-to-get-application-name-not-package-name
- Android - how to use getApplication and getApplicationContext from non activity / service class: https://stackoverflow.com/questions/5339941/android-how-to-use-getapplication-and-getapplicationcontext-from-non-activity
- Get Started with Remote Debugging Android Devices: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/ (steps for when you want to debug a WebApp/mobile-responsive-website and view all details in your desktop's Chrome Dev Tools console)[380][381]
- Configure On-Device Developer Options: https://developer.android.com/studio/debug/dev-options[382]
- How to Enable USB Debugging Mode on Android: https://www.kingoapp.com/root-tutorials/how-to-enable-usb-debugging-mode-on-android.htm[383]
- Chrome's remote debugging (USB debugging) not working for Samsung Galaxy S3 running android 4.3: https://stackoverflow.com/questions/23648230/chromes-remote-debugging-usb-debugging-not-working-for-samsung-galaxy-s3-runn (enable "Samsung Internet" and older Android 4.x and lower devices to be remotely debugged)
- Android Emulator – How to paste text from machine to emulator: https://rileymacdonald.ca/2017/12/29/android-emulator-paste-text-machine-emulator/
- Run Apps on the Android Emulator: https://developer.android.com/studio/run/emulator[385][386][387]
- Logcat Command-line Tool: https://developer.android.com/studio/command-line/logcat.html
- Write and View Logs with Logcat: https://developer.android.com/studio/debug/am-logcat.html
- How to Record Your Android Device’s Screen: https://www.howtogeek.com/176956/how-to-record-your-android-devices-screen-with-android-4.4-kitkat/
- Record/Capture Android App Behavior - Convert To Animated GIF: https://stackoverflow.com/questions/34702296/record-capture-android-app-behavior-convert-to-animated-gif
- Android Studio & Android Device Monitor: https://stackoverflow.com/questions/29488165/android-studio-and-android-device-monitor
- ADB - Connect to your Android: https://causeyourestuck.io/2016/04/10/adb-connect-to-your-android/
- Decompile Android application -- Hack: https://causeyourestuck.io/2016/02/04/decompile-android-application-hack/
- Understand the Activity Lifecycle: https://developer.android.com/guide/components/activities/activity-lifecycle.html
- Activity Lifecycle With Example In Android – Tutorial, Code And Importance: https://abhiandroid.com/programming/activity-life-cycle
- Understand How View Renders in Android: https://medium.com/better-programming/understand-how-view-renders-in-android-763f0adfb95c
- Evolution of Finding Views by ID in Android: https://android.jlelse.eu/evolution-of-finding-views-android-98b8ef5b9249
- The Evolution of Adapters in Android: https://betterprogramming.pub/evolution-of-adapters-in-android-2e2ff58c0f98
- Build a Responsive UI with ConstraintLayout: https://developer.android.com/training/constraint-layout/
- Guide to ConstraintLayout: https://medium.com/@loutry/guide-to-constraintlayout-407cd87bc013
- How To Design For Android: https://www.smashingmagazine.com/2011/06/designing-for-android/
- Android Programming Unleashed - Laying out Controls in Containers: http://www.informit.com/articles/article.aspx?p=1970144&seqNum=9
- How do I center text horizontally and vertically in a TextView?: https://stackoverflow.com/questions/432037/how-do-i-center-text-horizontally-and-vertically-in-a-textview
- Drawing a rounded corner background on text: https://medium.com/androiddevelopers/drawing-a-rounded-corner-background-on-text-5a610a95af5
- Building Beautiful Transitions with Material Motion for Android: https://developer.android.com/codelabs/material-motion-android
- Android Material Design Snackbar example: http://blog.nkdroidsolutions.com/android-material-design-snackbar-example/
- Android Snackbar Example using Design Support Library: https://www.truiton.com/2015/06/android-snackbar-example/
- Android dev docs -- Update UI components with NavigationUI: https://developer.android.com/guide/navigation/navigation-ui
- Instagram style navigation using Navigation Component: https://android.jlelse.eu/instagram-style-navigation-using-navigation-component-854037cf1389
- How to Code a Bottom Navigation Bar for an Android App: https://code.tutsplus.com/tutorials/how-to-code-a-bottom-navigation-bar-for-an-android-app--cms-30305
- Intercepting everything with CoordinatorLayout Behaviors: https://medium.com/androiddevelopers/intercepting-everything-with-coordinatorlayout-behaviors-8c6adc140c26
- Enhance Action Bar Functionality with Action View: http://www.zoftino.com/enhance-action-bar-functionality-with-action-view[396]
- Translucent SystemBars the right way — across API levels and themes: https://medium.com/androiddevelopers/translucent-systembars-the-right-way-across-api-levels-and-themes-6d7ddda21396
- Updating ListView when item selected on a spinner: https://stackoverflow.com/questions/36988131/updating-listview-when-item-selected-on-a-spinner#36988307
- ScrollView Inside Horizontal Scrollview not working properly: https://stackoverflow.com/questions/7819837/scrollview-inside-horizontal-scrollview-not-working-properly
- Horizontal & Vertical linear layout inside a ScrollView: https://stackoverflow.com/questions/19190560/horizontal-and-vertical-linear-layout-inside-a-scroll-view[400]
- Android, Checkbox listener in XML?: https://stackoverflow.com/questions/5051835/android-checkbox-listener-in-xml
- Android-CustomChoiceList: https://github.com/googlesamples/android-CustomChoiceList/
- Finish all previous activities: https://stackoverflow.com/questions/6330260/finish-all-previous-activities
- How to finish Activity when starting other activity in Android?: https://stackoverflow.com/questions/18957125/how-to-finish-activity-when-starting-other-activity-in-android
- Android Button onClick handler: https://stackoverflow.com/questions/10231309/android-button-onclick
- Android Dev docs -- Fragments: https://developer.android.com/guide/fragments
- Building dynamic user interfaces in Android with fragments - tutorial: https://www.vogella.com/tutorials/AndroidFragments/article.html#application-communication-with-fragments
- Access Parent Fragment method from Child Fragment: https://stackoverflow.com/questions/46635653/access-parent-fragment-method-from-child-fragment
- What Is a Target Fragment?: https://medium.com/better-programming/what-is-target-fragment-da0e7c7f345c (effectively communicate from a ChildFragment to a ParentFragment in Android)
- Simplified Fragment Navigation, using a custom backstack and commitNow()*: https://zhuinden.medium.com/simplified-fragment-navigation-using-a-custom-backstack-552e06961257
- Passing data between a Fragment and its container activity: https://stackoverflow.com/questions/9343241/passing-data-between-a-fragment-and-its-container-activity
- Communication between nested fragments in Android: https://stackoverflow.com/questions/39491655/communication-between-nested-fragments-in-android
- Android Dev docs -- Communicating with fragments: https://developer.android.com/guide/fragments/communicate
- Android Dev docs -- Communicate with other Fragments: https://developer.android.com/training/basics/fragments/communicating.html
- How to send data from Fragment to another Activity?: https://stackoverflow.com/questions/46954409/how-to-send-data-from-fragment-to-another-activity
- ANDROID DOCS -- Parcelable: https://developer.android.com/reference/android/os/Parcelable
- Using Parcelable in Android: https://guides.codepath.com/android/Using-Parcelable
- Android Parcelable Example: http://prasanta-paul.blogspot.com/2010/06/android-parcelable-example.html
- How to Pass Data Between Activities With Android Parcelable: https://code.tutsplus.com/tutorials/how-to-pass-data-between-activities-with-android-parcelable--cms-29559
- Understanding Androids Parcelable - Tutorial: https://www.vogella.com/tutorials/AndroidParcelable/article.html
- How can I make my custom objects Parcelable?: https://stackoverflow.com/questions/7181526/how-can-i-make-my-custom-objects-parcelable
- Android parcelable tutorial - List and inner class: https://www.survivingwithandroid.com/2015/05/android-parcelable-tutorial-list-class-2.html
- Can we rely on String.isEmpty for checking null condition on a String in Java?: https://stackoverflow.com/questions/8970008/can-we-rely-on-string-isempty-for-checking-null-condition-on-a-string-in-java#8970033 (ANSWER: NO, also use a null != myThing check)
- Sending data back to the Main Activity in Android: https://stackoverflow.com/questions/920306/sending-data-back-to-the-main-activity-in-android
- How to pass data from 2nd activity to 1st activity when pressed back? - android: https://stackoverflow.com/questions/14292398/how-to-pass-data-from-2nd-activity-to-1st-activity-when-pressed-back-android
- Passing data to main activity is lost: https://stackoverflow.com/questions/17688272/passing-data-to-main-activity-is-lost
- Sending data from nested Fragments to parent Fragment: https://stackoverflow.com/questions/23142956/sending-data-from-nested-fragments-to-parent-fragment
- ANDROID DOCS -- Permissions: https://developer.android.com/guide/topics/permissions/overview[402][403][404]
- Client must have ACCESS_FINE_LOCATION permission to request PRIORITY_HIGH_ACCURACY locations in android 6: https://stackoverflow.com/questions/38508352/client-must-have-access-fine-location-permission-to-request-priority-high-accura
- Android Device Monitor: https://developer.android.com/studio/profile/monitor (deprecated in Android Studio 3.1 and removed from Android Studio 3.2... this link now has a table showing where all the features have moved to)
- Error:Execution failed for task ":app:transformDexWithInstantRunSlicesApkForDebug" -- Failed to read zip file: https://stackoverflow.com/questions/51783951/errorexecution-failed-for-task-apptransformdexwithinstantrunslicesapkfordebu
- Android dev docs -- Maps (locations/directions) - Tile Overlays: https://developers.google.com/maps/documentation/android-sdk/tileoverlay
- Save data using SQLite: https://developer.android.com/training/data-storage/sqlite
- Using a simple SQLite database in your Android app: http://www.androidauthority.com/creating-sqlite-databases-in-your-app-719366/
- 5 steps to implement Room persistence library in Android: https://android.jlelse.eu/5-steps-to-implement-room-persistence-library-in-android-47b10cd47b24
[409] [410] [411] [412] [413] [414]
- Save data in a local database using Room: https://developer.android.com/training/data-storage/room/
- Create a deep link for a destination: https://developer.android.com/guide/navigation/navigation-deep-link[415]
- Android Persistence codelab: https://codelabs.developers.google.com/codelabs/android-persistence/index.html?index=..%2F..%2Findex#0
- Android Room with a View - Java: https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0
- Modern background execution in Android: https://android.jlelse.eu/modern-background-execution-in-android-bfae13c61b6b[416]
- How to detect Android application open and close -- Background & Foreground events: https://android.jlelse.eu/how-to-detect-android-application-open-and-close-background-and-foreground-events-1b4713784b57 | SRC
- Injecting into Worker’s — Android WorkManager and Dagger: https://android.jlelse.eu/injecting-into-workers-android-workmanager-and-dagger-948193c17684 (good Kotlin example of setting up a WorkManager factory class to pass Context & WorkerParameters via background task)
[417] [418] [419] [420] [421] [422]
- Gesture Navigation -- Going edge-to-edge (3-part series): https://medium.com/androiddevelopers/gesture-navigation-going-edge-to-edge-812f62e4e83e
- Creating a Virtual Piano Application for Android: https://android.jlelse.eu/creating-a-virtual-piano-for-android-b6d3ac05d961
- Android 5 Preferences tutorial (PreferenceScreen, PreferenceActivity, and PreferenceFragment): https://alvinalexander.com/android/android-tutorial-preferencescreen-preferenceactivity-preferencefragment
- Should I replace ActionBarActivity with AppCompatActivity?: https://stackoverflow.com/questions/30462720/should-i-replace-actionbaractivity-with-appcompatactivity (ANSWER: YES)
- Android Floating Action Button (FAB) tutorial with example: https://tutorialwing.com/android-floating-action-button-tutorial-with-example/[423][424][425]
- How to prevent multiple instances of an Activity when it is launched with different intents: https://stackoverflow.com/questions/4341600/how-to-prevent-multiple-instances-of-an-activity-when-it-is-launched-with-differ
- Android Testing codelab: https://codelabs.developers.google.com/codelabs/android-testing/index.html#0
- android-ActivityInstrumentation: https://github.com/googlesamples/android-ActivityInstrumentation
- Add multi-density vector graphics: https://developer.android.com/studio/write/vector-asset-studio[426][427][428][429]
- Introducing Vectordrawable-Seekable: https://android.jlelse.eu/introducing-vectordrawable-seekable-b96ef57ffe36 (animated vector graphics)
- Reveal Transition: https://halfthought.wordpress.com/2014/11/
- Postponing Fragment Transitions: https://halfthought.wordpress.com/2015/06/[430]
- Slide between fragments using ViewPager: https://developer.android.com/training/animation/screen-slide#java
- Frame Animations in Android: https://www.bignerdranch.com/blog/frame-animations-in-android/
- Uber Like “registration fade/slide up transition” Animation in Android (using native animation lib in Java): https://android.jlelse.eu/uber-like-animation-39177ef01510
- How to implement cube Transition effect animation on ViewPager in android?: https://stackoverflow.com/questions/13245031/how-to-implement-cube-transition-effect-animation-on-viewpager-in-android[431]
- Complex UI/Animations on Android: https://proandroiddev.com/complex-ui-animation-on-android-8f7a46f4aec4
- Transitions: https://developer.android.com/training/transitions
- Ripple effect in Android: http://www.tothenew.com/blog/ripple-effect-in-android/
- Getting Started with Activity & Fragment Transitions: PART 1 | PART 2 | PART 3a | PART 3b
- Android Fragments - Fragment Result: https://proandroiddev.com/android-fragments-fragment-result-805a6b2522ea
- A New Way to Pass Data Between Fragments: https://betterprogramming.pub/a-new-way-to-pass-data-between-fragments-a5d32acc34e7
- Android -- How do I get String from resources using its name?: https://stackoverflow.com/questions/7493287/android-how-do-i-get-string-from-resources-using-its-name (best way is: getResources().getString(R.string.my_thing))
- Why is AsyncTask Blocking UI Thread?: https://stackoverflow.com/questions/23540258/why-is-asynctask-blocking-ui-thread
- AsyncTask is still blocking UI thread: https://stackoverflow.com/questions/22127085/asynctask-is-still-blocking-ui-thread
- How to Use an AsyncTask Class in Your Android App: https://www.dummies.com/web-design-development/mobile-apps/how-to-use-an-asynctask-class-in-your-android-app/ (nice flow diagram mapping the lines of code as params move from onBackgroundTask to onPostExecute)
- How to get the result of onPostExecute() to main activity because AsyncTask is in a separate class?: https://stackoverflow.com/questions/12575068/how-to-get-the-result-of-onpostexecute-to-main-activity-because-asynctask-is-a
- AsyncTask Android example: https://stackoverflow.com/questions/9671546/asynctask-android-example
- Android Introduction To Reactive Programming – RxJava, RxAndroid: https://www.androidhive.info/RxJava/android-getting-started-with-reactive-programming/#rxjava-basics
- RxJava Understanding Observables: https://www.androidhive.info/RxJava/rxjava-understanding-observables/
[435] [436] [437] [438] [439] [440] [441] [442] [443] [444] [445] [446] [447] [448] [449] [450] [451]
- Android JSON parser example: https://www.tutorialspoint.com/android/android_json_parser.htm[452]
- With SAX Parser, get an attribute's value: https://stackoverflow.com/questions/10242561/with-sax-parser-get-an-attributes-value
- How to get String Array from arrays.xml file: https://stackoverflow.com/questions/2453989/how-to-get-string-array-from-arrays-xml-file
- Android Multi-dimensional arrays in arrays.xml: https://stackoverflow.com/questions/5188137/android-multi-dimensional-arrays-in-arrays-xml#5188601
- Multidimensional Typed Arrays in Android Resources: https://basememara.com/storing-multidimensional-resource-arrays-in-android/
- Android - how to create Multidimensional Arrays in string.xml: https://stackoverflow.com/questions/48253605/android-how-to-create-multidimensional-arrays-in-string-xml
- How to add an image to the “drawable” folder in Android Studio?: https://stackoverflow.com/questions/29047902/how-to-add-an-image-to-the-drawable-folder-in-android-studio#31069202
- Add images to your Android Project: https://www.homeandlearn.co.uk/android/adding_images_to_android.html[456]
- Create app icons with Image Asset Studio: developer.android.com/studio/write/image-asset-studio[457][458]
- Android get image path from R.drawable as String: https://exceptionshub.com/android-get-image-path-from-drawable-as-string.html
- Android set BitMap to Imageview: https://stackoverflow.com/questions/15323844/android-set-bitmap-to-imageview
- Android load from URL to Bitmap: https://stackoverflow.com/questions/8992964/android-load-from-url-to-bitmap
- Set ImageView width and height programmatically?: https://stackoverflow.com/questions/3144940/set-imageview-width-and-height-programmatically#5257851
- How to Get Device Height and Width at Runtime?: https://stackoverflow.com/questions/10172657/how-to-get-device-height-and-width-at-runtime#10172728
- Orientation, Anchoring, Resizing And Repositioning Of Views In Android Application: https://www.c-sharpcorner.com/article/orientation-anchoring-resizing-and-repositioning-of-views-android-application/
- How do I get the CURRENT orientation (ActivityInfo.SCREEN_ORIENTATION_*) of an Android device?: https://stackoverflow.com/questions/10380989/how-do-i-get-the-current-orientation-activityinfo-screen-orientation-of-an-a
- How to rotate JPEG images based on the orientation metadata?: https://stackoverflow.com/questions/5905868/how-to-rotate-jpeg-images-based-on-the-orientation-metadata
- How to make layout with View fill the remaining space?: https://stackoverflow.com/questions/6316540/how-to-make-layout-with-view-fill-the-remaining-space
- Set image orientation using ExifInterface: https://stackoverflow.com/questions/19753912/set-image-orientation-using-exifinterface#42560814[459]
- Android Internal Storage Example: https://www.javatpoint.com/android-internal-storage-example (example of reading/writing data to the Android Internal Storage via FileInputStream & FileOutputStream)[460]
- Android dev docs -- Media app architecture overview: https://developer.android.com/guide/topics/media-apps/media-apps-overview
- Make A Gallery-Like Image Grid Using Native Android: https://www.thepolyglotdeveloper.com/2015/05/make-a-gallery-like-image-grid-using-native-android/
- How to build an image gallery app – full tutorial with code: https://www.androidauthority.com/how-to-build-an-image-gallery-app-718976/ | SRC
[462] [463] [464] [465] [466] [467] [468]
- A super simple and customizable image carousel view for Android: https://androidexample365.com/a-super-simple-and-customizable-image-carousel-view-for-android/
- Universal Android Music Player (UAMP) - reference sample: https://github.com/android/uamp | DOCS[469]
- Android Music Player: https://sourceforge.net/projects/andmusicplayer/ (legacy/backwards compatible example of a basic collapsible/expandable Arist/Album/Song player)
- Building An Android App That Streams Music In A Background Service: https://www.youtube.com/watch?reload=9&v=-Xh4zlHoARM&list=PL14AA2548E3C96B50&index=2 | SRC (good ol' original tutorial from Lou @ GlowingPigs)[470][471][472][473][474]
- API gaps -- an Android MediaPlayer example: https://www.endpoint.com/blog/2011/03/02/api-gaps-android-mediaplayer-example
- MusicDroid - Audio Player (going back to earliest Android devices): http://www.helloandroid.com/tutorials/musicdroid-audio-player-part-i
- How to play an audio stream of bytes in Android?: https://stackoverflow.com/questions/4135402/how-to-play-an-audio-stream-of-bytes-in-android
- How to Play the online streaming radio in Android: https://stackoverflow.com/questions/18174068/how-to-play-the-online-streaming-radio-in-android#18174684
- Online radio streaming app for Android: https://stackoverflow.com/questions/6283568/online-radio-streaming-app-for-android
- Radio-Station-Stream-App-for-Android: https://github.com/tjnicolaides/Radio-Station-Stream-App-for-Android
- Android-Online-Radio-app: https://github.com/abdullahfarwees/Android-Online-Radio-app
- Android Tutorials - Code a Background Music Player: https://www.youtube.com/playlist?list=PL14AA2548E3C96B50
- Why do I not hear sound from audio-streaming URL?: https://stackoverflow.com/questions/56156362/why-do-i-not-hear-sound-from-audio-streaming-url
- Online audio streaming websites are not working properly on WebView: https://stackoverflow.com/questions/49096824/online-audio-streaming-websites-are-not-working-properly-on-webview
- Unable to create media player (using URL): https://stackoverflow.com/questions/27832921/unable-to-create-media-player-using-url
- Media player taking too much time to prepare and start: https://stackoverflow.com/questions/43929051/media-player-taking-too-much-time-to-prepare-and-start
- Android - Record videos: https://developer.android.com/training/camera/videobasics
- Java Android to Record Media Using Media Recorder: https://www.sanfoundry.com/java-android-program-record-media-media-recorder/[478][479]
- Recording Video in Android: https://developer.android.com/training/camera/videobasics[480]
- Playing Video in Android: https://www.javatpoint.com/playing-video-in-android-example
- Google -- Android codelabs - ExoPlayer intro (JAVA): https://codelabs.developers.google.com/codelabs/exoplayer-intro/ | SRC | LIB (ExoPlayer is the media player used in the YouTube app itself and supports playlists, adaptive streaming & several other features)
- How to draw a rectangle in Android (using onDraw method of View): https://alvinalexander.com/android/how-to-draw-rectangle-in-android-view-ondraw-canvas
- Creating a simple Canvas object: https://google-developer-training.github.io/android-developer-advanced-course-practicals/unit-5-advanced-graphics-and-views/lesson-11-canvas/11-1a-p-create-a-simple-canvas/11-1a-p-create-a-simple-canvas.html
- Custom Drawing with Canvas: https://academy.realm.io/posts/360-andev-2017-joshua-lamson-custom-drawing-canvas/[481][482][483][484][485][486][487][488][489][490]
- Android Canvas & Paint Common Drawing function example: https://www.dev2qa.com/android-canvas-and-paint-common-drawing-function-
- A few experiments with Android drawable gradients: https://blog.jakelee.co.uk/a-few-experiments-with-android-drawable-gradients/
- Using JavaScript in Android WebView: https://stackoverflow.com/questions/10472839/using-javascript-in-android-webview[491][492][493][494]
- Understanding Android WebView JavaScriptInterface: https://stackoverflow.com/questions/36864811/understanding-android-webview-javascript-interface#36867505
- Android - Open target _blank links in WebView with external browser: https://stackoverflow.com/questions/18187714/android-open-target-blank-links-in-webview-with-external-browser/29042384#29042384
- Android WebView -- Determine <a> target= “_ blank”: https://stackoverflow.com/questions/15368885/android-webview-determine-a-target-blank
- Unidirectional Data Flow (UDF): https://docs.google.com/document/d/13fmrGJbGHNEPo3FN7IDmwQjxjXK3qoACSRqjyawV32k/[495]
- Call Java function from JavaScript over Android WebView: https://stackoverflow.com/questions/10389572/call-java-function-from-javascript-over-android-webview
- Can the PostMessage API be used to communicate with an Android WebView?: https://stackoverflow.com/questions/19164205/can-the-postmessage-api-be-used-to-communicate-with-an-android-webview
- Write a file in external storage in Android: https://stackoverflow.com/questions/8330276/write-a-file-in-external-storage-in-android/37150620#37150620
- Android External Storage – Read, Write, Save File: https://www.journaldev.com/9400/android-external-storage-read-write-save-file (with example project)
- How to add sensor support to your apps (and how your phone’s sensors work): https://www.androidauthority.com/how-to-add-sensor-support-to-your-apps-810715/
- How to Access the Accelerometer in Android: https://dzone.com/articles/how-to-access-accelerometer-in-android
- The Android Developer's Cookbook -- Network detection example: http://www.informit.com/articles/article.aspx?p=2111971 (example walks through detecting WiFi and/or Bluetooth connectivity)
- Patterns for accessing code from Dynamic Feature Modules: https://medium.com/androiddevelopers/patterns-for-accessing-code-from-dynamic-feature-modules-7e5dca6f9123
- Building Android applications with Gradle - tutorial: https://blog.mindorks.com/building-android-applications-with-gradle-tutorial[496][497][498][499][500][501]
- Migrating Android build scripts from Groovy DSL to Kotlin DSL: https://proandroiddev.com/migrating-android-build-scripts-from-groovy-to-kotlin-dsl-f8db79dd6737
- How to fix Android Studio getting stuck executing Gradle tasks?: https://stackoverflow.com/questions/25629368/how-to-fix-android-studio-getting-stuck-executing-gradle-tasks
- How do I add a library project to the Android Studio and use it?(Some asked dont't take effect): https://stackoverflow.com/questions/16622410/how-do-i-add-a-library-project-to-the-android-studio-and-use-itsome-asked-dont
- Multiple application modules in one Android project: https://medium.com/mindorks/multiple-application-modules-in-one-android-project-36e86ceb8a9
- Android Studio is installing old apk on device: https://stackoverflow.com/questions/25831082/android-studio-is-installing-old-apk-on-device
- How to remove R.java from JavaDoc: https://stackoverflow.com/questions/10354716/how-to-remove-r-java-from-javadoc
- Why do most fields (class members) in Android tutorial start with `m`?: https://stackoverflow.com/questions/2092098/why-do-most-fields-class-members-in-android-tutorial-start-with-m (just an internal Google documentation/tutorial convention, not necessarily recommended for your own custom apps)
- How to Change the Theme Color on Android 12+: https://www.howtogeek.com/740007/how-to-change-the-theme-color-on-android/
- How to implement a "dark theme" on Android: https://medium.com/ideas-by-idean/how-to-implement-a-dark-theme-on-android-bc615fccf2d8
External Links
- wikipedia: Android
- wikipedia: Android Studio
- wikipedia: Rooting (Android) ("rooting" an Android device, the closest thing to "jailbreaking")
- Android Development – A Glimpse into the History: http://learnprogramming.academy/android-development-a-glimpse-into-the-history/
- Google has paid Android developers about half of what Apple has: https://www.theverge.com/2020/2/4/21121558/google-80-billion-android-developers-apple-155
- Oracle just revealed how much money Google makes from Android: https://www.theverge.com/2016/1/21/10810834/android-generated-31-billion-revenue-google-oracle ($31 billion USD in sales... $22 billion of that is profit)
- What Is GrapheneOS, and How Does It Make Android More Private?: https://www.howtogeek.com/790266/what-is-grapheneos-and-how-does-it-make-android-more-private/
- The Android & GooglePlay user journey -- activation & commitment: https://medium.com/googleplaydev/the-user-journey-activation-and-commitment-3b59a8d81164 (nice diagram of engagement/usage phases)
- Apple-backed Rockstar ends patent war on Android, deal suggests: https://gigaom.com/2014/11/20/apple-ends-patent-war-on-android-deal-suggests/
- Who will steal Android from Google?: https://medium.com/@steve.yegge/who-will-steal-android-from-google-af3622b6252e
- Getting The Most Out Of Android Lint: https://medium.com/@intelia/getting-the-most-out-of-android-lint-6df05a7ab054
- Use Java 8 language features in your Android apps: https://developer.android.com/studio/write/java8-support
- Android nostalgia -- 13 once-trumpeted features that quietly faded away: https://www.computerworld.com/article/3239864/android-nostalgia-old-features.html
- Fix a Pixel that freezes or won't respond: https://support.google.com/pixelphone/answer/6377386
- Samsung - Galaxy Note 3: http://www.samsung.com/ca/support/model/SM-N900WZKEBMC | MANUAL | KIES - Desktop Sync/Backup tool | Screen Replacement Guide
- How to Download an APK from Google Play to Bypass Restrictions: http://www.makeuseof.com/tag/download-apk-google-play-bypass-restrictions/
- Android dev blog posts: https://adarshspatel.in/category/gtu-mca-mobile-computing/
- Google Assistant coming to Android TV, more actions in development: http://www.androidpolice.com/2017/01/04/google-assistant-coming-android-tv-actions-development/
- Nokia dismisses Google Android threat at its peril: http://blogs.zdnet.com/open-source/?p=1796
- Nokia debuts Android phone, sort of: http://blogs.zdnet.com/Burnette/?p=530&tag=rbxccnbzd1
- It's official -- T-Mobile unveiling first Android handset next Tuesday: http://www.engadget.com/2008/09/16/its-official-t-mobile-unveiling-first-android-handset-next-tue/
- T-Mobile announces G1 Android phone: http://www.mobilenewscwp.co.uk/News/118714/tmobile_announces_g1_android_phone.html
- ENGAGET - T-Mobile G1 review: http://www.engadget.com/2008/10/16/t-mobile-g1-review/
- T-Mobile G1 Review round-up (from the Android Community itself): http://androidcommunity.com/t-mobile-g1-review-round-up-20081017/
- Google to Release Android Open-Source Code: http://surayblog.blogspot.com/2008/10/google-to-release-android-open-source.html
- New Concept for T-Mobile G1 Version 2.0: http://doubledt.com/gadget/new-concept-for-t-mobile-g1-version-20.html
- Google G1 phone: Does it know too much?: http://blogs.techrepublic.com.com/networking/?p=981&tag=nl.e102
- Chrome Web Store Slated For October Launch, Google Taking A Mere 5% Cut Of Revenue: http://techcrunch.com/2010/08/17/chrome-web-store-2/
- Android DRM Cracked! Pirating Apps is "Easy": http://www.readwriteweb.com/archives/android_drm_cracked_pirating_apps_is_easy.php
- Report - Google’s Android Market License Verification Easily Circumvented, Will Not Stop Pirates: http://www.androidpolice.com/2010/08/23/exclusive-report-googles-android-market-license-verification-easily-circumvented-will-not-stop-pirates/
- Android - RIM's worst nightmare: http://www.zdnet.com/blog/btl/android-rims-worst-nightmare/41155
- Oracle wants big cut of Android damages as Google's IP headache gets worse: http://www.zdnet.com/blog/btl/oracle-wants-big-cut-of-android-damages-as-googles-ip-headache-gets-worse/50188?tag=nl.e539
- Build Android Apps Using HTML with PhoneGap: http://www.linuxforu.com/2011/08/build-android-apps-using-html-with-phonegap/
- I'm sick to death of Android: http://www.zdnet.com/blog/perlow/im-sick-to-death-of-android/20242
- Is Android really free software?: http://www.guardian.co.uk/technology/2011/sep/19/android-free-software-stallman (by Richard Stallman)
- Why Android Studio looks very promising (hands-on review): http://www.techrepublic.com/blog/app-builder/why-android-studio-looks-very-promising-a-hands-on-review/2710
- Best Android smartphones (August 2013 edition): http://www.zdnet.com/best-android-smartphones-august-2013-edition-7000019040/
- iPhone vs. Android -- The battle of Manhattan: http://www.zdnet.com/iphone-vs-android-the-battle-of-manhattan-7000019176/
- EU's three gripes with Android (in Anti-Trust Lawsuit) - What you need to know: http://www.zdnet.com/article/eus-three-gripes-with-android-what-you-need-to-know/
- Android 5.0 Lollipop FAQ --What you need to know about Google’s biggest release yet: https://www.greenbot.com/article/2834919/android-50-lollipop-faq-what-you-need-to-know-about-googles-biggest-release-yet.html
- How To Hide the Navigation & Status Bars on Your Galaxy S8 for Even More Screen Real Estate — No Root Needed : https://android.gadgethacks.com/how-to/hide-navigation-status-bars-your-galaxy-s8-for-even-more-screen-real-estate-no-root-needed-0177297/
- Top 10 Awesome Android Features that the iPhone Doesn't Have: http://lifehacker.com/5801862/top-10-awesome-android-features-that-the-iphone-doesnt-have
- Top 5 Android apps .vs. iPhone apps: http://bgr.com/2014/02/06/top-5-android-apps-vs-iphone/
- 8 Best Android Apps/Features You Can’t Even Think of Using on iPhone: http://www.androidtapp.com/8-best-android-apps-you-cant-even-think-of-using-on-iphone/
- Top 5 of the basic Android RSS readers: http://www.talkandroid.com/8805-top-5-android-rss-readers/
- Cortana vs. Siri vs. Google Now: http://www.windowscentral.com/cortana-versus-siri-versus-google-now
- Google Assistant can play songs from Pandora Premium: https://www.engadget.com/2018/08/14/pandora-premium-google-assistant/
- Things You Can Do With New Android Studio 2.2: http://dzone.com/articles/things-you-can-do-with-new-android-studio-22
- New Features for Developers in Android Nougat: http://dzone.com/articles/new-features-for-developers-in-android-nougat?edition=155253
- Google explains how Chrome will become WebView in Android 7.0: http://www.androidpolice.com/2016/07/20/google-explains-chrome-will-become-webview-android-7-0/
- Android System Webview does not install after N7 update and update download from Play store: https://forums.lenovo.com/t5/P2-P2a42-Smartphones/Android-System-Webview-does-not-install-after-N7-update-and/td-p/3622836
- Google WebView update patches app and system crashes: http://www.greenbot.com/article/2921478/google-webview-update-patches-app-and-system-crashes.html
- Problem with Android system webview: https://forums.oneplus.net/threads/problem-with-android-system-webview.495577/
- Android Nougat 7.1.1 showAtLocation(…) Gravity not working: http://stackoverflow.com/questions/41973893/android-nougat-7-1-1-showatlocation-gravity-not-working#42084765
- Webview blank page shown in Nougat OS in my app: http://stackoverflow.com/questions/41613342/webview-blank-page-shown-in-nougat-os-in-my-app (make sure Chrome is up to date)
- URL not loading in WebView: https://teamtreehouse.com/community/url-not-loading-in-webview
- Android System Webview - Disabled?: http://forums.androidcentral.com/nexus-6p/718833-android-system-webview-disabled.html
- Android 7.0 for Developers - WebView: https://developer.android.com/reference/android/webkit/WebView.html
- Android System Webview Disabled in Nougat?: http://forums.androidcentral.com/samsung-galaxy-s7/769854-android-system-webview-disabled-nougat.html
- Google Chrome to Replace WebView in Android 7.0 Nougat: http://gadgets.ndtv.com/apps/news/google-chrome-to-replace-webview-in-android-70-nougat-863667
- How can I enable Google Chrome and Android system web view both in Android 7 (Nougat)?: https://www.quora.com/How-can-I-enable-Google-Chrome-and-Android-system-web-view-both-in-Android-7-Nougat
- Android Overtakes Windows As Top OS: https://www.mediapost.com/publications/article/298396/android-overtakes-windows-as-top-os.html
- Google won’t fix bug hitting 60 percent of Android phones: http://arstechnica.com/security/2015/01/google-wont-fix-bug-hitting-60-percent-of-android-phones/
- Major problem with Android System Webview: https://androidforums.com/threads/major-problem-with-android-system-webview.916336/
- Problem with Android system webview: https://forums.oneplus.net/threads/problem-with-android-system-webview.495577/
- Want to downgrade Android? Sure thing, but first: http://www.androidcentral.com/downgrade-android-help
- How To Downgrade The OS Of Any Samsung Android Phone: https://blog.flexispy.com/downgrade-os-samsung-android-phone/
- Android Oreo Tightens Up Some Screws (from Android Nougat), Adds Polish to Google’s Platform: https://dzone.com/articles/android-oreo-tightens-up-some-screws-adds-polish-t
- The Evolution of Android Network Access: https://medium.com/@elye.project/the-evolution-of-android-network-access-1e199fc6e9a2
- Comparing APK sizes for apps in Flutter, React Native, Kotlin and Java: https://android.jlelse.eu/comparing-apk-sizes-a0eb37bb36f
- Android’s trust problem isn’t getting better: https://www.theverge.com/2018/4/13/17233122/android-software-patch-trust-problem
- Is the current provided android emulator able to simulate the sensors?: https://stackoverflow.com/questions/40143578/is-the-current-provided-android-emulator-able-to-simulate-the-sensors
- Android Studio 2.0 Preview -- Android Emulator: https://android-developers.googleblog.com/2015/12/android-studio-20-preview-android.html
- Project ‘Fuchsia’ - Google Is Quietly Working on a Successor to Android: https://www.bloomberg.com/news/articles/2018-07-19/google-team-is-said-to-plot-android-successor-draw-skepticism
- Android 4.4+ KitKat ships without browser app. OEMs have to license Chrome or build their own: https://web.archive.org/web/20140329191952/http://www.unwiredview.com/2013/11/21/android-4-4-kitkat-ships-without-browser-app-oems-have-to-license-chrome-or-build-their-own/
- Why is the Android stock browser still alive?: https://android.stackexchange.com/questions/75336/why-is-the-android-stock-browser-still-alive
- Web Sockets on Samsung Galaxy S3 Android Browser?: https://stackoverflow.com/questions/13349305/web-sockets-on-samsung-galaxy-s3-android-browser
- What browsers support HTML5 WebSocket API?: https://stackoverflow.com/questions/1253683/what-browsers-support-html5-websocket-api (good details on Android support for WebSockets)
- Lumentum expects Android devices with Apple-like 3D sensing tech in 2019: https://www.reuters.com/article/us-lumentum-hldg-results/lumentum-expects-android-devices-with-apple-like-3d-sensing-tech-in-2019-idUSKCN1PU1DI
- Amazing Open Source Android Apps Written in Java: https://dzone.com/articles/amazing-open-source-android-apps-written-in-java
- ANDROID AT 10 — THE WORLD’S MOST DOMINANT TECHNOLOGY: https://www.theverge.com/2018/9/26/17903788/google-android-history-dominance-marketshare-apple
- Handling "IllegalStateException - Can not perform this action after onSaveInstanceState": https://medium.com/@elye.project/handling-illegalstateexception-can-not-perform-this-action-after-onsaveinstancestate-d4ee8b630066 (quick fix use transaction.commitAllowingStateLoss();, proper answer... try not to use this, instead debug the troublesome state(s) and/or their listener(s) to avoid the error... often caused by switching an OS setting outside the app, that your app cares about... while app remains open in background)
- Google launches Android 11 Developer Preview ahead of schedule for Pixel phones: https://9to5google.com/2020/02/19/android-11-developer-preview-launch/
- Google Removes Nearly 600 Apps with intrusive ads From Google Play Store: https://www.mediapost.com/publications/article/347374/google-removes-nearly-600-apps-from-google-play-st.html
- Android's Java JDK 9, 10, 11, and 12 Support: https://jakewharton.com/androids-java-9-10-11-and-12-support/
- Now in Android 11 Developer Preview 2 -- Android X releases, article/video & ADB podcast episode roundup, game development guides: https://medium.com/androiddevelopers/now-in-android-14-78a91def4962
- Security News This Week -- A Bug in Popular Android Smartphones Gives Hackers Full Control: https://www.wired.com/story/android-smartphone-hacking-fcc-bots-voatz-security-news/
- The 1-Star Android App Review: https://medium.com/swlh/the-1-star-android-app-review-b2892756925f (how they happen, how to prevent, how to deal with)
- Checking for Poisoned Projects (Android/Gradle): https://commonsware.com/blog/2021/01/27/checking-poisoned-projects.html
- Behavior changes - Apps targeting Android 12: https://developer.android.com/about/versions/12/behavior-changes-12
- Android Has a Big Messaging Problem, and It Broke My Texts for a Week: https://www.reviewgeek.com/93307/android-has-a-big-messaging-problem-and-it-broke-my-texts-for-a-week/
- Fix “unable to locate adb” when encountered using Android Studio: https://stackoverflow.com/questions/39036796/unable-to-locate-adb-using-android-studio
- Google plans to remove Oracle’s Java APIs from Android N: https://www.extremetech.com/mobile/220136-google-plans-to-remove-oracles-java-apis-from-android-n
- Android's Java 8 Support: https://jakewharton.com/androids-java-8-support/
- Android's Java 9, 10, 11, and 12 Support: https://jakewharton.com/androids-java-9-10-11-and-12-support/
- Exclusive -- Google Is Banning A Play Store Developer With More Than Half A Billion App Installs: https://www.buzzfeednews.com/article/craigsilverman/google-ban-play-store-do-global-baidu
- Package R does not exist: https://stackoverflow.com/questions/12986301/package-r-does-not-exist (common problem when refactoring packages and covering all Java code and/or Tests, but forgetting to update the relevant "AndroidManifest.xml" entries)[511]
- HUNDREDS OF ANDROID APPS STEAL YOUR DATA EVEN IF YOU DENY PERMISSION, STUDY REVEALS: https://www.independent.co.uk/life-style/gadgets-and-tech/news/android-apps-data-privacy-google-play-store-a8994921.html
- 80% Of U.S. Apps Found To Have 'Dangerous Permissions,' Many From China, Russia, South Korea: https://www.mediapost.com/publications/article/344685/80-of-us-apps-found-to-have-dangerous-permissi.html
- Major Vulnerability Found In Google, Samsung Phones - Lets Hackers Take Pictures, Record Voices: https://www.mediapost.com/publications/article/343616/major-vulnerability-found-in-google-samsung-smart.html
- Android Studio - Gradle sync error: https://stackoverflow.com/questions/27770909/android-studio-gradle-sync-error
- Android to enable archiving of apps to free up space: https://sdtimes.com/mobile/android-to-enable-archiving-of-apps-to-free-up-space/
- Stop Closing Apps on Your Android Phone: https://www.howtogeek.com/771413/stop-closing-apps-on-your-android-phone/ (OS should automatically handle this for you, since v9.0)
- Multiple Governments Buying Android "Zero-Days" (exploits) for Spying (on citizens and/or "enemies of the state") says Google: https://www.darkreading.com/attacks-breaches/google-android-0-days-multiple-governments-spying
- 13 Things to know for Android developers at Google I/O!: https://android-developers.googleblog.com/2022/05/13-things-to-know-for-android-developers-at-google-io.html
- Cardinal Sins of Android Development: https://proandroiddev.com/the-seven-actually-10-cardinal-sins-of-android-development-491d2f64c8e0
References
- ↑ ANDROID Robot + Logo: Portions of this page are modifications based on work created and <a href="http://code.google.com/policies.html">shared by Google</a> and used according to terms described in the <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons 3.0 Attribution License</a>.
- ↑ wikipedia: Android version history
- ↑ wikipedia: List of features in Android
- ↑ Android versions -- A living history from 1.0 to 11: https://www.computerworld.com/article/3235946/android-versions-a-living-history-from-1-0-to-today.html
- ↑ The ugly truth behind Android's OS version/capabilities upgrade problem: https://www.computerworld.com/article/3175067/android-upgrade-problem.html
- ↑ Retrieving Android API version programmatically: https://stackoverflow.com/questions/3423754/retrieving-android-api-version-programmatically
- ↑ The 10 Greatest Versions of Android, Ranked: https://www.howtogeek.com/719851/the-10-greatest-versions-of-android-ranked/
- ↑ wikipedia: Android Ice Cream sandwich
- ↑ wikipedia: Android Jelly Bean
- ↑ wikipedia: Android KitKat (4.4, API 19-20)
- ↑ wikipedia: Android Lollipop (5.0, API 21-22)
- ↑ wikipedia: Android Marshmallow (6.0, API 23)
- ↑ wikipedia: Android Nougat (7.0, API 24-25)
- ↑ wikipedia: Android Oreo (8.0, API 26-27)
- ↑ wikipedia: Android Pie (9.0, API 28)
- ↑ wikipedia: Android Q (10.0, API 29)
- ↑ Android Q -- Everything you need to know!: https://www.androidcentral.com/android-q
- ↑ Welcoming Android 10!: https://android-developers.googleblog.com/2019/09/welcoming-android-10.html (2019-09-03)
- ↑ Google cuts the sugar out of Android with a simplified name and fresh logo : https://www.digitaltrends.com/mobile/google-rebrands-android-drops-dessert-naming-scheme/
- ↑ wikipedia: Android 11 (11.x aka "R", API 30)
- ↑ Turning it up to 11 - the first Developer Preview of Android 11: https://android-developers.googleblog.com/2020/02/Android-11-developer-preview.html
- ↑ Android 11 - Developer preview highlights: https://levelup.gitconnected.com/android-11-developer-preview-highlights-5b56c5b1c3cb
- ↑ Top Features of Android 11 from Developer’s Point of View: https://android.jlelse.eu/android-11-developers-point-of-view-39f0f135da88
- ↑ Android 11 timeline -- Three developer previews, first beta in May, and Q3 2020 launch: https://9to5google.com/2020/02/19/android-11-launch-timeline/
- ↑ Android 11 release date and what we know about the upcoming OS upgrade: https://www.techradar.com/news/android-11
- ↑ Android 11 preview released -- These are the top new features: https://www.tomsguide.com/news/android-11-preview-released-these-are-the-top-new-features
- ↑ Google releases Android 11 developer preview earlier than expected: https://www.theverge.com/2020/2/19/21143789/google-android-11-developer-preview-release-5g-security-early
- ↑ The first Android 11 developer preview has already landed: https://www.androidpit.com/android-11-release-date-news-features
- ↑ Android 11 roundup -- Everything new with Android 11: https://9to5google.com/guides/android-11/
- ↑ How to install the Android 11 Developer Preview on Google Pixel devices (VIDEO): https://9to5google.com/2020/02/19/android-11-google-pixel-install-developer-preview/
- ↑ First preview of Android 12: https://android-developers.googleblog.com/2021/02/android-12-dp1.html
- ↑ Google Will Let You Opt Out of Being Tracked by Apps in Android 12: https://gizmodo.com/google-will-let-you-opt-out-of-being-tracked-by-apps-in-1847029681
- ↑ Android 12 Beta 2 adds more privacy features: https://sdtimes.com/softwaredev/android-12-beta-2-adds-more-privacy-features/?activecampaign_id=123002
- ↑ Android 12 Beta 4 reaches "Platform Stability": https://android-developers.googleblog.com/2021/08/android-12-beta-4-and-platform-stability.html
- ↑ What Is Android 12L?: https://www.howtogeek.com/767928/what-is-android-12l/
- ↑ Google Brings Back Dessert Codenames For New OS, Names Android 12 ‘Snow Cone': https://www.republicworld.com/technology-news/mobile/google-brings-back-dessert-codenames-for-new-os-names-android-12-snow-cone.html
- ↑ "Material You" Coming to more Android devices near you: https://android-developers.googleblog.com/2022/02/material-you-coming-to-more-android.html
- ↑ Android 12’s “Material You” Is Coming to These 5 Phones: https://www.howtogeek.com/785428/android-12s-material-you-is-coming-to-these-5-phones/ (sSmsung,
- ↑ How to Install Android 12L on a Google Pixel: https://www.howtogeek.com/799089/how-to-install-android-12l-on-a-google-pixel/
- ↑ The first developer preview of Android 13: https://android-developers.googleblog.com/2022/02/first-preview-android-13.html
- ↑ Google debuts Android 13 with its first developer preview: https://www.theverge.com/2022/2/10/22926874/android-13-features-developer-previewlanguage-controls
- ↑ Android 13’s Developer Preview Boosts Your Photo Privacy: https://www.howtogeek.com/785448/android-13s-developer-preview-boosts-your-photo-privacy/
- ↑ Android 13 Is Named After the Classic Italian Dessert: https://www.howtogeek.com/785630/android-13-is-named-after-the-classic-italian-dessert/
- ↑ Yep, Android 13’s dessert codename is ‘Tiramisu’ after all: https://www.theverge.com/tldr/2022/2/11/22928812/android-13-cake-codename-tiramisu
- ↑ Android 13 Phones Can Run Windows 11, Here’s Why: https://www.howtogeek.com/785972/android-13-phones-can-run-windows-11-heres-why/
- ↑ Android 13 deep dive -- Every change, thoroughly documented: https://blog.esper.io/android-13-deep-dive/
- ↑ Google is working on software that could eventually replace Android: https://mashable.com/article/google-fuchsia-os-replace-android-five-years/
- ↑ Google Fuchsia - Armadillo Smartphone OS, Not Based on Linux, Spotted in Images and Video: https://gadgets.ndtv.com/internet/news/google-fuchsia-armadillo-linux-smartphone-os-image-video-leak-1691260
- ↑ Fuchsia OS Spotted on Google's Android Open Source Project (AOSP), Said to Natively Support Android Apps: https://gadgets.ndtv.com/android/news/fuchsia-os-android-aosp-art-native-support-android-apps-1844248
- ↑ Is Fuchsia going to replace Android? Flutter with Fuchsia next big thing?: https://sanjibsinha.com/is-fuchsia-going-to-replace-android-flutter-with-fuchsia-next-big-thing/
- ↑ What is Google’s Fuchsia OS?: https://www.androidauthority.com/what-is-google-fuchsia-os-847784/
- ↑ Leaker says Samsung will probably switch to Google’s mysterious new mobile OS: https://www.yahoo.com/entertainment/leaker-says-samsung-probably-switch-161332751.html
- ↑ Google might have quietly teased the OS that will replace Android: https://www.msn.com/en-us/news/technology/google-might-have-quietly-teased-the-os-that-will-replace-android/ar-BB1dQB44
- ↑ Google’s mysterious OS (Fuchsia) that might replace Android just reached a new milestone -- Bluetooth Cerification (Google Sapphire 1.0 Bluetooth Core Host Solution): https://www.msn.com/en-us/news/technology/googles-mysterious-os-that-might-replace-android-just-reached-a-new-milestone/ar-BB17UGj9
- ↑ Google Fuchsia First Beta to Replace Android, Chrome OS: How to Download?: https://www.techtimes.com/articles/258295/20210323/google-fuchsia-first-beta-replace-android-chrome-os-download.htm
- ↑ Report -- Google's new Fuchsia OS could replace Android - or not: https://www.cnet.com/news/report-google-new-fuchsia-os-could-replace-android-or-not/
- ↑ Why Google's Fuschia won't replace Android and Chrome OS: https://www.techrepublic.com/article/why-googles-fuschia-wont-replace-android-and-chrome-os/
- ↑ How to Find Out What Model of Android Phone You Have: https://www.howtogeek.com/347761/how-to-find-out-what-model-of-android-phone-you-have/
- ↑ Top Android phone manufacturers: https://www.appbrain.com/stats/top-manufacturers
- ↑ Top 10 Smartphone OEMs Listed, 6 Of Them Are From China: https://www.androidheadlines.com/2015/05/top-10-smartphone-oems-listed-6-china.html
- ↑ New report compares Android OEMs - Motorola is the fastest with updates, Sony has lowest crash rate: https://9to5google.com/2016/08/16/android-oems-compared/
- ↑ What are "Android Skins"?: https://www.howtogeek.com/701801/what-are-android-skins/ (custom "entire OS" themes/styling/gestures/default-apps/settings)
- ↑ Google Nexus vs Google Pixel -- What's the difference?: https://www.pocket-lint.com/phones/buyers-guides/google/135451-google-nexus-vs-google-pixel-what-s-the-difference (Nexus is designed & manufactured by Google partners based on Google's specs: Samsung, LG, Motorola, Nokia; whereas Pixel is fully designed, developed, manufactured, distributed & supported by Google, but some phases still having strategic partner involvement such as Intel design & HTC manufacture)
- ↑ Google Nexus vs Google Pixel - What's the difference?: https://www.quora.com/Google-Nexus-vs-Google-Pixel-Whats-the-difference
- ↑ Google Pixel starts to challenge Samsung in UK Android market: https://telecoms.com/502822/google-pixel-starts-to-challenge-samsung-in-uk-android-market/
- ↑ Samsung Galaxy S7: https://www.gsmarena.com/samsung_galaxy_s7-7821.php
- ↑ wikipedia: Category:Android_(operating_system)_devices
- ↑ List of Android 10 Supported LG Devices: https://www.getdroidtips.com/list-of-android-q-supported-lg-devices/
- ↑ wikipedia: HTC Sense
- ↑ wikipedia: Google Nexus
- ↑ wikipedia: Nexus One
- ↑ What Was HTC Sense, and How Did It Change Android?: https://www.howtogeek.com/717107/what-was-htc-sense-and-how-did-it-change-android/
- ↑ HP abandons low-end Android tablets to focus on profitability with iPad-like prices: https://appleinsider.com/articles/15/12/03/hp-abandons-low-end-android-tablets-to-focus-on-profitability-with-ipad-like-prices
- ↑ wikipedia: Android_One#Products_by_year_of_announcement_or_release (intentionally low-powered/lower-end/cheaper Android devices from well-known Android OEMs)
- ↑ Stock Android vs Android One vs Android Go: https://www.androidauthority.com/stock-android-vs-android-one-vs-android-go-860020/
- ↑ IDC data shows 66% of Android's 81% smartphone share are junk phones selling for $215 or less (high "designed for the dumb" likelihood, in network-limited markets, leading to low real-world usage outside of calls/texts): https://appleinsider.com/articles/13/11/12/idc-data-shows-66-of-androids-81-smartphone-share-are-junk-phones-selling-for-215
- ↑ Cheap smartphones have a disturbing secret: https://www.fastcompany.com/90408472/cheap-smartphones-have-a-disturbing-secret
- ↑ Best budget phones you can buy (January 2020): https://www.androidauthority.com/cheap-android-phones-269520/
- ↑ Apps with great experiences on large screens: https://developer.android.com/large-screens/stories
- ↑ Why Windows 11’s Android apps are better than BlueStacks: https://www.howtogeek.com/766547/why-windows-11s-android-apps-are-better-than-bluestacks/
- ↑ The powerful Android Studio: http://saulmm.github.io/the-powerful-android-studio (animated GIFs of some key new feature as of 2016)
- ↑ How I automated creating files for a new screen with my own Android Studio plugin: https://proandroiddev.com/how-i-automated-creating-files-for-a-new-screen-with-my-own-android-studio-plugin-5d54b14ba6fa
- ↑ Android Studio - Debug Your App: https://developer.android.com/studio/debug/index.html (steps for when you want to debug a native or hybrid app and have access to the code)
- ↑ Android Studio - Create and Edit Run/Debug Configurations: https://developer.android.com/studio/run/rundebugconfig.html
- ↑ How to Debug Android application line by line using Eclipse?: https://stackoverflow.com/questions/8551818/how-to-debug-android-application-line-by-line-using-eclipse
- ↑ How to increase the font size in Android Studio?: https://stackoverflow.com/questions/16590216/how-to-increase-the-font-size-in-android-studio
- ↑ Search all the occurrences of a string in the entire project in Android Studio: https://stackoverflow.com/questions/20252180/search-all-the-occurrences-of-a-string-in-the-entire-project-in-android-studio (CTR+SHIFT+F shortcut to "Find All in Project")
- ↑ My Android Studio project keeps running my old project/application: https://stackoverflow.com/questions/27132140/my-android-studio-project-keeps-running-my-old-project-application
- ↑ How to fixed if it won't run unless I update "google play service" in android studio: https://stackoverflow.com/questions/39730327/how-to-fixed-if-it-wont-run-unless-i-update-google-play-service-in-android-stud#40333081
- ↑ How To Change Package Name In Android Studio: https://abhiandroid.com/androidstudio/how-to-change-package-name-android-studio.html
- ↑ Quick search on filename Android studio: https://stackoverflow.com/questions/25419684/quick-search-on-filename-android-studio (double-type SHIFT key for "Search All" across all IDE including settings, CTRL+SHIFT+N to "find by filename" similar to Eclipse/Netbeans)
- ↑ How to get the package name of current launcher in Android?: https://stackoverflow.com/questions/25055762/how-to-get-the-package-name-of-current-launcher-in-android
- ↑ Developing Android unit and instrumentation tests (in Java) tutorial: https://www.vogella.com/tutorials/AndroidTesting/article.html
- ↑ Android Testing - How to Perform Instrumented Tests (in Kotlin): https://medium.com/swlh/android-testing-how-to-perform-instrumented-tests-2000a75b6f73 | BACKUP
- ↑ A guide to test pyramid in Android — Instrumented tests — Part 3: https://proandroiddev.com/a-guide-to-test-pyramid-in-android-instrumented-tests-part-3-3ae46049fe
- ↑ Friendspell: https://github.com/chiuki/friendspell (Party icebreaker game based on the Google Nearby API, with usages of Unit Tests, Instrumentation Tests, Espresso UI Tests)
- ↑ Getting The Most Out Of Android Lint: https://medium.com/@intelia/getting-the-most-out-of-android-lint-6df05a7ab054
- ↑ Little more about ProGuard for Android: https://medium.com/android-news/little-more-about-proguard-for-android-5aed2e18f6f1
- ↑ TV resolution confusion: 1080p, 2K, UHD, 4K, 8K, and what they all mean: https://www.cnet.com/news/4k-1080p-2k-uhd-8k-tv-resolutions-explained/
- ↑ Channels on the home screen: https://developer.android.com/training/tv/discovery/recommendations-channel
- ↑ How to Force Close Apps on Android TV: https://www.howtogeek.com/688347/how-to-force-close-apps-on-android-tv/
- ↑ How to Customize the Android TV Home Screen: https://www.howtogeek.com/686217/how-to-customize-the-android-tv-home-screen/
- ↑ How to Use Your Android Phone as a Google TV Remote: https://www.howtogeek.com/757203/how-to-use-your-android-phone-as-a-google-tv-remote/
- ↑ IoT, Android Things, and the Cloud: https://dzone.com/articles/iot-android-things-and-the-cloud
- ↑ Android gets a Jetpack: https://techcrunch.com/2018/05/08/android-gets-a-jetpack/
- ↑ What is Android Jetpack and why should we use it?: https://blog.mindorks.com/what-is-android-jetpack-and-why-should-we-use-it
- ↑ What exactly is Android Jetpack?: https://stackoverflow.com/questions/50251658/what-exactly-is-android-jetpack
- ↑ Android JetPack - Navigation Architecture Component: https://medium.com/deemaze-software/android-jetpack-navigation-architecture-component-b603c9a8100c
- ↑ Using the Navigation Component (from JetPack) in a modular world: https://medium.com/swlh/using-the-navigation-component-in-a-modular-world-e7578825962
- ↑ The State of Navigation in Jetpack Compose: https://proandroiddev.com/the-state-of-navigation-in-jetpack-compose-cc13eb6ac3d9
- ↑ How AndroidX changes the way we work with Activities and Fragments: https://medium.com/@miloszlewandowski/how-androidx-changes-the-way-we-work-with-activities-and-fragments-73b88d157678
- ↑ Migrating to AndroidX - tips, tricks, and guidance: https://medium.com/androiddevelopers/migrating-to-androidx-tip-tricks-and-guidance-88d5de238876
- ↑ Restitching Plaid: https://medium.com/@crafty/restitching-plaid-9ca5588d3b0a (migrating to AndroidX)
- ↑ Patchwork Plaid — A modularization story:
- ↑ Loaders in Support Library 27.1.0: https://medium.com/androiddevelopers/loaders-in-support-library-27-1-0-b1a1f0fee638 (basically any call to getLoaderManager() becomes LoaderManager.getInstance(this) so the code will need changing to LoaderManager.getInstance(this).initLoader(LOADER_ID, null, this);)
- ↑ What are Android Architecture Components?: https://blog.mindorks.com/what-are-android-architecture-components
- ↑ Architecture Components - Easy Mapping of Actions and UI State: https://android.jlelse.eu/architecture-components-easy-mapping-of-actions-and-ui-state-207663e3fdd
- ↑ Android Architecture Components -- Lifecycle example using Camera access use-case: https://android.jlelse.eu/android-architecture-components-lifecycles-8990957e7e28
- ↑ Architecture Components - Easy Mapping of Actions and UI State: https://medium.com/android-news/architecture-components-easy-mapping-of-actions-and-ui-state-207663e3fdd
- ↑ Architecture Components & MVP / MVVM: https://medium.com/android-news/architecture-components-mvp-mvvm-237eaa831096
- ↑ Introducing Android Sunflower: https://medium.com/androiddevelopers/introducing-android-sunflower-e421b43fe0c2
- ↑ A modern approach to Android development, with Jetpack Compose and more!: https://android-developers.googleblog.com/2019/10/android-dev-summit-2019-keynote.html
- ↑ Jetpack Compose is now 1.0 -- announcing Android’s modern toolkit for building native UI: https://android-developers.googleblog.com/2021/07/jetpack-compose-announcement.html
- ↑ ShapeableImageView — "Material Components" for Android: https://medium.com/android-beginners/shapeableimageview-material-components-for-android-cac6edac2c0d
- ↑ Android Open Source Project: http://www.youtube.com/watch?v=7Y4thikv-OM
- ↑ Run Multiple Apps, All At Once on Android-Powered Phones: http://www.youtube.com/watch?v=q1m4j676BCc
- ↑ Scan Barcodes with ML Kit on Android: https://developers.google.com/ml-kit/vision/barcode-scanning/android
- ↑ QR Code Scanner – Barcode Scanner for Android: https://www.journaldev.com/18198/qr-code-barcode-scanner-android
- ↑ Android Barcode Reader and Qr Code Scanner using Google Mobile Vision: https://medium.com/cashify-engineering/barcode-reader-using-google-mobile-vision-88b3e9f31668
- ↑ Android SDK -- Create a Barcode Reader - ZXing (Zebra Crossing): https://code.tutsplus.com/tutorials/android-sdk-create-a-barcode-reader--mobile-17162
- ↑ Android QR Code Scanner Tutorial using Zxing Library: https://www.simplifiedcoding.net/android-qr-code-scanner-tutorial/
- ↑ Creating a Barcode Scanner using Android Studio: https://medium.com/analytics-vidhya/creating-a-barcode-scanner-using-android-studio-71cff11800a2
- ↑ What Is the Privacy Dashboard on Android?: https://www.howtogeek.com/733712/what-is-the-privacy-dashboard-on-android/
- ↑ Android 13's privacy dashboard prepares to show you the big picture: https://www.androidpolice.com/android-13s-privacy-dashboard-prepares-to-show-you-the-big-picture/
- ↑ Create an Android library: https://developer.android.com/studio/projects/android-library
- ↑ Why your Android Studio takes forever to build: https://medium.com/@temidjoy/why-your-android-studio-takes-forever-to-build-e8a638f97b34
- ↑ Why your Android Studio takes forever to build-Part 2: https://medium.com/@temidjoy/why-your-android-studio-takes-forever-to-build-part-2-c1b9c38e894b
- ↑ How Linux kernel interfaces with android runtime and libraries?: https://stackoverflow.com/questions/37436869/how-linux-kernel-interfaces-with-android-runtime-and-libraries
- ↑ How to publish and distribute your Android library: https://medium.com/swlh/how-to-publish-and-distribute-your-android-library-ce845c68c7f7
- ↑ wikipedia: Android_application_package (Android application Package)
- ↑ What does APK stand for? What is the internal format?: https://android.stackexchange.com/questions/1365/what-does-apk-stand-for-what-is-the-internal-format
- ↑ Getting inside APK files: https://medium.com/android-news/getting-inside-apk-files-21dbd01529d4
- ↑ APK vs AAB - Why Is Google Changing Android’s App Format?: https://www.cloudsavvyit.com/12544/apk-vs-app-bundle-why-is-google-changing-androids-app-format/
- ↑ What Is an Android App Bundle (AAB)?: https://www.howtogeek.com/739098/what-is-an-android-app-bundle-aab/
- ↑ A Practical Guide to Android App Bundle for Beginners: https://medium.com/better-programming/a-practical-guide-to-android-app-bundle-for-beginners-7e8d93831828
- ↑ R8 Shrinking in Android: https://betterprogramming.pub/r8-shrinking-in-android-27f3edbbad9e
- ↑ Android Tutorial - How to reduce Android app size?: https://dev.to/amitspaceo/how-to-reduce-android-app-size-android-tutorial-578i
- ↑ Reduce APK size: https://developer.android.com/topic/performance/reduce-apk-size
- ↑ 5 Easy Hacks To Reduce The Android APK Size: https://android.jlelse.eu/5-easy-hacks-to-reduce-the-android-apk-size-2f343b30187
- ↑ Twitter uses app bundles to keep their app featherweight, reducing its app size by a third: http://https://developer.android.com/stories/apps/twitter
- ↑ How to Disable Automatic App Updates in Android: https://www.howtogeek.com/202297/how-to-disable-automatic-app-updates-in-android/
- ↑ Ten New Features in Android 10: https://www.androidinfotech.com/new-features-android-10/#8_Focus_mode
- ↑ Google’s Digital Wellbeing is schooling Apple on how to combat smartphone addiction: https://www.pcworld.com/article/401938/google-digital-wellbeing-android-p.html
- ↑ Android Digital Wellbeing - How to sign up, set up, and break your bad habits: https://www.pcworld.com/article/402383/android-digital-wellbeing.html
- ↑ Where are notepad notes stored?: https://android.stackexchange.com/questions/215061/where-are-notepad-notes-stored#215070
- ↑ Where does Huawei Ascend Y300 store "Notes"?: https://forum.xda-developers.com/t/q-where-does-huawei-ascend-y300-store-notes.2810932/ (initially stored in /data/data/com.android.notes/files in SQLite format in a file called note_pad.db but this seems to have changed in later Android versions)
- ↑ How to Transfer Notes to a New Phone: https://www.guidingtech.com/transfer-notes-new-phone/
- ↑ How to Transfer Notes from Huawei to Samsung (2020): https://www.wikihow.com/Transfer-Notes-from-Huawei-to-Samsung
- ↑ Firebase Test Lab: https://firebase.google.com/docs/test-lab/
- ↑ Firebase Android Codelab - Build Friendly Chat (in Java): https://codelabs.developers.google.com/codelabs/firebase-android/ | SRC
- ↑ How to get the SHA-1 fingerprint certificate in Android Studio for debug mode?: https://stackoverflow.com/questions/27609442/how-to-get-the-sha-1-fingerprint-certificate-in-android-studio-for-debug-mode
- ↑ Compile OpenSSL 1.1.1 for Android application: https://proandroiddev.com/tutorial-compile-openssl-to-1-1-1-for-android-application-87137968fee
- ↑ Firebase Android Codelab - Grow Friendly Chat: https://codelabs.developers.google.com/codelabs/growfirebase-android/ | SRC
- ↑ Firebase Quickstart Samples for Android https://github.com/firebase/quickstart-android
- ↑ Firebase docs -- Authenticating Your Client: https://developers.google.com/android/guides/client-auth (Mac/Linux and Windows versions of the command... basically swap "~" for "%USERPROFILE%")
- ↑ Firebase docs -- Manage Users in Firebase: https://firebase.google.com/docs/auth/android/manage-users
- ↑ Firebase docs -- Authenticate with Firebase using Password-Based Accounts on Android: https://firebase.google.com/docs/auth/android/password-auth
- ↑ Can't login my App using Firebase: https://stackoverflow.com/questions/44626822/cant-login-my-app-using-firebase
- ↑ Firebase Android - Google Sign In Failure: https://stackoverflow.com/questions/39987012/firebase-android-google-sign-in-failure
- ↑ Google SignIn Fails with code 10 (on Android): https://github.com/googlesamples/google-services/issues/360
- ↑ Facebook login & Google sign in not working on Android app in production?: https://medium.com/@akashmahali/facebook-login-google-sign-in-not-working-on-android-app-in-production-5febd9537f92
- ↑ Firebase docs -- Understand Firebase Realtime Database Rules: https://firebase.google.com/docs/database/security
- ↑ Firebase docs -- Security quick start: https://firebase.google.com/docs/database/security/quickstart
- ↑ Firebase docs -- Authenticate with Firebase Anonymously on Android: https://firebase.google.com/docs/auth/android/anonymous-auth
- ↑ Firebase docs -- User Based Security: https://firebase.google.com/docs/database/security/user-security
- ↑ Signed APK build failure re:play-services-ads-identifier.properties collision: https://stackoverflow.com/questions/60402349/signed-apk-build-failure-replay-services-ads-identifier-properties-collision
- ↑ Difference between SurfaceView and View?: https://stackoverflow.com/questions/1243433/difference-between-surfaceview-and-view/15995353#15995353
- ↑ Android UI Internal -- SurfaceView Vs View: https://pierrchen.blogspot.com/2014/03/anroid-graphics-surfaceview-all-you.html
- ↑ Porter/Duff Compositing and Blend Modes: http://ssp.impulsetrain.com/porterduff.html
- ↑ Animate all the things - Transitions in Android: https://medium.com/@andkulikov/animate-all-the-things-transitions-in-android-914af5477d50
- ↑ How to get package name of camera application: https://stackoverflow.com/questions/9665045/how-to-get-package-name-of-camera-application#96654400
- ↑ Google Camera: https://www.apkmirror.com/apk/google-inc/camera/
- ↑ Taking pictures with camera on Android programmatically: https://stackoverflow.com/questions/14421694/taking-pictures-with-camera-on-android-programmatically
- ↑ Android - Camera API example: https://www.tutorialspoint.com/android/android_camera.htm
- ↑ Taking Photos Simply: https://web.archive.org/web/20130529180836/http://stuff.mit.edu:80/afs/sipb/project/android/docs/training/camera/photobasics.html
- ↑ Android’s New Image Capture from a Camera using File Provider: https://android.jlelse.eu/androids-new-image-capture-from-a-camera-using-file-provider-dd178519a954
- ↑ Android dev docs -- Build a Camera App: https://developer.android.com/guide/topics/media/camera.html#custom-camera
- ↑ Android dev docs -- Control the camera (Camera 2.x API): https://developer.android.com/training/camera/cameradirect.html
- ↑ Understanding Camera2 API from callbacks: Part 1 | Part 2
- ↑ Google - Camera2 basic example: http://github.com/googlearchive/android-Camera2Basic/tree/master/Application/src/main
- ↑ Android CAMERA2 API example tutorial: http://web.archive.org/web/20160528133624/https://inducesmile.com/android/android-camera2-api-example-tutorial/
- ↑ How to use Android's camera or Camera2 API to support old and new API versions without deprecation notes?: https://stackoverflow.com/questions/27272845/how-to-use-androids-camera-or-camera2-api-to-support-old-and-new-api-versions-w
- ↑ The least you can do with Camera2 API: https://medium.com/android-news/the-least-you-can-do-with-camera2-api-2971c8c81b8b
- ↑ Google Codelabs -- Android - Getting Started with CameraX: https://developer.android.com/codelabs/camerax-getting-started
- ↑ Android CameraX - overview: http://www.journaldev.com/30132/android-camerax-overview | SRC
- ↑ CameraX - An Introduction: https://medium.com/android-news/camerax-an-introduction-b3d76c3820e6
- ↑ Introduction to Android’s CameraX With Java: https://medium.com/swlh/introduction-to-androids-camerax-with-java-ca384c522c5
- ↑ What’s new in CameraX: https://medium.com/androiddevelopers/whats-new-in-camerax-fb8568d6ddc
- ↑ How to Wirelessly Transfer Files from Windows to Android: https://www.howtogeek.com/707171/how-to-wirelessly-transfer-files-from-windows-to-android/
- ↑ Turn cookies on or off: https://support.google.com/accounts/answer/61416?co=GENIE.Platform%3DAndroid&hl=en
- ↑ How to Install Chrome Browser on Android TV: https://techwiser.com/how-to-install-chrome-browser-on-android-tv/
- ↑ Google's Android Dev blog -- Developer tools to debug WebView in beta: https://android-developers.googleblog.com/2020/04/developer-tools-to-debug-webview-in-beta.html
- ↑ The Crosswalk Project: https://github.com/crosswalk-project (prior way to get Chrome into a WebView, before Google officially started making Chrome the default browser AND WebView rendering engine)
- ↑ Android 4.4+ KitKat ships without browser app. OEMs have to license Chrome or build their own: https://web.archive.org/web/20150324060415/http://www.unwiredview.com/2013/11/21/android-4-4-kitkat-ships-without-browser-app-oems-have-to-license-chrome-or-build-their-own/
- ↑ Use Chrome as render engine for Android webview: https://stackoverflow.com/questions/14537083/use-chrome-as-render-engine-for-android-webview
- ↑ Is it better to use Android System Webview when not using Chrome as default browser?: https://android.stackexchange.com/questions/179613/is-it-better-to-use-android-system-webview-when-not-using-chrome-as-default-brow
- ↑ Google explains how Chrome will become WebView in Android 7.0 (Nougat): https://www.androidpolice.com/2016/07/20/google-explains-chrome-will-become-webview-android-7-0/
- ↑ Google Chrome to Replace WebView in Android 7.0 Nougat: https://gadgets.ndtv.com/apps/news/google-chrome-to-replace-webview-in-android-70-nougat-863667
- ↑ Change to Chrome Web Browser in Android?: https://www.askdavetaylor.com/change-update-chrome-web-browser-android-phone/
- ↑ Why is the Android stock browser still alive?: https://android.stackexchange.com/questions/75336/why-is-the-android-stock-browser-still-alive
- ↑ PdfConverter.java example of Native Mobile App PDF conversion: https://github.com/blink22/react--html-to-pdf/blob/master/android/src/main/java/android/print/PdfConverter.java
- ↑ Android PDF not loading in browser and WebView: https://stackoverflow.com/questions/30461392/android-pdf-not-loading-in-browser-and-webview
- ↑ Google dev docs -- Android - PdfRenderer: https://developer.android.com/reference/android/graphics/pdf/PdfRenderer (added in API level 21)
- ↑ Rendering PDFs on Android the easy way: https://proandroiddev.com/rendering-pdfs-on-android-the-easy-way-c05635b2c3a8
- ↑ Rendering a PDF Document in Android Activity/Fragment (Using PdfRenderer): https://medium.com/@chahat.jain0/rendering-a-pdf-document-in-android-activity-fragment-using-pdfrenderer-442462cb8f9a
- ↑ Rendering PDF Document’s in Android using PdfRenderer: https://medium.com/android-dev-hacks/rendering-pdf-documents-in-android-using-pdfrenderer-f6d4f730b18
- ↑ How to render PDF in Android (using Intent and/or App chooser): https://stackoverflow.com/questions/2883355/how-to-render-pdf-in-android?noredirect=1&lq=1
- ↑ Open PDF file from sdcard in Android programmatically: https://deepshikhapuri.wordpress.com/2017/04/24/open-pdf-file-from-sdcard-in-android-programmatically/
- ↑ How can I display a PDF document into a Webview?: https://stackoverflow.com/questions/2655972/how-can-i-display-a-pdf-document-into-a-webview (by loading the PDF from URL to local temporary PDF file)
- ↑ How to render PDF in Android: https://stackoverflow.com/questions/2883355/how-to-render-pdf-in-android (using Google Docs - PDF viewer)
- ↑ PDF Rendering in Android App — from raw/assets and internal storage: https://android.jlelse.eu/pdf-rendering-in-android-app-from-raw-assets-and-internal-storage-4d386950f35
- ↑ Android Beam - why you should care about this hidden gem: https://www.techradar.com/news/phone-and-communications/mobile-phones/android-beam-why-you-should-care-about-this-hidden-gem-1229479
- ↑ How to use Android Beam to send files and photos: https://www.androidauthority.com/how-to-use-android-beam-699961/
- ↑ How to Use Android Beam to Wirelessly Transfer Content Between Devices (on OS versions that support it): http://www.howtogeek.com/138307/how-to-use-android-beam-to-wirelessly-transfer-content-between-android-devices/
- ↑ Android Q won't have Android Beam (API/service has been deprecated and is now getting removed): https://www.techradar.com/news/android-q-wont-have-android-beam
- ↑ Android Beam’s replacement will be called Nearby Sharing: https://www.androidpolice.com/2020/01/13/google-fast-sharing-android-beam-replacement/
- ↑ Google working on ‘Fast Share,’ Android Beam replacement and AirDrop competitor: https://9to5google.com/2019/06/29/google-android-fast-share/
- ↑ How to Send Apps Between Android Devices: https://www.howtogeek.com/714458/how-to-send-apps-between-android-devices/
- ↑ AirDrop for Android - How to Use Android Nearby Share: https://www.howtogeek.com/684434/airdrop-for-android-how-to-use-android-nearby-share/
- ↑ Three Key Lessons When Migrating from RelativeLayout To ConstraintLayout: https://medium.com/comparethemarket/three-key-lessons-when-migrating-to-constraintlayout-dff38c31a47
- ↑ ConstraintLayout in the LIMELIGHT: https://android.jlelse.eu/constraintlayout-in-the-limelight-6c22b54d9726
- ↑ Learning ConstraintLayout — 🚀Live Templates for Rescue: http://android.jlelse.eu/learning-constraintlayout-live-templates-for-rescue-2142e6b7b3b2
- ↑ How to make a custom FrameLayout with a cover?: https://stackoverflow.com/questions/45581172/how-to-make-a-custom-framelayout-with-a-cover
- ↑ Enabling the `onClick` method in a custom FrameLayout view: https://stackoverflow.com/questions/54337370/enabling-the-onclick-method-in-a-custom-framelayout-view
- ↑ Android showcase designs UX and Android touch gestures: https://basitali11.medium.com/android-showcase-designs-ux-and-android-touch-gestures-2a6ec48de888 | SRC
- ↑ Android - How to find which tab is active in a tablayout?: https://stackoverflow.com/questions/33136807/android-how-to-find-which-tab-is-active-in-a-tablayout (getSelectedTabPosition provides a "zero-based" index of the currently selected Tab)
- ↑ Android ListView with icons/images ….and “sharks with lasers”: https://w2davids.wordpress.com/android-listview-with-iconsimages-and-sharks-with-lasers/
- ↑ Back to Top -- Android vs. iO: https://cyrilmottier.com/2013/01/09/back-to-top-android-vs-ios/
- ↑ Android docs -- Quick Settings - Tile: https://developer.android.com/reference/android/service/quicksettings/Tile
- ↑ Quick Tip -- Create a Custom Quick Settings Tile for Android: https://code.tutsplus.com/tutorials/create-a-custom-quick-settings-tile-for-android--cms-30318
- ↑ Full-Screen Intent Notifications — Android: https://medium.com/android-news/full-screen-intent-notifications-android-85ea2f5b5dc1
- ↑ Android -- Getting “Manifest merger failed” error after updating to a new version of gradle: https://stackoverflow.com/questions/43280871/android-getting-manifest-merger-failed-error-after-updating-to-a-new-version (add in a compilation block to the bottom of the Gradle build script)
- ↑ Supercharging your app development speed with custom file templates: https://android.jlelse.eu/supercharging-your-app-development-speed-with-custom-file-templates-3e6acb6db6c3
- ↑ android.useDeprecatedNdk=true is no longer supported: https://stackoverflow.com/questions/47633050/android-usedeprecatedndk-true-is-no-longer-supported
- ↑ Google -- Android dev docs - Linking to Google Play store: https://developer.android.com/distribute/marketing-tools/linking-to-google-play
- ↑ Google -- Android dev docs - App Link indexing: https://developer.android.com/studio/write/app-link-indexing
- ↑ How to directly open any given app dashboard home page inside Play Store on programmatically from an Android app: https://www.android-examples.com/open-specific-app-inside-google-play-store/
- ↑ How to link to Android Market app: https://stackoverflow.com/questions/3239478/how-to-link-to-android-market-app
- ↑ Android Deep Linking (from web to native app) guide: https://blog.branch.io/how-to-open-an-android-app-from-the-browser/
- ↑ Intro to Deep Linking on Android: https://medium.com/@muratcanbur/intro-to-deep-linking-on-android-1b9fe9e38abd
- ↑ The 15 best tips and tricks for Chrome on Android: https://www.androidpolice.com/2020/02/03/15-tips-tricks-chrome-android/
- ↑ Android Deep Linking (SLIDES): https://www.slideshare.net/ravalketan/android-deep-linking
- ↑ What is the "assetlinks.json" file for, when using Android deep links?: https://stackoverflow.com/questions/44209477/what-is-the-assetlinks-json-file-for-when-using-android-deep-links
- ↑ How to implement Android App Links with wildcard domains?: https://stackoverflow.com/questions/39616895/how-to-implement-android-app-links-with-wildcard-domains
- ↑ Android Studio - Add Android App Links: https://developer.android.com/studio/write/app-link-indexing
- ↑ Android docs -- Handling Android App Links: https://developer.android.com/training/app-links
- ↑ Verify Android App Links: https://developer.android.com/training/app-links/verify-site-associations
- ↑ Handling specific routes in Android M app links: https://stackoverflow.com/questions/35840262/handling-specific-routes-in-android-m-app-links
- ↑ Intent Filters and android:pathPattern: https://stackoverflow.com/questions/16490907/intent-filters-and-androidpathpattern
- ↑ App links intent filters in assetlinks.json not working on Android: https://stackoverflow.com/questions/35518429/app-links-intent-filters-in-assetlinks-json-not-working-on-android (look out for "Windows line-breaks", and keep in mind it would only work on Android 6.0, API 23 or later)
- ↑ How to setup /.well-known/assetlinks.json on Google AppEngine Web App (Java): https://stackoverflow.com/questions/40003252/how-to-setup-well-known-assetlinks-json-on-google-appengine-web-app-java
- ↑ Digital Assets Link InstantApp link to my website: https://stackoverflow.com/questions/44497929/digital-assets-link-link-to-my-website
- ↑ A Guide to Android Instant Apps: https://medium.com/swlh/https-medium-com-vinodsfingent-a-guide-to-android-instant-apps-c05d905c0098
- ↑ MozDev -- PWAs - Web App Manifest: https://developer.mozilla.org/en-US/docs/Web/Manifest
- ↑ Can I Use -- PWA & Manifest JSON - Add to home screen (A2HS): https://caniuse.com/web-app-manifest
- ↑ Android dev docs -- LiveData overview: https://developer.android.com/topic/libraries/architecture/livedata#java
- ↑ Understanding LiveData: https://medium.com/@elye.project/understanding-live-data-made-simple-a820fcd7b4d0 | SRC
- ↑ ViewModels -- A Simple Example: https://medium.com/androiddevelopers/viewmodels-a-simple-example-ed5ac416317e
- ↑ ViewModels and LiveData -- Patterns + AntiPatterns: https://medium.com/androiddevelopers/viewmodels-and-livedata-patterns-antipatterns-21efaef74a54
- ↑ LiveData overview: https://developer.android.com/topic/libraries/architecture/livedata
- ↑ Unit-testing LiveData and other common observability problems: https://medium.com/androiddevelopers/unit-testing-livedata-and-other-common-observability-problems-bb477262eb04
- ↑ Android "Activity Lifecycle" considered harmful: https://proandroiddev.com/android-activity-lifecycle-considered-harmful-98a5b00d287 (how MVVM & LiveData can avoid the most common pitfalls)
- ↑ MVVM DB ToDo List example: https://github.com/AnilDeshpande/DBDemoToDoList
- ↑ Android MVVM — Do’s and Don’ts: https://android.jlelse.eu/mvvm-dos-and-don-ts-5950d6f347d4
- ↑ Android ViewModels: Saving State across Process Death: https://android.jlelse.eu/android-viewmodels-saving-state-across-process-death-a3f447bf839a
- ↑ Healthier cleaner code in your Android projects - SCA with Sonarqube & JaCoCo: https://medium.com/xmglobal/healthier-cleaner-code-in-your-android-projects-e17f8e6829c3
- ↑ View Model Creation in Android — Android Architecture Components & Kotlin: https://proandroiddev.com/view-model-creation-in-android-android-architecture-components-kotlin-ce9f6b93a46b
- ↑ Flow and LiveData in MVVM architecture: https://medium.com/@lukaszburcon/flow-and-livedata-in-mvvm-architecture-6f8879b96ce0
- ↑ MVVM on Android with the Architecture Components & Koin: https://medium.com/swlh/mvvm-on-android-with-the-architecture-components-koin-f53c3c200363
- ↑ How to use a ViewModel with a custom view: https://medium.com/@polson55/how-to-use-a-viewmodel-with-a-custom-view-403420f7aab4
- ↑ ViewModel: One-off event antipatterns: https://medium.com/androiddevelopers/viewmodel-one-off-event-antipatterns-16a1da869b95
- ↑ Android docs -- ObservablesList: https://developer.android.com/reference/android/databinding/ObservableList
- ↑ Android docs -- Observable: https://developer.android.com/reference/java/util/Observable.html
- ↑ Observe LiveData from ViewModel in Fragment: https://medium.com/@begalesagar/observe-livedata-from-viewmodel-in-fragment-fd7d14f9f5fb
- ↑ Using Retrofit 2 for web-services in Android with a simple demo project: https://medium.com/cr8resume/make-your-hand-dirty-with-retrofit-2-a-type-safe-http-client-for-android-and-java-c546f88b3a51 | SRC
- ↑ Working with MVP and Retrofit 2 in Android with demo project: https://medium.com/cr8resume/working-with-mvp-and-retrofit-2-in-android-b771b8369ec0 | SRC
- ↑ How to maximize Android’s UI reusability — 5 common mistakes: https://proandroiddev.com/how-to-maximize-androids-ui-reusability-5-common-mistakes-cb2571216a9f
- ↑ The Contract of the Model-View-Intent architecture: https://proandroiddev.com/the-contract-of-the-model-view-intent-architecture-777f95706c1e | SRC - Kotlin | SRC - Java
- ↑ The State of Managing State with RxJava: https://jakewharton.com/the-state-of-managing-state-with-rxjava/
- ↑ Introduction of Model View Intent (MVI) for Android: https://www.21twelveinteractive.com/model-view-intent-mvi/
- ↑ Android MVI with Jetpack Compose: https://medium.com/swlh/android-mvi-with-jetpack-compose-b0890f5156ac
- ↑ Chrome WebStore: http://code.google.com/chrome/webstore/ (built on same infrastructure as GooglePlay store
- ↑ Use pre-launch reports to identify issues: https://support.google.com/googleplay/android-developer/answer/7002270?hl=en-GB
- ↑ Make your app shine on Google Play: https://medium.com/googleplaydev/make-your-app-shine-on-google-play-68fbb107a4c5
- ↑ How to install Adobe Flash Player on Android: http://www.androidpit.com/how-to-install-flash-player-on-android
- ↑ How to Install Adobe Flash Player on Android Devices: http://www.smartphonesupdates.com/how-to-install-adobe-flash-player-on-android-devices/
- ↑ Flash player version archive (including old Android versions): https://helpx.adobe.com/flash-player/kb/archived-flash-player-versions.html
- ↑ An Update on Flash Player and Android: http://blogs.adobe.com/flashplayer/2012/06/flash-player-and-android-update.html
- ↑ How to add Adobe Flash support to Android 5.0 Lollipop: http://bgr.com/2014/11/21/flash-on-android-how-to/
- ↑ How to manually install Adobe Flash Player on your Android device: http://www.androidcentral.com/how-manually-install-flash-your-android-device
- ↑ Now in Android -- Episode #3 - Android Studio 3.5: https://medium.com/androiddevelopers/now-in-android-episode-3-7965985c39c9
- ↑ The Best Features in Android Studio 4.0 Beta: https://android.jlelse.eu/best-features-in-android-studio-4-beta-12ca4d195788
- ↑ ADB Survival Guide for Android: https://android.jlelse.eu/adb-survival-guide-for-android-2cd22bad0a0f
- ↑ How to solve Specified AAPT2 executable does not exist on Android Studio 3.2: https://stackoverflow.com/questions/52545740/how-to-solve-specified-aapt2-executable-does-not-exist-on-android-studio-3-2
- ↑ Google Play -- Manage your store listings - Graphic assets, screenshots & video specs (for marketplace listing): https://support.google.com/googleplay/android-developer/answer/1078870
- ↑ A New Reference App for Multi-device Applications: https://android-developers.googleblog.com/2015/03/a-new-reference-app-for-multi-device.html | SRC
- ↑ New Android Code Samples: https://android-developers.googleblog.com/2015/04/new-android-code-samples.html | SRC
- ↑ Web App Manifest: https://developer.mozilla.org/en-US/docs/Web/Manifest
- ↑ Android Development - 15 Libraries You Should Be Using: https://auth0.com/blog/android-development-15-libraries-you-should-be-using/
- ↑ Android Studio shortcuts like Eclipse: https://stackoverflow.com/questions/27657025/android-studio-shortcuts-like-eclipse
- ↑ What is the shortcut to Auto import all in Android Studio?: https://stackoverflow.com/questions/16615038/what-is-the-shortcut-to-auto-import-all-in-android-studio
- ↑ How To Auto Import All Class In Android Studio: http://https://www.dev2qa.com/how-to-auto-import-all-class-in-android-studio/
- ↑ ShortCut for adding class field to existing constructor in AndroidStudio or IDEA: https://stackoverflow.com/questions/34692945/shortcut-for-adding-class-field-to-existing-constructor-in-androidstudio-or-idea (ALT+ENTER to auto-fix)
- ↑ Develop Android Apps Fast(er) and Easier (saves 30 min daily): https://medium.com/@gopikrish2000/android-apps-develop-fast-er-and-easier-saves-30-min-daily-9691f0c63573
- ↑ Android -- checkbox listener: https://stackoverflow.com/questions/8386832/android-checkbox-listener#8386876
- ↑ Protecting secrets in an Android project: https://proandroiddev.com/protecting-secrets-in-an-android-project-ff99eaf7b9ec
- ↑ Android applications security — part 1, reverse engineering and token storage problems: https://medium.com/skyrise/android-applications-security-part-1-2782d73771e0
- ↑ Android applications security — part 2, client-server communication: https://medium.com/skyrise/android-applications-security-part-2-588ffb9d83ab
- ↑ Android OWASP crackmes -- Write-up UnCrackable Level 3: https://enovella.github.io/android/reverse/2017/05/20/android-owasp-crackmes-level-3.html
- ↑ What is the preferable way to hide private information in Android Studio?: https://stackoverflow.com/questions/52642783/what-is-the-preferable-way-to-hide-private-information-in-android-studio
- ↑ Hiding API keys from your Android repository: https://medium.com/code-better/hiding-api-keys-from-your-android-repository-b23f5598b906
- ↑ Where to Store Android KeyStore File in CI/CD Cycle?: https://android.jlelse.eu/where-to-store-android-keystore-file-in-ci-cd-cycle-2365f4e02e57
- ↑ Keeping Your Android Project’s Secrets Secret: https://medium.com/@geocohn/keeping-your-android-projects-secrets-secret-393b8855765d
- ↑ Android Programming Cookbook: http://enos.itcollege.ee/~jpoial/allalaadimised/reading/Android-Programming-Cookbook.pdf
- ↑ Android Cookbook -- Ch.10 (Sample Chapter): http://ptgmedia.pearsoncmg.com/images/9780321897534/samplepages/0321897536.pdf
- ↑ Head First Android Development: https://www.vitalsource.com/products/head-first-android-development-dawn-griffiths-v9781491974018 | SRC
- ↑ Head First Android Development (2nd edition): http://shop.oreilly.com/product/0636920056966.do | SRC
- ↑ Android core APIs -- Free Samples! (and PRs)https://medium.com/androiddevelopers/free-samples-1db256ac8217
- ↑ Implement Caching In Android Using RxJava Operators: https://blog.mindorks.com/implement-caching-in-android-using-rxjava-operators | SRC
- ↑ Implement Search Using RxJava Operators: https://blog.mindorks.com/implement-search-using-rxjava-operators-c8882b64fe1d | SRC
- ↑ WoWoViewPager: https://github.com/Nightonke/WoWoViewPager (transition/animation helper lib)
- ↑ Refining an Onboarding Experience with MotionLayout: https://medium.com/ot-design/refining-an-onboarding-experience-with-motionlayout-4a5d73239f76
- ↑ Swipe right on Motion Layout: https://medium.com/bumble-tech/swipe-right-on-motion-layout-641c1452d6a5
- ↑ MotionLayout + ShapeOfView: https://proandroiddev.com/motionlayout-shapeofview-26a7ab10142f
- ↑ 5 Must-Have Android Libraries For Smooth App Development: https://android.jlelse.eu/5-must-have-android-libraries-for-smooth-app-development-a85ecbdd8a54
- ↑ How to import RecyclerView for Android L-preview: https://stackoverflow.com/questions/24440852/how-to-import-recyclerview-for-android-l-preview
- ↑ Using the RecyclerView: https://github.com/codepath/android_guides/wiki/Using-the-RecyclerView
- ↑ Android RecyclerView List Example: https://www.javatpoint.com/android-recyclerview-list-example
- ↑ RecyclerView in Android with example: https://www.geeksforgeeks.org/android-recyclerview/
- ↑ Why does java.lang.IllegalStateException: RecyclerView has no LayoutManager in Fragment happen when using new RecyclerView: https://stackoverflow.com/questions/27563853/java-lang-illegalstateexception-recyclerview-has-no-layoutmanager-in-fragment
- ↑ Getting Started With RecyclerView and CardView on Android: https://code.tutsplus.com/tutorials/getting-started-with-recyclerview-and-cardview-on-android--cms-23465
- ↑ How to resolve NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener; error: https://stackoverflow.com/questions/52537638/how-to-resolve-noclassdeffounderror-failed-resolution-of-landroid-view-viewon
- ↑ Optimizing Nested RecyclerView: https://proandroiddev.com/optimizing-nested-recyclerview-a9b7830a4ba7
- ↑ RecyclerView item optimizations: https://medium.com/@programmerr47/recyclerview-item-optimizations-cae1aed0c321
- ↑ Saving Scroll Positions of Nested RecyclerViews: https://android.jlelse.eu/storing-scroll-positions-of-nested-recyclerviews-9e9e8eb3196d
- ↑ Learning Android Development in 2019 - A Practical Guide: https://medium.com/mindorks/learning-android-development-in-2019-a-practical-guide-ddc71e008696
- ↑ Android developer Roadmap for 2019: https://android.jlelse.eu/android-developer-roadmap-for-2019-14eacb0d0a2
- ↑ Learning Android Development in 2018 (Comprehensive Beginner’s Edition): https://android.jlelse.eu/learning-android-development-in-2018-part-1-83a514f6a205
- ↑ Android Paging Library with multiple view types: https://proandroiddev.com/android-paging-library-with-multiple-view-type-68f85fe1222d
- ↑ Android paging Network + Database: https://proandroiddev.com/android-paging-library-database-network-error-events-18ecb66830fe
- ↑ A better way to set RecyclerView items margin: https://medium.com/@cesarmorigaki/a-better-way-to-set-recyclerview-items-margin-708ea9d3ac25
- ↑ Android CardView Sample Project (with RecyclerView): http://www.oded-tech-blog.com/android-cardview-sample-project-recyclerview/ | SRC
- ↑ Getting Started With RecyclerView and CardView on Android: https://code.tutsplus.com/tutorials/getting-started-with-recyclerview-and-cardview-on-android--cms-23465
- ↑ Best practices for Video Playback in Android: https://blog.viki.com/best-practices-for-video-playback-in-android-d7482d513f3d
- ↑ Florina Muntenescu -- Google Android Dev envangelist: https://github.com/florina-muntenescu?tab=repositories
- ↑ Material Design - Components catalog: https://www.material.io/components
- ↑ Material UI -- Motion system: https://material.io/design/motion/the-motion-system.html
- ↑ wikipedia: Samsung phones
- ↑ Samsung Android phones: https://www.gsmarena.com/samsung-phones-9.php
- ↑ wikipedia: List of LG mobile phones
- ↑ LG Android phones: https://www.gsmarena.com/lg-phones-20.php
- ↑ wikipedia: Comparison_of_HTC_devices#Android_devices
- ↑ HTC Android phones: https://www.gsmarena.com/htc-phones-45.php
- ↑ Best Android Phones for 2018: https://www.cnet.com/topics/phones/best-phones/android/
- ↑ Best Android devices released in 2018: https://www.pcmag.com/article2/0,2817,2483688,00.asp
- ↑ List of Samsung Phones To Get The Android Oreo 8.x Update: https://theleaker.com/samsung-android-8-0-oreo-update-phones-list/
- ↑ Complete List Of Android Devices To Get The ANDROID 4.4 Kitkat Update: http://www.techverse.net/phone-receiving-android-4-4-kitkat-update/
- ↑ Finding Android SDK on Mac and adding to PATH: https://stackoverflow.com/questions/34532063/finding-android-sdk-on-mac-and-adding-to-path (/Users/USERNAME/Library/Android/sdk)
- ↑ Building an Android App from the Command Line: https://www.hanshq.net/command-line-android.html
- ↑ How to make Android apps without IDE from command line: https://medium.com/@authmane512/how-to-build-an-apk-from-command-line-without-ide-7260e1e22676
- ↑ Building and Running from the Command Line: https://stuff.mit.edu/afs/sipb/project/android/docs/tools/building/building-cmdline.html (legacy Android versions)
- ↑ Building Android application (.apk) from the Command Line v2 using ANT: https://www.built.io/blog/building-android-application-apk-from-the-command-line-v2
- ↑ Build Android Studio app via command line: https://stackoverflow.com/questions/24398041/build-android-studio-app-via-command-line
- ↑ Building Android applications with Gradle - Tutorial: https://www.vogella.com/tutorials/AndroidBuild/article.html
- ↑ How to Sideload Apps on Android: https://www.howtogeek.com/313433/how-to-sideload-apps-on-android/
- ↑ Uncomfortable Questions About App Signing: https://commonsware.com/blog/2020/09/23/uncomfortable-questions-app-signing.html (soon to be required for new apps through move to AAB)
- ↑ Android Get Application Context From Anywhere Example: https://www.dev2qa.com/android-get-application-context-from-anywhere-example/
- ↑ Getting activity from context in android: https://stackoverflow.com/questions/9891360/getting-activity-from-context-in-android
- ↑ pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY) not giving corerct answer: https://stackoverflow.com/questions/19458342/pm-hassystemfeaturepackagemanager-feature-camera-any-not-giving-corerct-answer
- ↑ Responsive Web Made Easier with Chrome DevTools Device Mode: https://girliemac.com/blog/2014/07/28/devicemode/
- ↑ A Concise Guide to Remote Debugging on iOS, Android, and Windows Phone: https://developer.telerik.com/featured/a-concise-guide-to-remote-debugging-on-ios-android-and-windows-phone/
- ↑ Run Apps on a Hardware Device: https://developer.android.com/studio/run/device
- ↑ How to Enable USB Debugging in Android Phones: http://idroidhorizon.blogspot.ca/2014/06/How-to-Enable-USB-Debugging-in-Android.html
- ↑ Chrome DevTools for Mobile -- Screencast and Emulation: https://www.html5rocks.com/en/tutorials/developertools/mobile/
- ↑ What is the best android emulator for low spec PC ? : https://www.webmastersun.com/threads/9549-what-is-the-best-android-emulator-for-low-spec-pc
- ↑ BlueStacks -- Android Emulator https://www.bluestacks.com
- ↑ Andryoid - Android emulator: https://www.andyroid.net/
- ↑ How to find and turn on USB debugging mode on Nexus 4: https://stackoverflow.com/questions/16707137/how-to-find-and-turn-on-usb-debugging-mode-on-nexus-4
- ↑ Enabling USB Debugging on an Android Device: https://www.embarcadero.com/starthere/xe5/mobdevsetup/android/en/enabling_usb_debugging_on_an_android_device.html
- ↑ NVIDIA -- Android lifecycle for application developers - guidelines and tips: http://developer.download.nvidia.com/assets/mobile/files/AndroidLifecycleAppNote_v100.pdf (from chip manufacturer's perspective)
- ↑ Writing Your First Android App, in Assembly: https://urish.medium.com/writing-your-first-android-app-in-assembly-30e8e0f8c3fe
- ↑ Creating an Android Weather App using Java: https://www.androdocs.com/java/creating-an-android-weather-app-using-java.html
- ↑ Constraint layout the best layout ever!: https://android.jlelse.eu/constraints-layout-best-layout-ever-230175272c0f
- ↑ How to make ConstraintLayout work with percentage values?: https://stackoverflow.com/questions/37318228/how-to-make-constraintlayout-work-with-percentage-values
- ↑ Adding a menu to the toolbar in Android: https://suragch.medium.com/adding-a-menu-to-the-toolbar-in-android-60d096f9fb89
- ↑ How to change Menu SearchView Widget Icon Color In Android: https://android.jlelse.eu/how-to-change-menu-searchview-widget-icon-color-in-android-c9ff1043a41f
- ↑ Get the position of a spinner in Android: https://stackoverflow.com/questions/8597582/get-the-position-of-a-spinner-in-android
- ↑ Change text color of selected item in spinner: https://stackoverflow.com/questions/15379851/change-text-color-of-selected-item-in-spinner
- ↑ How to change Spinner text color in Android: https://inducesmile.com/android-programming/how-to-change-spinner-text-color-in-android/
- ↑ Make a button take 25% of a linearlayout: https://stackoverflow.com/questions/19075217/make-a-button-take-25-of-a-linearlayout
- ↑ Calling findViewById("thing") in Fragment (rather than Activity): https://stackoverflow.com/questions/6495898/findviewbyid-in-fragment (you should call via getView().findViewById("thing") instead of calling directly)
- ↑ How to Manage App Permissions on Android: https://www.howtogeek.com/230683/how-to-manage-app-permissions-on-android-6.0/
- ↑ Permissions on the fly with Dexter lib (as compared to requesting programmatically in Kotlin): https://medium.com/@tirgei/permissions-on-the-fly-with-dexter-android-permissions-7394f3bc1e88
- ↑ Seven Things You Don’t Have to Root Android to Do Anymore: https://www.howtogeek.com/120599/6-things-you-dont-have-to-root-android-to-do-anymore/
- ↑ Android SQLite Database with example: https://www.tutlane.com/tutorial/android/android-sqlite-database-with-examples
- ↑ Android SQLite ListView with example: https://www.tutlane.com/tutorial/android/android-sqlite-listview-with-examples
- ↑ Android Loading SQLite Data Into TableLayout: https://tranngocnhat.blogspot.com/2016/06/android-loading-sqlite-data-into.html
- ↑ Android Dynamically Add rows to Table Layout: https://technotzz.wordpress.com/2011/11/04/android-dynamically-add-rows-to-table-layout/
- ↑ Room Persistence Library With Pre-Populated Database: https://android.jlelse.eu/room-persistence-library-with-pre-populated-database-5f17ef103d3d
- ↑ Gradually Migrate to Room from SQLite: https://medium.com/android-news/gradually-migrate-to-room-the-missing-guide-133520c7260
- ↑ 7 Steps To Room: https://medium.com/androiddevelopers/7-steps-to-room-27a5fe5f99b2
- ↑ 7 Pro-tips for Room: https://medium.com/androiddevelopers/7-pro-tips-for-room-fbadea4bfbd1
- ↑ Room Flow: https://medium.com/androiddevelopers/room-flow-273acffe5b57
- ↑ Doing DB queries in Room with RxJava: https://medium.com/androiddevelopers/room-rxjava-acb0cd4f3757
- ↑ Navigation in Modular Applications with Deep Linking: https://blog.usejournal.com/navigation-in-modular-applications-with-deep-linking-6a599c11e487
- ↑ How to Stop Android Apps from Using Background Mobile Data: https://www.howtogeek.com/715337/how-to-stop-android-apps-from-using-background-mobile-data/
- ↑ Introducing WorkManager: https://medium.com/androiddevelopers/introducing-workmanager-2083bcfc4712
- ↑ Practical guide to Dagger 2: https://android.jlelse.eu/practical-guide-to-dagger-76398948a2ea
- ↑ Dagger 2 — Dependency Injection basics in Android: https://medium.com/agency04/dagger-2-dependency-injection-basics-in-android-be229d99a0a
- ↑ Dagger 2 on Android - The Simple Way: https://proandroiddev.com/dagger-2-on-android-the-simple-way-f706a2c597e9
- ↑ Using Dagger in a multi-module project: https://proandroiddev.com/using-dagger-in-a-multi-module-project-1e6af8f06ffc
- ↑ Android Inter-Module Navigation With Dagger: https://robinhood.engineering/android-inter-module-navigation-with-dagger-b808c4579067
- ↑ error -- resource android:attr/fontVariationSettings not found: https://icetutor.com/question/error-resource-androidattr-fontvariationsettings-not-found/
- ↑ Two floating action buttons next to each other: https://stackoverflow.com/questions/31205720/two-floating-action-buttons-next-to-each-other
- ↑ Floating Action Button (FAB) in Android with "multi-FAB" example: https://www.geeksforgeeks.org/floating-action-button-fab-in-android-with-example/
- ↑ How to create android:pathData?: https://stackoverflow.com/questions/36677768/how-to-create-androidpathdata
- ↑ Understanding VectorDrawable pathData commands in Android: https://medium.com/@ali.muzaffar/understanding-vectordrawable-pathdata-commands-in-android-d56a6054610e#.g4gbz1r5p
- ↑ List of available (OOTB Android platform) icons?: https://stackoverflow.com/questions/47181993/list-of-available-icons
- ↑ Fix common "AAPT: error: resource android:drawable/ic_search is private": https://stackoverflow.com/questions/61829397/aapt-error-resource-androiddrawable-ic-search-is-private (mostly caused by using "@android:drawable" instead of "@drawable" directly, or, forgetting to map in the icon via "mipmap --> New --> Vector Asset")
- ↑ Since the Android getFragmentManager() API is deprecated, is there any alternative?: https://stackoverflow.com/questions/51737667/since-the-android-getfragmentmanager-api-is-deprecated-is-there-any-alternati
- ↑ Using ViewPager to Create a Sliding Screen UI in Android: https://www.sitepoint.com/using-viewpager-to-create-a-sliding-screen-ui-in-android/ | SRC | DOCS
- ↑ How to communicate between Fragments and Activities in Kotlin: https://android.jlelse.eu/how-to-communicate-between-fragments-and-activities-dc91707e02fb
- ↑ Advocating Against Android Fragments: https://developer.squareup.com/blog/advocating-against-android-fragments/
- ↑ How to get a string back from AsyncTask?: https://stackoverflow.com/a/10972142
- ↑ 350% performance improvement in fetching data from the server, by using RxJava: https://android.jlelse.eu/replacing-tedious-progressbar-using-rxjava-and-pagedlistadapter-in-android-b60534c6f9dd
- ↑ Retrofit with RxJava to fetch data asyncronously: https://riptutorial.com/android/example/31945/retrofit-with-rxjava-to-fetch-data-asyncronously
- ↑ Loading entities from database and server API by using RxJava: https://proandroiddev.com/loading-entities-from-database-and-server-api-by-using-rxjava-e1b798b549b4
- ↑ First steps with RxJava and RxAndroid: https://www.vogella.com/tutorials/RxJava/article.html
- ↑ RxAndroid’s New Async API: https://www.zacsweers.dev/rxandroids-new-async-api/
- ↑ Android Studio AsyncTask Return Value to Caller: http://instinctcoder.com/android-studio-asynctask-return-value-to-caller/
- ↑ Return a value from AsyncTask in Android: https://stackoverflow.com/questions/9458258/return-a-value-from-asynctask-in-android/26820666#26820666
- ↑ AsyncTask is Deprecated, Now What?: https://www.techyourchance.com/asynctask-deprecated/
- ↑ Google is deprecating Android’s AsyncTask API in Android 11: https://www.xda-developers.com/asynctask-deprecate-android-11/
- ↑ Was AsyncTask Deprecated For No Reason?: https://www.techyourchance.com/asynctask-deprecated/
- ↑ Android Multithreading - Threads, UI, Garbage Collector, Memory Leaks and More: https://www.youtube.com/watch?v=UPq1LDxL5_w
- ↑ Android -- Alternatives to AsyncTask?: https://stackoverflow.com/questions/30416158/android-alternatives-to-asynctask
- ↑ Some great alternatives for AsyncTasks: https://medium.com/code-yoga/some-great-alternatives-for-asynctasks-e8113747673a
- ↑ Handling success data and error callback responses from a network for Android projects using Sandwich: https://proandroiddev.com/handling-success-data-and-error-callback-responses-from-a-network-for-android-projects-using-b53a26214cef | SRC - DisneyMotion | SRC - MarvelHeroes | SRC - TheMovies2 | SRC - Pokedex
- ↑ AsyncTaskLoader basic example (Android): https://stackoverflow.com/questions/20279216/asynctaskloader-basic-example-android
- ↑ Getting Started with JSOUP in Android (DuckDuckGo scraping example): https://princessdharmy.medium.com/getting-started-with-jsoup-in-android-594e89dc891f
- ↑ Implementing DuckDuckGo API in SUSI Android: https://blog.fossasia.org/implementing-duckduckgo-api-in-susi-android/
- ↑ How to Read JSON file from the Assets folder in Android?: https://www.11zon.com/zon/android/how-to-read-json-file-from-assets-folder-in-android.php
- ↑ How To Read String Value Array From strings.xml In Android: https://www.dev2qa.com/how-to-read-string-value-array-from-strings-xml-in-android/
- ↑ Android -- How do I get string from resources using its name?: https://stackoverflow.com/questions/7493287/android-how-do-i-get-string-from-resources-using-its-name
- ↑ Android getting value from selected radiobutton: http://https://stackoverflow.com/questions/18179124/android-getting-value-from-selected-radiobutton
- ↑ Mipmaps vs. drawable folders: https://stackoverflow.com/questions/28065267/mipmaps-vs-drawable-folders
- ↑ How to add icon image button in Android Studio: https://stackoverflow.com/questions/33450657/how-to-add-icon-image-button-in-android-studio
- ↑ Android Hello GridView Tutorial Will Not Display Images: https://stackoverflow.com/questions/6805541/android-hello-gridview-tutorial-will-not-display-images
- ↑ Android -- Bitmaps loaded from gallery are rotated in ImageView: https://stackoverflow.com/questions/3647993/android-bitmaps-loaded-from-gallery-are-rotated-in-imageview
- ↑ Modern User Storage on Android: https://medium.com/androiddevelopers/modern-user-storage-on-android-e9469e8624f9 (StorageAccessFramework & "Scoped Storage" APIs are coming to Android 11+)
- ↑ VLC adapts for Android TV to bring users’ personal videos to the big screen: https://developer.android.com/stories/apps/vlc-android-tv
- ↑ Android get image from gallery into ImageView: https://stackoverflow.com/questions/10473823/android-get-image-from-gallery-into-imageview
- ↑ How to load an image in ImageView from gallery?: https://stackoverflow.com/questions/13023788/how-to-load-an-image-in-image-view-from-gallery
- ↑ Custom Gallery For Android: https://android.jlelse.eu/custom-gallery-for-android-af2437b227da
- ↑ Creating A Photo Gallery In Android Studio With List Fragments: https://www.airpair.com/android/photo-gallery-android-studio-list-fragments
- ↑ "Gallery" widget tutorial with example app in Android Studio: https://abhiandroid.com/ui/gallery (legacy approach only works up until API v16)
- ↑ Create a Photo Gallery App for Android for Local Images: https://stackoverflow.com/questions/15196306/create-a-photo-gallery-app-for-android-for-local-images
- ↑ Add image to Media Gallery - Android: https://stackoverflow.com/questions/28243330/add-image-to-media-gallery-android
- ↑ Universal Android Music Player Sample: https://github.com/googlesamples/android-UniversalMusicPlayer (reference implementation of a Music Player in Android)
- ↑ Android Media Player example: https://www.javatpoint.com/playing-audio-in-android-example
- ↑ How to play audio in Android?: https://javapapers.com/android/how-to-play-audio-in-android/
- ↑ Android -- sample microphone without recording to get live amplitude/level?: https://stackoverflow.com/questions/4777060/android-sample-microphone-without-recording-to-get-live-amplitude-level
- ↑ Sensing Voice Amplitude with Android: http://www.doepiccoding.com/blog/?p=195
- ↑ Android Audio - Seek Bar: https://stackoverflow.com/questions/16141167/android-audio-seekbar
- ↑ MediaPlayer error (1, -1004) aka MEDIA_ERROR_IO trying to stream music on Samsung S3: https://stackoverflow.com/questions/16672568/mediaplayer-error-1-1004-aka-media-error-io-trying-to-stream-music-on-samsun
- ↑ Why does it take so long for Android's MediaPlayer to prepare some live streams for playback?: https://stackoverflow.com/questions/6582908/why-does-it-take-so-long-for-androids-mediaplayer-to-prepare-some-live-streams
- ↑ MediaPlayer.OnPreparedListener doesn't work: https://stackoverflow.com/questions/39594449/mediaplayer-onpreparedlistener-doesnt-work#39595041
- ↑ Audio Recording In ".wav" Format In Android Programming: http://www.edumobile.org/android/audio-recording-in-wav-format-in-android-programming/
- ↑ Android - Audio Capture: https://www.tutorialspoint.com/android/android_audio_capture.htm (basic example of working with Microphone to record Audio and save to device)
- ↑ How can I record a Video in my Android App?: https://stackoverflow.com/questions/1817742/how-can-i-record-a-video-in-my-android-app
- ↑ Android Canvas - Draw Happy Face!: http://hmkcode.com/android-draw-happy-face/
- ↑ Measure, Layout, Draw, Repeat - Custom Views and ViewGroups: https://academy.realm.io/posts/360andev-huyen-tue-dao-measure-layout-draw-repeat-custom-views-and-viewgroups-android/
- ↑ Android Canvas Example: https://examples.javacodegeeks.com/android/core/graphics/canvas-graphics/android-canvas-example/
- ↑ Draw in Canvas by finger, Android: https://stackoverflow.com/questions/16650419/draw-in-canvas-by-finger-android
- ↑ Android Shape Drawables tutorial: https://android.jlelse.eu/android-shape-drawables-tutorial-17fbece6fef5
- ↑ Drawing Shapes in Android: https://androidresearch.wordpress.com/2012/03/24/drawing-shapes-in-android/
- ↑ Android Canvas And Paint Common Drawing Function Example: https://www.dev2qa.com/android-canvas-and-paint-common-drawing-function-example/
- ↑ Drawable resources: https://developer.android.com/guide/topics/resources/drawable-resource.html
- ↑ Draw with a Canvas in Android: https://www.wideskills.com/android/android-graphics/draw-with-canvas-in-android
- ↑ Basic Painting with Views: https://guides.codepath.com/android/Basic-Painting-with-Views
- ↑ Calling JavaScript function from an Android Activity: https://stackoverflow.com/questions/15673509/calling-javascript-function-from-an-android-activity
- ↑ Android Calling JavaScript functions in WebView: https://stackoverflow.com/questions/4325639/android-calling-javascript-functions-in-webview
- ↑ Call Android methods from JavaScript: https://stackoverflow.com/questions/22895140/call-android-methods-from-javascript
- ↑ Android webview & localStorage: https://stackoverflow.com/questions/5899087/android-webview-localstorage
- ↑ Sample App — Android Unidirectional Data Flow: https://android.jlelse.eu/sample-app-android-unidirectional-data-flow-b9f8ad0fbca3
- ↑ Google I/O 2013 - The New Android SDK Build System: https://www.youtube.com/watch?v=LCJAgPkpmR0 (introduced move from Ant to Gradle)
- ↑ How to Add Libraries to Android Studio: https://www.youtube.com/watch?v=1MyBO9z7ojk
- ↑ How to Manage Gradle Dependencies in Android Project: https://android.jlelse.eu/how-to-manage-gradle-dependencies-in-android-project-132736ae3217
- ↑ How do I add a library project to Android Studio?: https://stackoverflow.com/questions/16588064/how-do-i-add-a-library-project-to-android-studio
- ↑ Android plugin for Gradle HTTP proxy settings: https://developer.android.com/studio/intro/studio-config?hl=tr#gradle-plugin
- ↑ Better dependency management in Android Studio 3.5 with Gradle buildSrcVersions: https://proandroiddev.com/better-dependency-management-in-android-studio-3-5-with-gradle-buildsrcversions-7cd67dbaa5d4
- ↑ Copying APK file in Android Gradle project: https://stackoverflow.com/questions/21434554/copying-apk-file-in-android-gradle-project
- ↑ How to get the attr reference in code?: https://stackoverflow.com/questions/9398610/how-to-get-the-attr-reference-in-code/9409391#9409391
- ↑ Gradle exclude R.java in Android Javadocs when internal classes depend on R.java: https://stackoverflow.com/questions/34427079/gradle-exclude-r-java-in-android-javadocs-when-internal-classes-depend-on-r-java
- ↑ Excluding BuildConfig.class and R.class from Android library jar in Maven: https://stackoverflow.com/questions/15127624/excluding-buildconfig-class-and-r-class-from-android-library-jar-in-maven
- ↑ How to create JavaDoc using Android Studio without R and BuildConfig?: https://stackoverflow.com/questions/29162820/how-to-create-javadoc-using-android-studio-without-r-and-buildconfig
- ↑ Webview Localhost Connection refused using 10.0.2.2 address: https://stackoverflow.com/questions/27613752/webview-localhost-connection-refused-using-10-0-2-2-address
- ↑ Android -- ConnectivityManager always returning null: https://stackoverflow.com/questions/9664757/android-connectivitymanager-always-returning-null (how to check Network state)
- ↑ How Google Makes Money from Android - Business Model Explained: https://www.kamilfranek.com/how-google-makes-money-from-android/
- ↑ How does Google make money from Android?: https://www.androidauthority.com/how-does-google-make-money-from-android-669008/
- ↑ How To Resolve Package R Does Not Exist Error In Android Studio: https://www.dev2qa.com/how-to-resolve-package-r-dose-not-exist-error-in-android-studio/
See Also
Linux | Java | Kotlin | Flutter | Mobile Phone | Tablet | Wearables | IoT | OS | OpenMoko | iOS | QR code | Image Recognition | Voice Recognition | Speech Recognition | Biometrics