시스템 앱으로 Xamarin.Android 설치Installing Xamarin.Android as a System App

이 가이드에서는 시스템 앱과 사용자 앱의 차이점, 그리고 Xamarin.Android 애플리케이션을 시스템 애플리케이션으로 설치하는 방법을 설명합니다. 이 가이드는 사용자 지정 Android ROM 이미지 작성자에게 적용됩니다. 사용자 지정 ROM을 만드는 방법은 설명하지 않습니다.This guide will discuss the differences between a system app and a user app, and how to install a Xamarin.Android application as a system application. This guide applies to authors of custom Android ROM images. It will not explain how to create a custom ROM.

시스템 앱System App

사용자 지정 Android ROM 이미지 작성자나 Android 디바이스 제조업체는 ROM 또는 디바이스를 배포할 때 Xamarin.Android 애플리케이션을 _시스템 앱_으로 포함하는 것이 좋습니다.Authors of custom Android ROM images or manufacturers of Android devices may wish to include a Xamarin.Android application as a system app when distributing a ROM or a device. 시스템 앱은 사용자 지정 ROM 작성자가 항상 사용하기를 원하는 기능을 제공하거나 디바이스 작동에 중요하다고 간주되는 앱입니다.A system app is an app that is considered to be important to the functioning of the device or provide functionality that the custom ROM author always wants to be available.

시스템 앱은 /system/app/ 폴더(파일 시스템의 읽기 전용 디렉터리)에 설치되며, 루트 액세스 권한이 없는 사용자는 삭제하거나 이동할 수 없습니다.System apps are installed in the folder /system/app/ (a read-only directory on the file system) and cannot be deleted or moved by the user unless that user has root access. 반면, 사용자가 (일반적으로 Google Play를 사용하거나 앱을 사이드로드하여) 설치한 애플리케이션은 _사용자 앱_이라고 합니다.In contrast, an application that is installed by the user (typically from Google Play or by sideloading the app) is known as a user app. 사용자 앱은 사용자가 삭제할 수 있으며, 대부분의 경우 디바이스의 다른 위치로 이동할 수 있습니다(예: 외부 스토리지).User apps can be deleted by the user and in many cases can be moved to a different location on the device (such as some kind of external storage).

시스템 앱은 사용자 앱과 똑같이 동작할 수 있지만 다음과 같은 주목할 만한 예외가 있습니다.System apps behave exactly like user apps, but have the following notable exceptions:

  • 시스템 앱은 일반 _사용자 앱_처럼 업그레이드할 수 있습니다.System apps are upgradable just like a normal user app. 그러나 앱의 사본이 항상 /system/app/ 에 있으므로 애플리케이션을 원래 버전으로 항상 롤백할 수 있습니다.However, because a copy of the app always exists in /system/app/, it is always possible to roll back the application to the original version.

  • 시스템 앱에는 사용자 앱에 제공되지 않는 특정 시스템 전용 권한이 부여될 수 있습니다.System apps may be granted certain system-only permissions that are not available to a user app. 시스템 전용 권한의 예로 사용자 상호 작용 없이 애플리케이션을 Bluetooth 디바이스와 연결할 수 있게 해주는 BLUETOOTH_PRIVILEGED가 있습니다.An example of a system-only permission is BLUETOOTH_PRIVILEGED, which allows applications to pair with Bluetooth devices without any user interaction.

Xamarin.Android 앱은 시스템 애플리케이션으로 배포할 수 있습니다.It is possible to distribute a Xamarin.Android app as a system application. APK를 사용자 지정 ROM에 제공하는 것 외에도, libmonodroid.solibmonosgen-2.0.so라는 두 가지 공유 라이브러리를 APK에서 ROM 이미지의 파일 시스템으로 수동 복사해야 합니다.In addition to providing an APK to the custom ROM, there are two shared libraries, libmonodroid.so and libmonosgen-2.0.so that must be manually copied from the APK to the filesytem of the ROM image. 이 가이드에서는 관련 단계를 설명합니다.This guide will explain the steps involved.

제한Restrictions

이 가이드는 사용자 지정 Android ROM 이미지 작성자에게 적용됩니다.This guide applies to authors of custom Android ROM images. 사용자 지정 ROM을 만드는 방법은 설명하지 않습니다.It will not explain how to create a custom ROM.

이 가이드에서는 Xamarin.Android용 릴리스 APK 패키징에 익숙하며 Android 애플리케이션의 CPU 아키텍처를 잘 이해하고 있다고 가정합니다.This guide assumes familiarity with packaging a release APK for a Xamarin.Android and an understanding of CPU Architectures for Android applications.

시스템 앱으로 Xamarin.Android 앱 설치Install a Xamarin.Android App as a System App

다음 단계에는 시스템 앱으로 Xamarin.Android 앱을 설치하는 방법을 설명합니다.The following steps describe how to install a Xamarin.Android app as a system app.

  1. Xamarin.Android 앱의 릴리스 APK 패키징– 이는 애플리케이션 게시 가이드에 자세히 설명되어 있습니다.Package a release APK of the Xamarin.Android app – This is described in more detail by the Publishing an Application guide.

  2. APK에서 공유 라이브러리 추출 – ZIP 유틸리티 프로그램을 사용하여 APK 파일을 열고 /lib/ 폴더의 콘텐츠를 살펴봅니다.Extract shared libraries from the APK – Using any ZIP utility program, open up the APK file and examine the contents of the /lib/ folder. 이 폴더에는 애플리케이션에서 지원하는 각 ABI(애플리케이션 이진 인터페이스)의 하위 디렉터리가 있습니다. 이 폴더의 콘텐츠에는 특정 ABI의 앱에 필요한 모든 공유 라이브러리가 포함됩니다.This folder will have a subdirectory for each application binary interface (ABI)that is supported by the application; the contents of this folder will include all of the shared libraries that are required by the app on that particular ABI:

    taskypro.zip의 armeabi-v7a 폴더에 있는 .so 파일의 스크린샷

    이전 스크린샷에는 앱에 필요한 두 가지 .so 파일이 저장되는 지원 ABI(armeabi-v7a)가 하나뿐이었습니다.In the previous screenshot, there is only one supported ABI (armeabi-v7a) holding the two .so files that are required by the app. 이는 디바이스나 디바이스 ROM의 대상 아키텍처에 적합한 ABI 파일을 추출하는 데만 필요합니다. 따라서 x86 폴더의 .so 파일을 armeabi-v7a 디바이스나 ROM으로 복사하지 마세요.Note that it is only necessary to extract the ABI files that are appropriate for the device or the target architecture of the device ROM, i.e. do not copy .so files from the x86 folder to an armeabi-v7a device or ROM.

  3. .so 파일을 /system/lib에 복사 – 이전 단계의 APK에서 추출된 .so 파일을 사용자 지정 ROM의 /system/lib/ 폴더로 복사합니다.Copy .so files to /system/lib – Copy the .so files that were extracted from the APK in the previous step to the /system/lib/ folder on the custom ROM.

  4. APK 파일을 /system/app에 복사 – 마지막 단계는 APK 파일을 ROM의 /system/app 폴더로 복사하는 것입니다.Copy the APK file to /system/app – The final step is to copy the APK file to the /system/app folder on the ROM.

요약Summary

이 가이드에서는 _시스템 앱_과 _사용자 앱_의 차이점, 그리고 Xamarin.Android 애플리케이션을 시스템 앱으로 설치하는 방법을 설명했습니다.This guide discussed the difference between a system app and a user app, and explained how to install a Xamarin.Android application as a system app.