Android 앱이 기본적으로 Ubuntu touch에서 실행될 수 있습니까?


28

Ubuntu Touch 에서 Android 앱을 기본적으로 실행할 수없는 이유가 궁금 합니다. 내 말은, 전부 리눅스 만 아니야?


1
데스크톱 환경은 응용 프로그램과 호환되는 데 큰 요인입니다.
Patrick C. James

8
이것은 실제로 아주 좋은 질문입니다. 실제로 Nooby이지만 매우 유효합니다. 공감하십시오.
don.joey

나는 이것이 "예"또는 "아니오"유형의 결론을 넘어서 쉽게 연구되지 않기 때문에 @ don.joey와 동의한다.
MGodby

최신 우분투 라이브에 대한 흥미로운 토론이있었습니다. youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <일부 관련 타임 스탬프 포인트
Mateo

CPU가 다를 가능성도없는 문제입니까?
Kevin Fegan

답변:


24

짧은 대답은 "아니오"입니다.

엄밀히 말하면, Linux 커널은 실행중인 하드웨어에 대한 직접적인 인터페이스 이상을 제공하지 않습니다. Android 애플리케이션에 의존하는 추가 Android 전화 별 API, 프로그램, 애플리케이션 등의 전체 스택이 있습니다. 또한 Android는 일반적인 Linux 커널에서 실행되는 것이 아니라 OS를 실행하려는 특정 목적으로 Google에서 고도로 맞춤 설정된 커널에서 실행됩니다.

기술적으로 다른 응용 프로그램에서 Android 응용 프로그램을 실행하는 데 필요한 전체 스택을 재현 할 수 있어도 비효율적입니다.


3
10 배 더 강력한 데스크탑에서 일련의 전화 라이브러리를 올바르게 실행하는 것은 매우 비효율적 입니까? 우리는 10 년 동안 데스크탑에서 휴대폰 에뮬레이터를 실행 해 왔습니다.
MSalters

3
나는 그 asker가 기본적으로, 즉 에뮬레이터 나 가상화가 없다는 것을 전제로 대답했다.
MGodby

5
@MSalters 에뮬레이터는 기본 프로그램에 비해 더 많은 리소스 를 사용하여 동일한 출력 을 생성합니다 . 그것은 거의 비효율의 정의입니다. 그리고 안드로이드 에뮬레이터는 특히 느립니다.
jmathew

1
@jmathew 개발자의 관점 (적어도 나의 것)의 이점 중 하나는 응용 프로그램이 느린 컴퓨터의 에뮬레이터에서 합리적으로 잘 실행되면 저급 특가 전화 더미에서 합리적으로 잘 수행된다는 것입니다.
zxq9

2
@jmathew MSalters가 말하려고했던 것은 에뮬레이터를 사용하는 것이 수년 동안 실용적이었을 때 같은 것을 기본적으로 실행하는 것이 비효율적 일 수는 없다고 생각합니다.
kasperd

1

Nokia n900은 maemo witch를 실행하는 Linux OS이지만 여전히 dalvik environement wich를 통해 안드로이드 앱을 실행할 수는 있지만 시장이나 레시피를 판매하지는 않습니다. 왜? n900을 위해 달빅을 개발 한 사회 만이 알고 있습니다. 이제 또 다른 이니셔티브 호출 apkenv가있었습니다. n900에서 일부 안드로이드 게임을 실행하기 위해 추가해야 할 것이 많지 않은 것으로 보입니다 .gpu 또는 cpu power 또는 maemo의 데스크톱에 관계없이 앱은 에뮬레이션에서와 같이 호수에서 실행되지만 일부는 완벽하게 실행되지 않습니다. 그래서 우분투 터치에 관해서는 기술의 문제가 아닙니다 (내가 틀렸을 수도 있지만 공식 우분투의 터치 폰은 샤오 미 테크가 안드로이드에 사용되기 때문에 하드웨어 도이 문제가 아닙니다).


1

귀하의 질문에 대한 답변은 BIG NO입니다.

안드로이드 는 리눅스 커널을 기반으로하지만 안드로이드의 기본 애플리케이션이 리눅스에서 실행될 수 있고 그 반대도 마찬가지라는 의미는 아니지만 안드로이드는 우분투 터치와 완전히 다릅니다 .

다른 OS 간 커널의 유사성으로 인해 이러한 다른 OS에서 응용 프로그램을 실행할 수있는 것은 아닙니다. 커널은 시스템의 가장 낮은 소프트웨어 계층입니다. 커널 위에는 시스템 소프트웨어와 응용 프로그램 인터페이스 로 구성된 사용자 공간 이 있습니다 .

동일한 커널을 가진 OS는 완전히 다른 사용자 공간을 가질 수 있으며 고유 응용 프로그램은 특정 사용자 공간에서 실행됩니다.

또한 Android 앱은 일반적으로 java 및 Android 앱을 사용하여 개발되며 JVM 에서 바이트 코드 를 입력 으로 사용하는 런타임 환경 ( Dalvik 또는 ART ) 에서 실행 되는 반면 Linux 애플리케이션은 컴파일시 머신 코드 로 직접 변환됩니다 .

C ++를 사용하여 안드로이드 용으로 개발 된 애플리케이션은 Linux 환경에서 직접 실행할 수 없으며, Linux 시스템 용으로 먼저 컴파일해야합니다.

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