2025/02 25

[빌드-개요] Android.bp 파일 형식

디자인적으로 Android.bp 파일은 간단합니다. 여기에는 조건문 또는 제어 흐름 구문이 포함되어 있지 않습니다. 모든 복잡성은 Go로 작성된 빌드 로직에 따라 처리됩니다. Android.bp 파일의 구문과 의미는 가능한 경우 Bazel BUILD 파일과 유사합니다.모듈Android.bp 파일의 모듈은 name: "value", 형식의 속성 모음이 뒤따르는 모듈 유형으로 시작하며, 형식은 다음과 같습니다.cc_binary { name: "gzip", srcs: ["src/test/minigzip.c"], shared_libs: ["libz"], stl: "none",}모든 모듈에는 name 속성이 있어야 하며 반복될 수 있는 네임스페이스 및 사전 빌드 모듈의 name 속성 값을 제..

Android OS/: : AOSP 2025.02.26

[빌드-개요] Make와 Soong 비교

다음은 Make 구성과 Soong 구성(Blueprint 또는 .bp) 파일에서 동일한 작업을 하는 Soong을 비교한 것입니다.Make 예LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := libxmlrpc++LOCAL_MODULE_HOST_OS := linuxLOCAL_RTTI_FLAG := -frttiLOCAL_CPPFLAGS := -Wall -Werror -fexceptionsLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/srcLOCAL_SRC_FILES := $(call \ all-cpp-files-under,src)include $(BUILD_SHARED_LIBRARY)Soong 예cc_libra..

Android OS/: : AOSP 2025.02.26

[빌드-개요] Soong 빌드 시스템이란?

Android 7.0 이전 버전에서는 GNU Make를 독점적으로 사용하여 빌드 규칙을 설명하고 실행했습니다. Make 빌드 시스템은 널리 지원되고 사용되지만, Android 규모에서는 느리고 오류가 발생하며 확장이 불가능하고 테스트하기 어려웠습니다. Soong 빌드 시스템은 Android 빌드에 필요한 유연성을 제공합니다.따라서 플랫폼 개발자는 가능한 한 빨리 Make에서 Soong으로 전환하는 것이 좋습니다. Google 그룹 android-building에 질문을 보내 지원을 받으세요.Soong이란 무엇인가요?Soong 빌드 시스템은 Make를 대체하기 위해 Android 7.0(Nougat)에 도입되었습니다. 이 시스템은 Kati GNU Make 클론 도구와 Ninja 빌드 시스템 구성요소를 활용..

Android OS/: : AOSP 2025.02.26

[소스 제어 도구 다운로드]

ndroid 코드로 작업하려면 Git(오픈소스 버전 제어 시스템)는 Repo(Google에서 만든 저장소 관리 도구로 Git 위에서 실행됨)가 모두 필요합니다. 검토하기 위해 변경사항을 업로드하는 등 진행할 수 있는 일반 작업에 관한 요약은 소스 제어 워크플로 페이지를 참고하세요.GitGit는 여러 저장소에 분배되는 대규모 프로젝트를 처리합니다. Android는 로컬 분기화, 커밋, 차이점 및 수정사항과 같은 로컬 작업에 Git를 사용합니다. Android 프로젝트를 설정하면서 직면하는 여러 어려움 중 하나는 취미 개발자 커뮤니티에서부터 대중 시장 소비자 기기를 제조하는 대형 OEM에 이르는 외부 커뮤니티를 지원하기 위한 가장 효과적인 방법을 결정하는 것이었습니다. Google은 Android 외의 자체..

Android OS/: : AOSP 2025.02.26

[특정 동기화 문제 해결] 403 또는 500 오류(프록시 문제)와 함께 명령어 실패

repo init 또는 repo sync 명령어는 403 오류나 500 오류와 함께 실패할 수 있습니다. 이러한 오류는 대부분 대규모 데이터 전송을 처리하는 데 어려움을 겪는 HTTP 프록시와 관련됩니다. 이러한 오류를 해결하는 특정 방법은 없지만 최신 Python 버전을 사용하고 repo sync -j1을 명시적으로 사용하면 도움이 될 수 있습니다. 출처 : 구글

Android OS/: : AOSP 2025.02.26

[동기화 문제 해결-네트워크] 부분 클론 사용

Git 버전 2.19 이상을 사용한다면 repo init를 실행할 때 --partial-clone을 지정하여 지연 시간이 짧은 네트워크 문제를 해결하세요.  $ repo init -u https://android.googlesource.com/platform/manifest -b main --partial-clone --clone-filter=blob:limit=10MRepo를 초기화하여 모든 항목을 다운로드하는 대신 이 명령어는 필요에 따라 Git 객체를 다운로드합니다.

Android OS/: : AOSP 2025.02.26

[동기화 문제 해결-네트워크] 로컬 미러를 사용하여 네트워크 지연 시간 방지

여러 클라이언트를 사용할 때는 전체 서버 콘텐츠의 로컬 미러를 만들어 네트워크에 액세스하지 않고도 해당 미러에서 클라이언트를 동기화할 수 있습니다. 다음 안내를 따라 ~/aosp-mirror/에 로컬 미러를 만들고 해당 미러에서 클라이언트를 동기화합니다.   1. 다음과 같이 미러를 만들고 동기화합니다. $ mkdir -p /usr/local/aosp/mirror$ cd /usr/local/aosp/mirror$ repo init -u https://android.googlesource.com/mirror/manifest --mirror    다음 명령어는 /user/local/aosp/mirror에 로컬 미러를 만들고 repo init 명령어와 함께 --mirror 플래그를 사용하여 미러를 초기화합니다..

Android OS/: : AOSP 2025.02.26

[동기화 문제 해결-네트워크] TCP/IP 설정을 조정하여 연결 문제 방지

드물긴 하지만 Linux 클라이언트에서는 객체를 수신하는 동안 다운로드 중에 멈추는 등 연결 문제가 발생할 수 있습니다. 이 문제를 개선하려면 TCP/IP 스택 설정을 조정하거나 비 병렬 연결을 사용하세요. TCP 설정을 수정하려면 루트 액세스 권한이 있어야 합니다. 설정을 수정하려면 다음 명령어를 실행하세요.$ sudo sysctl -w net.ipv4.tcp_window_scaling=0$ repo sync -j1 출처 : 구글

Android OS/: : AOSP 2025.02.26

[동기화 문제 해결-네트워크] 인증을 사용하여 할당량 배리어 방지

이 페이지에서는 repo sync 명령어와 관련된 문제를 해결하는 방법을 설명합니다.네트워크 문제 해결이 섹션에서는 동기화 실패를 야기할 수 있는 네트워크 문제를 해결하기 위해 여러 제안사항을 제공합니다.도움말: 오류 발생 후 재동기화를 시도하면 동기화 문제가 대부분 해결됩니다.인증을 사용하여 할당량 배리어 방지서버의 과도한 사용을 방지하기 위해 소스에 액세스하는 데 사용하는 각 IP 주소는 할당량과 연결됩니다.NAT 방화벽을 벗어나 소스 저장소에 액세스할 때 등 다른 사용자와 IP 주소를 공유할 때는 일반적인 패턴에 대해서 할당량이 트리거될 수 있습니다. 예를 들어 여러 사용자가 단기간 내에 동일한 IP 주소에서 새 클라이언트를 동기화하면 할당량이 트리거될 수 있습니다.할당량이 트리거되지 않도록 하려면..

Android OS/: : AOSP 2025.02.26