번역원문 모음
http://www.facebook.com/groups/engfordev/277651038953395/
[1]
A few days ago I wrote a post trying to correct a lot of the inaccurate statements(부정확한 진술들) I have seen repeatedly mentioned about how graphics on Android works.
> 며칠전, 나는 계속해서 보아온 안드로이드의 그래픽이 동작하는 방법에 대한 많은 부정확한 정보들을 바로잡으려는 글을 썼다.
This resulted in a lot of nice discussion, but unfortunately (this) has also lead some people to come up with (complaints) new, novel, and often technically inaccurate complaints about how Android works.
> 그 글로 인해 많은 건전한 토의가 오고갔지만, 불행히도 일부 사람은 안드로이드가 동장하는 방식에 대해 새로운, 소설같은 그리고 상당부분 기술적으로 부정확한 정보를 가지고 비난을 계속하고 있다.
[2]
These new topics have been more about
some fundamental design decisions
in Android,
and why they are wrong.
> 이 새로운 비난의 요점은 몇몇 안드로이드의 UI 디자인에 대한 근본적인 원칙들에 대한 것이었고, 왜 그것이 틀렸는지에 대한 것이었다.
I’d like to help people
better understand (and judge) these discussions
by giving some real background on
why Android’s UI was designed the way it is
and how it actually works.
> 나는 안드로이드 UI가 왜 지금의 방식으로 디자인되었으며, 실제로 어떻게 동작하는가에 대한 진짜 배경지식을 전달함으로써 사람들로 하여금 이 논의를 잘 이해하도록 돕고 싶었다.
[3]
One issue
that has been raised
is that
Android doesn’t use thread priorities
to reduce how much background work interrupts the user interface.
> 그중 하나의 이슈는, 안드로이드가 백그라운드의 작업이 유저인터페이스를 인터럽트하는 정도를 줄이기 위하여 쓰레드 우선순위(thread priorities)를 사용하지 않는다는 것이었다.
*인터럽트는 번역하면 방해하다는 정도가 되겠지만 프로그래밍에서는 실행되는 프로세스를 중지시키고 자신이 실행된다는 의미가 있으므로 그냥 썼습니다. 같은 맥락에서 쓰레드도 해석하지 않았는데, 쓰레드 우선권이라 쓰지 좀 우습네요;;;;
This is outright wrong.
> 이것은 완전 틀렸다.
It actually uses
a number of priorities,
which you can even find defined right here
> 실제 안드로이드는 우선순위를 사용한다. 해당 내용은 SDK의 다음 링크에서도 정의되어있다.
http://developer.android.com/reference/android/os/Process.html#THREAD_PRIORITY_AUDIO in the SDK.
[4]
The most important of these
are the background and default priorities.
> 이것들중 가장 중요한 것은 백그라운드 우선순위와 기본 우선순위다.
User interface threads
normally run at the default priority;
> 사용자 환경(UI) 쓰레드들은 일반적으로 기본 우선순위로 실행된다.
background threads
run in the background priority.
> 백그라운드 쓰레드들은 백그라운드 우선순위에 의해 실행된다.
Application processes
that are in the background
have all of their threads
forced to the background priority.
> 백그라운드에 있는 어플리케이션 프로세스들은 그것들의 쓰레드들에게 백그라운드 우선순위를 강제하도록 되어있다.
[5]
Android’s background priority is actually pretty interesting.
> 안드로이드의 백그라운드 우선순위는 굉장히 흥미롭다.
It uses a Linux facility
called cgroups
to put all background threads
into a special scheduling group
which, all together, can’t use more than 10% of the CPU.
> 그것은 cgroups이라는 리눅스의 기능을 사용하는데, 이것은 모든 백그라운드 쓰레드들을 하나의 특별한 스케줄링 그룹으로 넣는다. 이 스케줄링 그룹은 내부에 있는 쓰레드들을 모두 합쳐서 CPU의 10%이상을 사용할 수 없게 되어있다.
That is,
if you have 10 processes in the background
all trying to run at the same time,
when combined
they can't take away
more than 10% of the time
needed by foreground(표현?) threads.
> 그러니까, 백그라운드에 10개의 프로세스가 있다고 가정하고, 모든 프로세스가 동시에 실행되려고 하고 있다고해도, 이 프로세스들은 모두 합쳐서 UI 쓰레드들이 필요로 하는 시간의 10% 이상을 사용할 수 없다는 것이다.
*foreground는 background의 반대 의미로, 사용자와 상호작용하는 것을 의미합니다. 여기선 UI 쓰레드들이 동작하는 방식을 표현하고 있습니다.
This is enough
to allow background threads (표현? 의미?)
to make some forward progress,
without having enough of an impact
on the foreground threads
to be generally visible to the user.
(foreground thread의 의미는?)
> 이 정도면 백그라운드 쓰레드들이 UI 쓰레드들을 방해하지 않고 실행되기에 충분하다.