Android Go가 구형 Android 휴대 전화에서 Android 8.1 Oreo를 실행하는 방법

Android Go는 Android 8.1 Oreo를 기반으로하는 Google의 제거 된 Android 버전이며, RAM이 1GB 이하인 저가형 기기에 최적화 된 Android 버전을 목표로합니다. 지난 5 월 Google I / O 개발자 컨퍼런스에서 발표되었으며, 그해 12 월 말에 더 자세한 내용이 공개되었습니다. 개발 도상국의 사람들이 인터넷에 액세스하고 앱을 사용하기 위해 스마트 폰을 계속 사용할 수 있도록 차세대 보급형 장치를 위해 만들어 졌다고합니다.

Go는 일반적인 Android Oreo 설치보다 스토리지 공간을 50 % 적게 차지하는 등 다양한 성능 최적화 및 개선 기능을 제공합니다. ART (Android Runtime) 및 커널 최적화 덕분에 Android Go를 실행하는 기기는 평균적으로 동일한 기기의 일반 Android Oreo 설치보다 15 % 더 빠르게 실행됩니다. 이러한 최적화는 Google에서 만든 여러 가지 특수한 빌드 구성을 통해 이루어지며 나중에 설명하겠습니다.

또한 Android Go는 Files Go, YouTube Go 및 Google Maps Go와 같은 특수한“Go”응용 프로그램의 이점을 제공합니다. 이들은 Google에서 만든 경량 버전의 응용 프로그램으로, 보다 효율적으로 실행해야하는 요구 사항이 줄었습니다. 즉, Android Go 기기 사용자는 일반 Android Oreo 사용자가 할 수있는 것과 동일한 혜택을 대부분 누릴 수 있으며 플래그십이나 약간 더 비싼 예산 기기에 많은 비용을 들이지 않고도 Google 애플리케이션을 활용할 수 있습니다.

구글이 시장을 확대하는 것입니다. 그러나 Android Go가 대부분 빌드 구성과 최적화 된 Google 앱 제품군으로 구성된 경우 개발자가 자신의 Android Go 빌드를 만들 수 있습니까? 한마디로 그렇습니다 .

몇몇 LineageOS 개발자는 이미 Android Go 최적화 사용자 정의 ROM을 구축하고 있습니다.

우리는 이미 인정받는 개발자 AdrianDC와 같은 일부 사용자 정의 ROM 개발자의 Android Go에서 일부 오래된 Sony 전화 용 Android Go 빌드 구성을 사용하여 LineageOS 15.1에 대한 작업을 통해 이미 많이 사용되고 있습니다. 해당 장치는 Sony Xperia SP, Sony Xperia T, Sony Xperia V 및 Sony Xperia TX입니다. 이 기기는 모두 2012 년과 2013 년으로 거슬러 올라가지 만 Android Go 빌드 구성을 사용하여 Android 8.1 Oreo 기반의 LineageOS 15.1을 수신 할 예정이며, 이로 인해 Android Go가 설정된 경우 기기가 Google 'Go'앱을 유동적으로 실행할 수 있습니다. Gapps의 최종 릴리스입니다.

모든 개별 LOS 관리자는 빌드 구성 및 기타 최적화 세트 인 Android Go 구성 빌드를 도입 할 수 있어야합니다. 즉, Sony Xperia T를 구매 한 사용자 (예 : Android 4.0.4 Ice Cream Sandwich를 실행하는 기기)는 기기에서 최적화 된 Android 8.1 Oreo 빌드를 사용할 수 있습니다. YouTube Go 및 Google Maps Go와 같은 애플리케이션 주요 성능 수준에서 실행되지는 않지만 특히 2012 년으로 거슬러 올라간 장치에 사용할 수 있어야합니다.


Android Go가 구형 Android 휴대 전화에서 Android Oreo를 실행하는 방법

Android의 빌드 구성은 장치에 플래시하기 위해 시스템 이미지를 컴파일 할 때 적용되는 Android 시스템의 다양한 측면과 관련된 매개 변수 세트입니다. 일반적으로 이러한 방식은 시스템의 작동 방식을 변경하며 Android Go의 주요 최적화는 이러한 빌드 구성에서 비롯됩니다.

Android Go를 컴파일하는 데 사용되는 빌드 구성입니다.

Regognized Developer joshuous와 이야기를 나 who습니다.이 개발자는 진행중인 변경 사항 (Android Go의 실제 작동 방식)을 이해하는 데 크게 도움이되었습니다. 이러한 빌드 구성 중 일부는 재 컴파일하지 않고 변경할 수 없으며 ROM 자체의 청사진 중 일부입니다. 이들은 완전히 대문자로 된 플래그입니다.

그러나 이러한 모든 플래그는 스토리지 및 메모리 사용과 관련하여 Android의 다양한 측면과 관련이 있습니다. 여기에는 자동 스토리지 관리, Android의 메모리 부족 킬러, 덱스 ( d alvik ex ecutable files) 최적화 프로그램 및 앱 실행을위한 RAM 제한이 포함됩니다. APK 파일은 이러한 DEX 파일로 구성되므로 APK 파일을 단순히 .dex 파일이 많은 ZIP 파일로 생각할 수 있습니다. 이는 실제로 Android가 애플리케이션을 실행할 때 실행되는 것입니다. 자동 스토리지 관리는 대신 Android 시스템이 아닌 Files Go 애플리케이션에 의해 제어됩니다.

Android Go 유틸리티 Android의 낮은 RAM 모드

Android 4.4 KitKat에서 Google은 512MB의 RAM이있는 기기를 지원하기 위해 "low-ram"이라는 새로운 플래그를 도입했습니다. 시스템에 많은 최적화를합니다. 이러한 변경은 RAM 장치를 낮추는 데 큰 도움이됩니다.

