Stay organized with collections
Save and categorize content based on your preferences.
AI-ML learning pathway
This learning pathway is designed to provide Android developers with a comprehensive overview of the AI technologies available for their apps, providing a starting point for exploring and integrating AI features.
Go back
check_circle
Introduction to AI-ML on Android
subject
Article
Understand the landscape of artificial intelligence and machine learning (AI-ML) capabilities available for Android apps.
The Android AI Sample Catalog provides access to individual, self-contained examples that demonstrate various generative AI capabilities. Explore the project to get an idea of the possibilities for AI on Android.
Run generative AI on device with ML Kit's GenAI APIs
subject
Article
Integrate powerful generative AI features directly into your app for offline use and enhanced privacy. ML Kit's GenAI APIs harness the power of Gemini Nano to help your apps perform tasks such as summarization, proofreading, rewriting, and image description.
Learn about how ML Kit can help you implement common ML features quickly without deep ML expertise. Explore ML Kit's ready-to-use, on-device APIs (Vision and Natural Language) for tasks like text recognition, face detection, barcode scanning, image labeling, object detection, pose detection, smart reply, translation, etc.
Imagen 3 is an image generation model. It can be used to generate custom avatars for user profiles or to integrate personalized visual assets into existing screen flows to increase user engagement.
Codelab: Add Gemini capabilities to your Android app
emoji_objects
Codelab
The Gemini API provides access to generative AI models, enabling new application experiences. This codelab demonstrates adding summarization to the JetNews sample app.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["\u003cp\u003eML Kit is a free mobile SDK that brings Google's machine learning expertise to Android and iOS apps through easy-to-use Vision and Natural Language APIs.\u003c/p\u003e\n"],["\u003cp\u003eML Kit's APIs run on-device, enabling real-time processing and offline functionality, but require Android API level 21 or higher.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can utilize pre-built APIs for tasks like text recognition, image labeling, and language identification, or integrate custom TensorFlow Lite models.\u003c/p\u003e\n"],["\u003cp\u003eGoogle provides extensive resources including sample apps, codelabs, and documentation to help developers get started with ML Kit.\u003c/p\u003e\n"],["\u003cp\u003eWhile most of ML Kit is generally available, certain features like Pose Detection and Text Recognition v2 are currently in beta.\u003c/p\u003e\n"]]],[],null,["# Overview of the ML Kit GenAI APIs\n\n| This API is offered in beta, and is not subject to any SLA or deprecation policy. Changes may be made to this API that break backward compatibility.\n\nML Kit's GenAI APIs harness the power of [Gemini Nano](https://developer.android.com/ai/gemini-nano/) to help your apps\nperform tasks. These APIs provide out-of-the-box quality for popular use cases\nthrough a high-level interface. The ML Kit GenAI APIs are built on top of\n[AICore](https://android-developers.googleblog.com/2023/12/a-new-foundation-for-ai-on-android.html), an Android system service that enables on-device execution of GenAI\nfoundation models to facilitate features such as enhanced app functionality and\nimproved user privacy by processing data locally.\n\nThe ML Kit GenAI APIs support the following features:\n\n- [**Summarization**](/ml-kit/genai/summarization/android): Summarize articles or chat conversations as a bulleted list.\n- [**Proofreading**](/ml-kit/genai/proofreading/android): Polish short content by refining grammar and fixing spelling errors.\n- [**Rewriting**](/ml-kit/genai/rewriting/android): Rewrite short messages in different tones or styles.\n- [**Image description**](/ml-kit/genai/image-description/android): Generate a short description of a given image.\n\nBenefits of GenAI APIs\n----------------------\n\nSimilar to other existing ML Kit features, GenAI APIs run entirely on-device and\nthus provide the following benefits:\n\n- Input, inference, and output data is processed locally\n- Functionality remains the same without reliable internet connection\n- No additional server cost incurred for each API call\n\nIn addition, since GenAI APIs are built on top of AICore and powered by Gemini\nNano, every app is able to use the shared Gemini Nano model that is on the\ndevice. This avoids the need to have to wait for a model to be downloaded if it\nalready exists on a device, and in turn conserves storage space. Learn [more\nabout how AICore isolates requests to protect privacy](https://android-developers.googleblog.com/2024/10/introduction-to-privacy-and-safety-gemini-nano.html).\n\nStreaming versus non-streaming\n------------------------------\n\nML Kit GenAI APIs offer both streaming and non-streaming options for receiving\nresults. The streaming API delivers responses incrementally as they are\ngenerated, providing a continuous flow of data. In contrast, the non-streaming\nAPI waits until the entire response is complete before returning it as a single\nblock.\n\nChoose the streaming API for lengthy responses, as it allows for quicker initial\nfeedback. The non-streaming API is more suitable for short responses or when\nprocessing results in batches.\n\nDevice support\n--------------\n\nThe ML Kit GenAI APIs are available on the following devices, with\nplans to expand support to additional devices:\n\n- Google: Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL, Pixel 10 Pro Fold, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold\n- Honor: Honor 400 Pro, Magic 6 Pro, Magic 6 RSR, Magic 7, Magic 7 Pro, Magic V3\n- iQOO: iQOO 13\n- Motorola: Razr 60 Ultra\n- OnePlus: OnePlus 13, OnePlus 13s\n- OPPO: Find N5, Find X8, Find X8 Pro\n- POCO: POCO F7 Ultra\n- realme: realme GT 7 Pro\n- Samsung: Galaxy S25, Galaxy S25+, Galaxy S25 Ultra\n- vivo: vivo X200, vivo X200 Pro, vivo X Fold3 Pro, vivo X Fold5\n- Xiaomi: Xiaomi 15 Ultra, Xiaomi 15\n\nAvailability of specific language support may vary depending on the particular\ndevice's configuration and the models that have been downloaded to the device.\n\nQuota per application\n---------------------\n\nAICore enforces an inference quota per app. This means that making too many\nGenAI API requests in a short period will result in an `ErrorCode.BUSY`\nresponse. When receiving such an error, consider using exponential backoff to\nretry the request.\n\nBackground usage\n----------------\n\nGenAI API inference is permitted only when the app is the top foreground\napplication. Using the API when the app is not in the foreground, including\nusing a foreground service, will result in an `ErrorCode.BUSY` response due to\nthe current lack of background usage quota.\n\nSample code\n-----------\n\nTo get this code, check out the following samples:\n\n- [ML Kit GenAI Samples](https://github.com/googlesamples/mlkit/tree/master/android/genai)\n- [Android AI Catalog Sample](https://github.com/android/ai-samples/tree/main/ai-catalog)"]]