시스템 앱과 사용자 앱의 차이점은 무엇입니까?


28

다른 ROM을 가지고 놀았고 Titanium Backup을 사용하면서 앱이 시스템 및 사용자 앱으로 분류되어 있음을 알았습니다. 일부 ROM 개발자는 Titanium Backup을 사용자 앱에만 사용해야하며 시스템 앱에는 사용해서는 안되며 시스템 앱 제거를 진행할 때 ROM이 제대로 작동하지 않을 수 있다고 경고합니다.

마켓이나 다른 수단을 통해 사용자 앱을 다운로드 할 수 있다는 것 외에 두 가지의 주요 차이점은 무엇입니까?

OS 자체에보다 통합적인 시스템 앱은 무엇입니까?

답변:


20

/system루트가없는 읽기 전용이므로 /system/app및 에서 응용 프로그램을 제거 할 수 없습니다 /system/priv-app. 중요한 응용 프로그램은 제거 할 수 없도록 배치됩니다. 그들이 당신을 제거하고 싶지 않은 캐리어 bloatware도 있습니다. 루팅 된 경우 후자의 앱 카테고리를 제거 할 수 있습니다. 전자는 그렇게 많지 않습니다.

/system/priv-app또한 설치된 앱이 signatureOrSystem다른 권한 을 사용하도록 허용합니다. Stephen의 대답에는 몇 가지 예가 있습니다.

에 관해서는 애플 리케이션이 중요 할 수도 있습니다, 그것은 ROM에 따라 달라집니다. HTC의 Sense는 예를 들어 내가 듣는 것의 내장 앱에 크게 의존합니다. 그들은 단순히 타사 앱과 기본적으로 작동하도록 시스템을 설계하지 않았습니다 (또는 시스템 앱이없는 경우 실패). 다른 앱은 본질적으로 Android OS의 일부이지만 Google은 앱 / 서비스로 코딩했습니다 (아마도 캡슐화 및 안정성 이유로).

Google지도와 같은 일부 시스템 앱의 업데이트는 Play 스토어를 통해 다운로드 할 수 있습니다. 기기에 시스템 앱으로 사전 설치되어 있지 않은 경우 티타늄을 사용하여 사용자 앱에서 시스템 앱으로 변환 할 수 있습니다.


그것은 또한 시스템 킬러가 작업 킬러에 의해 죽일 수 없다는 것을 의미합니까? 아니면 죽이면 자동으로 시작 될까요 ??
ashishsony

@ashishsony 시스템 서비스는 일반적으로 자동 시작되지만, 대부분의 앱 / 서비스는 여전히 종료 될 수 있습니다. 예를 들어 장치에서 브라우저를 죽일 수 있습니다. (작업 킬러가 어떻게 나쁜지에 대한 일반적인 조언을 입력하십시오.)
Matthew 읽기

올바른 HTC 장치 (Dropbox, Facebook 등의 시스템 응용 프로그램)의 시스템 응용 프로그램이 Sense UI와 너무 깊이 통합되어 있습니다. 그것들을 제거하지 않아야한다. 또한 일부 ROM에서 메모리 부족 상태에서 종료되지 않을 수 있으므로 사용자 앱을 시스템 앱으로 변환하지 않아야합니다.
Ashesh Kumar Singh 님이

1
@all 프로그래밍 방식의 차이점은 (user-app) 비 시스템 앱이 장치 설정에서 force_stop 인 경우 시스템 (priv-app) 응용 프로그램이 시스템 브로드 캐스트를 수신하더라도 응용 프로그램 설정에서 force_stop입니다.
Zala Janaksinh

22

다른 답변은 정확하지만 몇 가지 차이점을 지적하지는 못합니다.

권한

시스템 앱에는 사용자 앱에서는 절대 사용할 수없는 특정 시스템 전용 권한을 요청할 수 있습니다. 이것은 root / sudo / su 권한과 동일 하지 않습니다 .

내가 알고 매일 사용하는 한 가지 예는 부재 중 전화 알림 카운터를 재설정하는 기능입니다. 주식 다이얼러 및 연락처 앱 (전화 통화 방법)을 대체하는 Go Dialer가 있습니다. 전화를 놓치면 Android에서 알림으로 알려줍니다. 그러나 Go Dialer는 앱을 설치할 때 해당 권한을 요청하더라도이 카운터를 재설정 할 수 없습니다. Android 2.2 및 이전 버전에서는 사용자 앱에서이를 재설정 할 수 있지만이 권한은 Android 2.3에 대한 시스템 전용 액세스 권한입니다.

Go Dialer 앱을 시스템 파티션으로 이동하면이 카운터를 재설정 할 수 있습니다. 앱에는 루트가 필요하지 않습니다 (물론 실제로 앱을 시스템 파티션으로 이동하는 경우는 제외).