향상된 메모리 관리

  • 검증 된 메모리 절약 커널 구성 : ZRAM으로 교체합니다.
  • 캐시되지 않고 너무 큰 경우 캐시 된 프로세스를 종료하십시오.
  • 큰 서비스가 스스로 A 서비스에 다시 들어가도록 허용하지 마십시오 (따라서 런처가 종료 될 수 없음).
  • 유휴 유지 관리에서 너무 큰 프로세스 (현재 IME와 같은 일반적으로 처리 할 수없는 프로세스)를 종료하십시오.
  • 백그라운드 서비스 시작을 직렬화합니다.
  • RAM 부족 장치의 조정 된 메모리 사용 : 더 긴 메모리 부족 (OOM) 조정 레벨, 작은 그래픽 캐시 등

위의 이러한 변경은 기본적으로 시스템이 ZRAM을 사용하여 가능한 경우 압축 RAM을 사용하도록합니다. ZRAM은 기본적으로 RAM 파일 (장치에서 일반 저장 장치를 사용하는 것보다 훨씬 빠른 RAM을 사용하는 저장 매체)입니다. 스왑 파일은 RAM 사용량이 높고 응용 프로그램에 여전히 메모리가 필요한 경우에 사용됩니다. 이것은 RAM보다 훨씬 느리고 가능한 경우 피해야합니다. 본질적으로 단순히 메모리 내용을 압축합니다.

시스템 메모리 감소

  • 잘린 system_server 및 SystemUI 프로세스 (몇 MB 절약)
  • Dalvik에서 사전로드 덱스 캐시 (몇 MB 절약).
  • 검증 된 JIT-off 옵션 (프로세스 당 최대 1.5MB 절약)
  • 프로세스 별 글꼴 캐시 오버 헤드 감소
  • ArrayMap / ArraySet을 도입했으며 프레임 워크에서 HashMap / HashSet의 더 작은 설치 공간 대체로 광범위하게 사용되었습니다.

여기서 일어나는 대부분의 일은 장치에서 실행되는 다양한 프로세스의 메모리 소비를 최대한 절약하는 것입니다. 모든 메가 바이트의 RAM이 중요하기 때문에 백그라운드에서 가능한 적은 메모리를 사용하도록 필수 시스템 서비스가 제거되었습니다.

Android Go, 수정 된 낮은 메모리 킬러 및 덱스 최적화 사용

Android Go는 주로 1GB 이하의 RAM이 장착 된 기기에 적합하므로보다 적극적인 메모리 관리가 필요합니다. Android Go는 몇 가지 다른 방식으로 LMK (Low Memory Killer)를 수정합니다. 먼저, 많은 양의 RAM이 소모되면, 낮은 메모리 킬러는 "임계 압력"상태가됩니다. 메모리 사용량이 많을 때 장치 스토리지의 스왑 파일에 지속적으로 액세스하려고하면 시스템이 느려지기 때문입니다. RAM을 비워두면 시스템에서이 스왑 파일을 사용해야 할 필요가 없으며 메모리 스 래싱이 방지됩니다. 메모리 스 래싱은 장치의 메모리가 가득 찼을 때 발생하며 스왑 파일을 장치의 저장소에 지속적으로 페이징해야하므로 성능이 크게 저하됩니다.

서비스 및 WiFi 서비스는 "스피드 프로파일"로 설정되어 있습니다. 즉, 이러한 서비스에서 선택한 방법이 AOT (Ahead-of-Time)로 컴파일됩니다. (메소드는 이름으로 호출 할 수있는 코드 세트를 말합니다.) 이는 Android 시스템이 기기에서 실행되는 필수 서비스를 지속적으로 다시 컴파일 할 필요가 없기 때문에 RAM 사용 및 저장 공간을 줄입니다. 한편, 공유 APK는“quicken”으로 설정되는데, 이는 성능 향상을 위해 dex 명령을 최적화하여 배터리 수명과 CPU주기를 추가로 제공하도록 설계되었습니다.

덱스 최적화 측면에서 Android Go는 많은 기능을 수행합니다. 우선 10 일 후에는 공간을 절약하는 데 사용되지 않으면 응용 프로그램을 다운 그레이드합니다. 여기서 다운 그레이드는 실제 버전 번호 감소를 나타내는 것이 아니라 앱의 dalvik_cache가 지워짐을 의미합니다. Dalvik 캐시는 장치가 앱을 다시 컴파일 할 필요가 없도록하는 데 사용되며, 대신 가장 필요한 부분 만 컴파일하여 캐싱합니다. 나머지는 애플리케이션이 실행될 때 JIT (Just in Time) 컴파일러를 사용하여 컴파일됩니다. 그러나 응용 프로그램을 10 일 동안 사용하지 않으면 사전 컴파일 된 응용 프로그램의 필수 부분도 제거됩니다. 이것은 가능한 많은 공간을 확보하기 위해 수행됩니다. 또 다른 간단한 변경으로 앱의 RAM 사용량이 256MB를 초과 할 수 없으므로 앱이 기기의 모든 RAM을 사용할 수 없습니다.


Android는 저가형 기기에서 맞춤형 ROM 개발의 미래를 추구합니까?

현재 우리는 이에 대한 답을 모릅니다. 그러나 미래는 구형 장치에서 사용자 정의 ROM 개발을 위해 밝게 보입니다. 기기에서 최신 버전의 Android를 실행하는 데 다른 문제가있을 수 있지만 이론적으로 Android Oreo를 기반으로 한 최적화 된 Android Go로 업그레이드하면 구형의 저가형 기기를 더 잘 실행할 수 있습니다.