AndroLLM: Android용 온디바이스 AI 플랫폼
요약
AndroLLM은 Android 환경에서 온디바이스 AI 기능을 구현한 프로덕션급 플랫폼입니다. LiteRT-LM 런타임과 `.litertlm` 모델을 사용하여 클라우드 의존성 없이 로컬 LLM 추론, GPU 가속, 영구 메모리 기반 대화 기억 등을 지원합니다. 이를 통해 완전 오프라인의 음성 비서 및 AI 에이전트 기능을 제공합니다.
핵심 포인트
- 클라우드 연결 없이 기기에서 직접 LLM을 실행하는 온디바이스 플랫폼입니다.
- LiteRT-LM 런타임과 OpenCL GPU 디리게이트를 통한 하드웨어 가속 추론을 지원합니다.
- KV-cache 영구 저장 및 통합 LiteLLM 프록시로 다중 턴 대화 기억이 가능합니다.
- 웨이크 워드부터 LLM, TTS까지 완전 오프라인 음성 상호작용 파이프라인을 구현했습니다.
Android에서 로컬 .litertlm 모델 추론, Google의 LiteRT-LM 런타임, CPU 및 GPU 가속, 클라우드 제공업체 통합, 영구 메모리, 핸즈프리 음성 상호작용을 하나의 통일된 애플리케이션으로 구현하는 프로덕션급 AI 플랫폼입니다.
강력한 언어 모델을 기기에서 직접 실행하세요.
클라우드 의존성 제로. 사용자가 원하지 않는 한 데이터는 휴대폰을 벗어나지 않습니다.
주요 기능 ·
AI 에이전트 ·
아키텍처 ·
시작하기 ·
음성 ·
클라우드 ·
메모리 ·
문서 ·
기여하기
introduction.mp4
YouTube에서 시청하거나
대부분의 모바일 AI 앱은 모든 것을 클라우드를 통해 라우팅하거나 가벼운 데모 형태로 배포됩니다. AndroLLM은 완전하고 프로덕션 품질의 제품입니다:
| 일반적인 모바일 AI 앱 | AndroLLM | |
|---|---|---|
| 로컬 LLMs | 없음 또는 제한된 실험 | LiteRT-LM 런타임 + .litertlm 컨테이너 |
| GPU 가속 | 거의 사용 불가 | 자동 CPU 폴백을 갖춘 OpenCL GPU 디리게이트 |
| 다중 턴 채팅 | 없음 또는 매 턴 재채우기 필요 | KV-cache 영구 저장, diff 기반 연속 처리 |
| 클라우드 제공업체 | 독점 백엔드 하나 | 모든 LiteLLM 호환 엔드포인트 |
| 영구 메모리 | 없음 | 벡터 임베딩 + 하이브리드 검색 |
| 음성 비서 | 클라우드 의존적 | 완전 오프라인: 웨이크 워드 → ASR → LLM → TTS |
| 사용자 데이터 | 제공업체 서버로 전송 | 기본적으로 기기에 유지 |
|
Run
|
지원 기기에서 OpenCL 기반 LiteRT GPU delegate를 통해 하드웨어 가속 추론을 수행하며, CPU (XNNPACK)는 항상 사용 가능합니다.
|
|
통합된 LiteLLM 프록시 레이어를 통해 모든 OpenAI 호환 API에 연결할 수 있습니다.
|
대화 간 사실 기억 — 로컬 또는 클라우드 임베딩을 통해 지원합니다.
|
|
별도의 장치 없이 상호작용이 가능합니다.
JUnit 4 · mockk · Turbine · Espresso | 19개 모듈에 걸친 51개의 테스트 클래스 |
코드 품질 (Code Quality) | Spotless · Detekt | 포맷팅 및 정적 분석 |
| 요구사항 (Requirement) | 최소 (Minimum) | 권장 (Recommended) |
|---|---|---|
| Android Studio | Hedgehog (2023.1.1) | 최신 안정 버전 (Latest stable) |
| ... |
# 레포지토리 클론하기
git clone https://github.com/ShadowSafin/AndroLLM.git
cd AndroLLM
...
📖 전체 빌드 가이드 · 개발 워크플로우 (Full Building Guide · Development Workflow)
arm64-v8a 장치에 APK 설치하기 (RAM 4GB 이상 권장) Google 또는 GitHub로 로그인하기 (선택 사항 — 게스트 모드로도 완벽하게 작동) 카탈로그(Catalog) 탭에서 모델 둘러보기 — 기기 RAM별 필터링 모델 다운로드 및 로드하기 (Qwen3-0.6B mixed int4, 약 475MB가 좋은 시작점입니다) 채팅 시작하기 — 메시지가 실시간으로 스트리밍되며 마크다운(markdown) 렌더링이 지원됩니다 설정(Settings) → 음성 비서(Voice Assistant)에서 음성 활성화하고 "Hey Andro"라고 말하기 에이전트 잠금 해제하기 — 설정(Settings) → 자동화(Automation)에서 도구 호출(Tool Calling)을 활성화하고 다단계 요청을 시도해 보세요.
인터넷 연결 불필요한 완전한 오프라인 음성 파이프라인:
[마이크 @ 16kHz]
│
▼
...
지원되는 음성 명령어: 음소거(mute), 음소거 해제(unmute), 말하기 중지(stop speaking), 새 채팅 시작(new chat), 설정 열기(open settings), 모델 열기(open models), 테마 전환(switch theme), 대화 삭제(delete conversation), 채팅 요약(summarize chat), 오프라인 모드 및 음성 활성화/비활성화.
구두 확인 (Spoken confirmations) — 고위험 작업의 경우 비서가 소리 내어 질문하고 예/아니오를 듣습니다("엄마에게 SMS 보내까요?") 다단계 구두 작업 (Multi-step spoken tasks) — 음성으로 실행되는 워크플로우는 채팅과 동일한 도구(tool) 워크플로우를 사용합니다. 스마트 TTS (Smart TTS) — LLM 출력은 발화 전에 정규화됩니다: 숫자, 날짜, 통화 단위, 단위, 수학 공식, 이모지, URL, 전화번호 및 어휘 목록 외 단어(
“오늘 날씨를 확인하고 비가 오면 엄마에게 문자 보내줘”
“GitHub에서 LiteLLM을 검색하고 최신 릴리스 내용을 요약해줘”
“블루투스를 켜고, 이어버드를 연결한 다음, 운동 플레이리스트를 재생해줘”
Your request
│
▼
...
| 기능 (Capability) | 주요 특징 (Highlights) |
|---|---|
| 도구 카탈로그 (Tool catalog) | 날씨, 검색, SMS/통화/이메일(확인됨), 캘린더, 알람, 리마인더, 클립보드, 메모, 파일, 계산기, 단위 및 통화 변환기, 번역, GitHub, 미디어, PDF/Markdown 내보내기, QR 등 — 전체 카탈로그 |
| 워크플로우 엔진 (Workflow engine) | 다단계 계획→실행→재계획(Multi-round plan→execute→re-plan), variable_set /variable_get을 통한 IF/ELSE 및 루프, 실시간 기기 컨텍스트(배터리, 시간, 클립보드, 앱)가 매 라운드 주입 — 상세 내용 |
| 확인 절차 (Confirmations) | 위험도가 높은 작업은 먼저 질문함 — 채팅 카드와 음성 질문; 모드: 고위험(High-risk) / 항상(Always) / 절대 안 함(Never) — 상세 내용 |
| MCP 서버 (MCP servers) | 모든 MCP(Streamable HTTP) 서버에서 도구를 가져올 수 있으며, 이는 일급 mcp_<서버>_<도구> 기능이 됨 — 상세 내용 |
| UI 자동화 (UI automation) | 접근성 서비스(accessibility service)를 통해 모든 앱 구동: 탭, 타이핑, 스크롤, 스와이프, 핀치, 다단계 작업 — 상세 내용 |
| 투명성 (Transparency) | 모든 호출은 추적 기록됨(Developer → Tool Debug); 도구는 절대 조용히 실행되지 않음; 일시적 실패 시 재시도-1회 수행 |
설정(Settings) → 클라우드 제공업체(Cloud Providers)에서 LiteLLM과 호환되는 모든 엔드포인트를 추가하세요:
| 제공업체 (Provider) | 상태 (Status) | 참고 사항 (Notes) |
|---|---|---|
| Google Gemini | ✅ 지원됨 (Supported) | LiteLLM 프록시를 통해 |
| ... | ||
| API 키는 Android Keystore의 AES-256/GCM으로 암호화되며 — 공유 환경 설정(shared preferences)이나 평문 저장소에 절대 접근하지 않습니다. |
로컬 및 클라우드 모델을 위한 단일 공유 메모리 레이어 — 로컬에 저장되어 모든 향후 컨텍스트에 주입됩니다:
Conversation exchange (any model: local LiteRT or any cloud provider)
│
├──▶ 사실 및 선호도 추출 (write policy: persist / update / ignore)
...
오프라인에서 완벽하게 작동합니다. 임베딩이 사용 불가능할 경우 키워드/최신순 정렬로 폴백(fallback)됩니다. 수정 사항은 기존 사실을 덮어쓰기만 할 뿐 중복되지 않으며, 검색 실패 시 컨텍스트가 빈 상태로 떨어지므로 채팅이 끊기는 일이 없습니다. 작은 규모의 클라우드 모델은 압축된 블록을 받습니다.
📖 메모리 아키텍처 · 메모리 빠른 가이드
형식: .litertlm
(LiteRT-LM 엔진 파일 형식) — 주력이며 유일하게 실행 가능한 로컬 형식입니다. 카탈로그에는 Hugging Face와 ModelScope의 litert-community 레포지토리에서 Qwen, Gemma, DeepSeek 계열의 7가지 엄선된 모델(아키텍처: gemma3, gemma4, gemma-embedding, qwen2, qwen3)가 포함되어 있습니다.
| 모델 | 양자화 (Quantization) | 크기 (Size) | 사용 사례 (Use Case) |
|---|---|---|---|
| Qwen3-0.6B Mixed Int4 | Mixed int4 | ~475 MB | 권장 일일 구동 모델 · 2–4 GB RAM |
| ... | |||
| Aspect | 구현 (Implementation) | ||
| --- | --- | ||
| 로컬 추론 (Local inference) | 온디바이스에서 완전히 실행되며, 네트워크 전송이 없습니다. | ||
| API 키 저장 (API key storage) | Android Keystore에 AES-256/GCM으로 암호화됩니다. | ||
| 데이터베이스 (Database) | 앱 비공개 샌드박스 내 Room (/data/data/io.androllm.app/ ) | ||
| 네트워크 (Network) | HTTPS 전용; cleartext는 비활성화됩니다 (usesCleartextTraffic=false ). | ||
| 권한 (Permissions) | 최소한의 세트; 지연 로딩(lazy)으로 요청됩니다 (실행 시점 아님). | ||
| 음성 오디오 (Voice audio) | 온디바이스에서 완전히 처리되며, 서버 전송이 없습니다. | ||
| 분석 (Analytics) | 없음. 텔레메트리나 충돌 보고 서비스가 전혀 없습니다. | ||
| 게스트 모드 (Guest mode) | 인증 없이 모든 기능이 작동합니다. |
자세한 내용은 PRIVACY.md와 SECURITY.md를 참조하십시오.
| 문서 | 설명 |
|---|---|
| ARCHITECTURE.md | 다이어그램과 함께 전체 시스템 아키텍처 |
| ... |
documentation/
├── getting-started/first-run.md # 설치 및 첫 사용 설정
├── ai/ # AI 엔진 내부 구조
...
세 가지 계층으로 구성된 34개의 Gradle 모듈:
AndroLLM/
├── app/ # 진입점, 내비게이션 호스트, 인증
├── core/ # 17개의 공유 라이브러리 모듈
...
기능 모듈은 서로가 아닌 core:* 모듈에만 의존합니다.
기능 모듈은 서로가 아닌 core:* 모듈에만 의존합니다.
| Status | Feature |
|---|---|
| ✅ | LiteRT-LM 0.16.0 runtime — 순수 Kotlin, 네이티브 코드 없음 |
| ... | |
| 전체 목록은 ROADMAP.md를 참조하세요. |
모든 종류의 기여(버그 보고서, 문서 수정, 새로운 기능)를 환영합니다.
본 프로젝트는 Apache License 2.0에 따라 라이선스가 부여되었습니다. 자세한 내용은 LICENSE를 참고하십시오. 서드파티 컴포넌트 라이선스는 LICENSES.md에 나열되어 있습니다.
- LiteRT-LM — 온디바이스 LLM 추론 런타임 (Google AI Edge)
- LiteRT — 온디바이스 ML 런타임 (임베딩용 CompiledModel API)
- sherpa-onnx — 오프라인 음성 처리
- Jetpack Compose — 현대적인 Android UI
- Material 3 — 디자인 시스템
- Firebase Auth — 인증
- LiteLLM — 클라우드 제공업체 추상화
- Android Keystore — 안전한 키 저장소
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub ML Hardware의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기