다른 시스템 권한은 현재 GPS 위치를 설정하는 기능입니다. 이제 Android에는 모의 위치를 ​​허용 할 수있는 환경 설정이 있으므로 설치 한 모든 GPS 스푸핑 앱이 GPS 위치를 선언 할 수 있습니다. 그러나 앱이 시스템 파티션에있는 경우 앱이 gps 위치를 스푸핑하는 동안 모의 위치를 ​​비활성화 할 수 있습니다.

업데이트

시스템 앱은 사용자 앱처럼 업데이트 할 수 있지만 업데이트는 원래 ROM에 통합되지 않습니다. 즉, 시스템 앱에는 ROM을 처음 설치할 때 존재했던 버전으로 롤백 할 수있는 고유 한 기능이 있습니다.

SD로 이동

Android를 통해 사용자 user는 내부 메모리에서 SD 카드 로 앱을 이동할 수 있습니다 . 시스템 앱은 이동할 수 없으며 항상 내부 공간을 차지합니다. 그러나 대부분의 (모든?) 장치에는 다른 파티션에 내부 사용자 응용 프로그램이 있으므로 시스템 응용 프로그램을 제거하면 더 이상 사용자 응용 프로그램 공간이 제공되지 않습니다 (달빅 캐시 제거 제외).

시스템 앱에 대한 업데이트를 제거하면 일부 공간이 복구됩니다. 언급 한 바와 같이, 업데이트는 ROM과 통합되지 않으므로 사용자 공간에 저장됩니다. 업데이트는 sd 카드로도 이동할 수 없지만 제거하면 사용자 공간이 복구됩니다.

그것이 당신에게 미치는 영향

캐주얼 한 안드로이드 사용자라면 시스템 대 사용자 앱이 차이를 낼 수있는 시나리오에 빠지지 않을 것입니다. 고급 사용자 인 경우 루트 권한이있을 수 있으므로 이러한 상황 중 하나가 발생하면 시스템 앱을 사용자로 변경하거나 그 반대로 변경할 수 있습니다.


1
"이것은 root / su 권한과 동일하지 않습니다"를 의미 했습니까? 나는 그것을 기억하는 것 sudosu동일하지 않습니다 - 적어도 유닉스와 리눅스.
ChuongPham 2016 년

* nix에서 su와 sudo가 다르다는 것이 맞습니다. 그러나 sudosudo는 루트 권한을 su요구하는 반면 단순히 사용자 전환을 요구하기 때문에 여기에서 더 적용 가능합니다 . su를 사용하려면 전환하려는 계정의 비밀번호 만 알아야합니다. 계정을 지정하지 않으면 루트 계정을 요구합니다. 그러나 Android에는 루트 암호 나 다른 계정이 없으므로 su사용자가 루트 권한을 얻기 위해 터미널에서 실행하는 것으로 알려진 명령입니다.
Stephen Schrauger 2016 년

어쨌든, 나는 su일부 안드로이드 사용자가 루트와 동일하기 때문에 를 포함하도록 답변을 업데이트 할 것 입니다.
Stephen Schrauger 2016 년

4

시스템 앱은 시스템에 포함 된 앱입니다. 그것들은 / system / app 폴더에 있습니다.

대부분의 경우 장치를 실행해야합니다. 이들 중 일부의 예는 모든 네트워크 연결을 설정하는 다이얼러와 인앱 웹뷰가 작동하지 않는 브라우저입니다.


1
다이얼러가 네트워크 연결을 설정합니까?
Matthew 읽기

2
@MatthewRead 예-그렇습니다! 실제 '다이얼러'는 다이얼러 애플리케이션에있는 별도의 활동입니다. dialer.apk는 연결을 설정하는 앱입니다. 증거를 원하면 다이얼러 및 다이얼러 스토리지 앱을 고정하면 네트워크가 작동하지 않습니다.
Liam W

꽤 이상하다!
Matthew 읽기

안드로이드는 이상하다!
Liam W

3

위의 답변에 무언가를 추가하고 싶습니다. 시스템 앱은 사용자 앱과 달리 공장 출고시 완전히 삭제할 수 없습니다. 따라서 모든 개인 파일을 삭제하고 싶지만 너무 많이 삭제하여 공장 재설정이 가장 편리하고 유지하려는 앱이있는 경우 편리하게 삭제할 수없는 경우 해당 앱을 시스템 앱으로 변환하여 이길 수 있습니다. 공장 초기화 중에는 지워지지 않습니다.


1
재미있는 팁! 음악을 지금 시스템으로 옮기고 싶습니다 lol
FreeSoftwareServers

2

시스템 앱의 또 다른 기능은 앱 전용 라이브러리 디렉토리 (예 : / data )가 아니라 공통 시스템 라이브러리 디렉토리 (일반적으로 / system / lib 또는 / system / lib64 )에서 기본 라이브러리 ( libsomething.so 파일)를 사용한다는 것입니다. /app/com.example.HelloJni/lib/arm ). Android Nougat 이전에는 사용자 앱에서 시스템 기본 라이브러리를 자유롭게로드하여 사용할 수있었습니다. 나중에 제한 사항이 적용되었습니다 . https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk를 참조 하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.