# Android Tips

## Android

- [AOSP](https://notes.tejpratapsingh.com/android-tips/aosp.md): Android Open Source Project
- [Clone AOSP repository](https://notes.tejpratapsingh.com/android-tips/aosp/clone-aosp-repository.md)
- [Directory Structure](https://notes.tejpratapsingh.com/android-tips/aosp/directory-structure.md)
- [Setup IDE](https://notes.tejpratapsingh.com/android-tips/aosp/setup-ide.md): Setup your choice of ide for entire AOSP development
- [Setup VSCode](https://notes.tejpratapsingh.com/android-tips/aosp/setup-ide/setup-vscode.md)
- [Build](https://notes.tejpratapsingh.com/android-tips/aosp/build.md): AOSP uses soong build which uses Android.bp for configuration
- [BluePrint for Application Project](https://notes.tejpratapsingh.com/android-tips/aosp/build/blueprint-for-application-project.md): How to configure Android.bp for an application
- [BluePrint for Android Library Project](https://notes.tejpratapsingh.com/android-tips/aosp/build/blueprint-for-android-library-project.md): How to configure Android.bp for an android library
- [Manifest](https://notes.tejpratapsingh.com/android-tips/aosp/manifest.md): Capabilities of AOSP development in App Manifest file.
- [sharedUserId](https://notes.tejpratapsingh.com/android-tips/aosp/manifest/shareduserid.md): android:sharedUserId="com.example.shared"
- [persistant](https://notes.tejpratapsingh.com/android-tips/aosp/manifest/persistant.md): android:persistent, makes app running at all times
- [Gradle](https://notes.tejpratapsingh.com/android-tips/gradle.md): Tips to create efficient gradle script
- [Create Custom Build Config Variables](https://notes.tejpratapsingh.com/android-tips/gradle/create-custom-build-config-variables.md): Add Custom fields to
- [Create Custom manifest Variables](https://notes.tejpratapsingh.com/android-tips/gradle/create-custom-manifest-variables.md)
- [Make app debugable](https://notes.tejpratapsingh.com/android-tips/gradle/make-app-debugable.md)
- [Android Process](https://notes.tejpratapsingh.com/android-tips/android-process.md)
- [Find a process by name](https://notes.tejpratapsingh.com/android-tips/android-process/find-a-process-by-name.md): find a process using ps and grep
- [Kill a process by Id](https://notes.tejpratapsingh.com/android-tips/android-process/kill-a-process-by-id.md): Kill a process in Android or Linux
- [Catch any exception in Android](https://notes.tejpratapsingh.com/android-tips/catch-any-exception-in-android.md): Implement custom exception logger (lust like CrashAnalytics)
- [Theming](https://notes.tejpratapsingh.com/android-tips/theming/theming.md): Ways to theme you android
- [RRO](https://notes.tejpratapsingh.com/android-tips/theming/theming/rro.md): Runtime Resource Overlay
- [RRO Internals](https://notes.tejpratapsingh.com/android-tips/theming/theming/rro/rro-internals.md): How RRO works internally
- [RRO classes in AOSP](https://notes.tejpratapsingh.com/android-tips/theming/theming/rro/rro-classes-in-aosp.md)
- [RRO Example](https://notes.tejpratapsingh.com/android-tips/theming/theming/rro/rro-example.md)
- [RRO Permission](https://notes.tejpratapsingh.com/android-tips/theming/theming/rro/rro-permission.md)
- [Fabricated RRO (FRRO)](https://notes.tejpratapsingh.com/android-tips/theming/theming/fabricated-rro-frro.md): Fabricated RRO is build on top traditional RRO system
- [FRRO Example](https://notes.tejpratapsingh.com/android-tips/theming/theming/fabricated-rro-frro/frro-example.md)
- [Permission](https://notes.tejpratapsingh.com/android-tips/theming/theming/fabricated-rro-frro/permission.md): Here are the permissions required for using Fabricated RRO
- [Context Hijack](https://notes.tejpratapsingh.com/android-tips/theming/theming/context-hijack.md): Use resources of other application
- [Basics](https://notes.tejpratapsingh.com/android-tips/lifecycle/basics.md): Basics of android development
- [Lifecycle](https://notes.tejpratapsingh.com/android-tips/lifecycle/basics/lifecycle.md): Lifecycle of diffetent components in Android
- [Activity](https://notes.tejpratapsingh.com/android-tips/lifecycle/basics/lifecycle/activity.md): Activity lifecycle with saved instance state
- [Fragment](https://notes.tejpratapsingh.com/android-tips/lifecycle/basics/lifecycle/fragment.md): Fragment Lifecycle
- [Fragment add](https://notes.tejpratapsingh.com/android-tips/lifecycle/basics/lifecycle/fragment/fragment-add.md): Fragment Manager add() lifecycle
- [Lifecycle Aware Custom Class](https://notes.tejpratapsingh.com/android-tips/lifecycle/lifecycle-aware-custom-class.md): A custom business class that can be lifecycle aware, just like ViewModel
- [Interview Questions](https://notes.tejpratapsingh.com/android-tips/interview/interview-questions.md)
- [Architecture Pattern](https://notes.tejpratapsingh.com/android-tips/interview/architecture-pattern.md)
- [MVC Architecture pattern](https://notes.tejpratapsingh.com/android-tips/interview/architecture-pattern/mvc-architecture-pattern.md)
- [MVP Architecture Pattern](https://notes.tejpratapsingh.com/android-tips/interview/architecture-pattern/mvp-architecture-pattern.md)
- [MVVM Architecture Pattern](https://notes.tejpratapsingh.com/android-tips/interview/architecture-pattern/mvvm-architecture-pattern.md)
- [Design Patterns](https://notes.tejpratapsingh.com/android-tips/interview/design-patterns.md)
- [General Kotlin and Android Dev](https://notes.tejpratapsingh.com/android-tips/interview/general-kotlin-and-android-dev.md)
- [Interview Prep 1](https://notes.tejpratapsingh.com/android-tips/interview/general-kotlin-and-android-dev/interview-prep-1.md)
- [Interview Prep 2](https://notes.tejpratapsingh.com/android-tips/interview/general-kotlin-and-android-dev/interview-prep-2.md)
- [AOSP](https://notes.tejpratapsingh.com/android-tips/interview/aosp.md)
- [Interview AOSP 1](https://notes.tejpratapsingh.com/android-tips/interview/aosp/interview-aosp-1.md)
- [Interview AOSP 2](https://notes.tejpratapsingh.com/android-tips/interview/aosp/interview-aosp-2.md)
- [Compose](https://notes.tejpratapsingh.com/android-tips/interview/compose.md)
- [Compose Part 1](https://notes.tejpratapsingh.com/android-tips/interview/compose/compose-part-1.md)
- [Compose Part 2](https://notes.tejpratapsingh.com/android-tips/interview/compose/compose-part-2.md)
- [Compose Part 3](https://notes.tejpratapsingh.com/android-tips/interview/compose/compose-part-3.md)
- [Compose Part 4](https://notes.tejpratapsingh.com/android-tips/interview/compose/compose-part-4.md)
- [Compose Part 5](https://notes.tejpratapsingh.com/android-tips/interview/compose/compose-part-5.md)
- [Compose Part 6](https://notes.tejpratapsingh.com/android-tips/interview/compose/compose-part-6.md)
- [Simple AIDL Communication](https://notes.tejpratapsingh.com/android-tips/aidl/simple-aidl-communication.md): AIDL is Android's way of achieving IPC.
- [Creating an AIDL file](https://notes.tejpratapsingh.com/android-tips/aidl/simple-aidl-communication/creating-an-aidl-file.md): an .aidl file is a barebone description of set of API's server exposes
- [Create an AIDL server](https://notes.tejpratapsingh.com/android-tips/aidl/simple-aidl-communication/create-an-aidl-server.md): AIDL server app exposes an service.
- [Create AIDL client](https://notes.tejpratapsingh.com/android-tips/aidl/simple-aidl-communication/create-aidl-client.md): An AIDL client connects to a exposed AIDL Service via Binders
- [Limitations](https://notes.tejpratapsingh.com/android-tips/aidl/simple-aidl-communication/limitations.md)
- [AIDL with callback](https://notes.tejpratapsingh.com/android-tips/aidl/aidl-with-callback.md): An AILD will callback methods
- [Create AILD interfaces](https://notes.tejpratapsingh.com/android-tips/aidl/aidl-with-callback/create-aild-interfaces.md): Main interface as well as its callback
- [Create an AIDL server](https://notes.tejpratapsingh.com/android-tips/aidl/aidl-with-callback/create-an-aidl-server.md): Server which will expose a service
- [Create AIDL client](https://notes.tejpratapsingh.com/android-tips/aidl/aidl-with-callback/create-aidl-client.md)
