본문 바로가기
카테고리 없음

갤럭시S4 기본 브라우저 갤럭시S3 기본 브라우저 렌더링 속도 차이

by [김경민]™ ┌(  ̄∇ ̄)┘™ 2014. 4. 8.
728x90

[출처] http://sculove.pe.kr/wp/android-browser-%ED%8C%8C%ED%8E%B8%ED%99%94%EC%97%90-%EB%8C%80%ED%95%9C-%EC%9D%B4%EC%95%BC%EA%B8%B0/


“갤럭시노트3 에서만 이런 문제가 생겨요”

“삼성 폰 안드로이드 4.0에서만 이런 문제가 생겨요”

 

모바일 웹개발을 하다보면 위와같은 이야기를 QA에게서 또는 사용자에게서 자주 들을수 있다.

난 표준대로 프로그래밍했는데 도데체 왜~! 이런단 말인가?

이러한 문제가 발생했을때, Browser 환경이 OS, 버전, 제조사에 따라 다르다는 것을 알고 접근한다면, 한결 수월하게 해결할수 있다.

더불어 웹프로그래밍이 동작하는 Browser (보통은 기본 브라우저)가 어떤 종류의 것인지를 안다면 보다 쉽게 문제를 파악하고, 원인을 파악할수 있을 뿐만아니라, 향후 발생하게되는 문제 또한 미연에 방지할수 있다.

이 글은 실제 개발하면서 눈으로 확인하고, 경험한 국내 안드로이드 단말기들의 기본브라우저에 대한 이야기를 하고자한다.

Browser 파편화는 왜 생기나?

Apple에서 정식릴리즈를 하는 iOS와 다르게, Android는 다양한 브라우저 환경을 가지고 있다.
(여기에서는 WebView와 같은 하이브리드 앱 구현시 사용하는 브라우저환경은 제외한다)

여러가지 이유가 있겠지만, 대표적인 이유는 다음과 같다.

  1. Google이 이끄는 오픈소스인 Android는 2005 년 Google이 “안드로이드사”를 인수하면서 시작하였다. 이러한 이유로, Android는 처음부터 Google이 추구하는 빠르고 심플한 아키텍쳐를 가지고 있었던것 은 아니었다. Android에 기본적으로 탑재되어 있는 Browser도 Google이 개발하고 있는 Chromium이 아니기 때문에, 기능적으로 성능적으로 많이 부족하였다. 이를 개선하기 위해 Google에서는 Chromium기반의 Android for Chrome을 개발하였다.
  2. Android는 오픈소스이기 때문에, iOS에 비해 전세계적으로 많이 사용하고 있지만, 이러한 이유로, 각 제조사, 단말기 별로 다양한 버전(?)의 Browser환경이 생겨나게 되었다.

다행인 것은 이러한 문제는 Google에서도 잘 알고 있는 사실이었고,

이를 개선하기 위한 노력으로, Google에서는 Chromium을 Android의 기본 브라우저로 탑재할 준비를 하였다. 바로, 그렇게 나온게 Chrome for Android 브라우저이다.

 

Android 기본 브라우저의 변화

stock browser에서 chromium으로

android는 4.4(Kitkat) 이전 버전의 android는 stock Browser를 기본 브라우저로 사용하고 있었다.  그렇다고 모두 똑같은 Browser환경을 제공하지는 않았다.

특히, 삼성전자에서 나오는 단말기들은 자체적으로 browser 성능 개선을 위해 많은 변경(?)을 하였고, 이로 인해 발생하는 버그 또한 다양하게 있었다. (이러한 버그는 별도의 글에서 언급할 계획이다)

Android 4.1 (Jelly bean) Nexus7에서는 Chrome for Android가 최초로 기본 브라우저로 탑재되었고, Android 4.4 (Kitkat) 부터는 모든 Android 단말기의 기본 브라우저가  Chromium 기반으로 변경되었다.

Android 4.4 (Kitkat)에 대한 자세한 내용은 아래 링크를 참조한다.

https://developer.android.com/about/versions/kitkat.html#44-webview

http://www.mobilexweb.com/blog/android-4-4-kitkat-browser-chrome-webview

 

삼성의 SBrowser

삼성전자는 이러한 Google의 노선과 별개로 Chromium을 기반으로하는 SBrowser를 만들었다. SBrowser는 Chromium 기반의 삼성 브라우저 환경으로 갤럭시S4 4.2~, 갤럭시노트3 4.3~ 에 탑재되었으며 향후 Android의 모든 Browser환경을 SBrowser로 구성할 것으로 보인다.

SBrowser는 “Chrome for Android 25 미만에서 발생하던, 하드웨어 가속시 blur되는 문제”, “Chrome for Android에서 플리킹과 같은 동작시 하이라이트가 존재하는 버그” 등이 개선되어 있다.

highliteIssue

[플리킹시, 하이라이트가 사라지지 않고 존재하는 문제]

SBrowser는 UserAgent값에 “SAMSUNG” 이라는 키워드와 “Chrome” 키워드가 들어가 있다. 아래는 갤럭시S4의 UserAgent 정보이다.

 

랜더링 엔진의 변화

stock Browser나 Chromium 기반 브라우저 모두 webkit 기반의 랜더링 엔진을 사용하고 있다. 하지만, 정치(?), 경제적인(?) 이유로 인해, Google이 Webkit 랜더링 엔진을 fork 하여 Blink (http://blog.chromium.org/2013/04/blink-rendering-engine-for-chromium.html)라는 새로운 랜더링 엔진을 Chrome 28부터 사용하고 있다.

실제 Chromium 기반의 브라우저에서 chrome://version 정보를 입력하면 chrome 버전 28이상에서 랜더링 엔진이 blink로 나오는 것을 확인할 수 있다.

blink

정리

위에서 언급한 내용을 표로 정리하면 다음과 같다.

 Android OS 버전 랜더링 엔진 기본 브라우저 단말기
 Android 2.x Webkit stock browser
 Android 3.x Webkit stock browser
 Android 4.0.x Webkit stock browser
 Android 4.1.x Webkit stock browser
 Chromium browser Nexus7
(기본 브라우저로 Chrome for Android 탑재)
 Android 4.2.x Webkit stock browser
 Chromium browser 갤럭시S4, 갤럭시노트3
(기본 브라우저로 SBrowser 탑재)
 Android 4.3.x Webkit stock browser
 Blink Chromium browser 갤럭시S4, 갤럭시노트3
(기본 브라우저로 SBrowser 탑재)
 Android 4.4.x Blink Chromium browser 갤럭시S4
(기본 브라우저로 SBrowser 탑재)

Nexus5
(기본 브라우저로 Chrome for Android 탑재)

실제로,  위에서 언급하지 않은 단말기들은 제조사 별로 약간은 다른 Browser환경을 보인다.
개인적인 경험으로는 삼성전자의 Browser 환경을 제외하고는 LG, 팬택에서는 대체로 Google에 탑재된 기본 브라우저를 따른다.
하지만, 위 표에서 보는것과 같이 삼성전자에서 출시되는 단말기들의 기본브라우저는 단말기별로도 다르게 동작하는 경우가 많기 때문에, 개발시 사전에 Browser의 특성을 파악하는게 중요하다.


728x90

댓글