레이블이 Android인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Android인 게시물을 표시합니다. 모든 게시물 표시

2018년 9월 19일 수요일

A/B (Seamless) 시스템 업데이트 개요

심리스(Seamless) 업데이트라고도 하는 A/B 시스템 업데이트는 OTA (Over-The-Air) 업데이트 중에도 작동 가능한 부팅 시스템이 디스크에 남아 있도록 합니다. 이 방법은 업데이트후 장치의 비활성가능성을 줄여 주므로 수리 및 보증 센터에서 장치 교체 및 장치 리플래쉬(Reflash)가 줄어 듭니다. ChromeOS와 같은 다른 상업용 운영 체제에서도 A/B 업데이트를 성공적으로 사용됩니다.

A/B 시스템 업데이트는 다음과 같은 이점을 제공합니다.

l  OTA 업데이트는 시스템 실행중에 사용자 중단없이 발생할 수 있습니다. 사용자는 OTA도중에 장치를 계속 사용할 수 있습니다. 업데이트도중 유일한 중단 시간은 장치가 업데이트된 디스크 파티션으로 재부팅되는 경우입니다.

l  업데이트 후에는 재부팅이 일반 재부팅보다 더 소요되지 않습니다.

l  OTA가 되지 않는 경우 ( : 불량 플래시로 인해) 사용자는 영향을 받지 않습니다. 사용자는 이전 OS를 계속 실행하며 클라이언트는 업데이트를 다시 시도할 수 있습니다.

l OTA 업데이트를 했지만 부팅에 실패하면 장치가 이전 파티션으로 재부팅되고 사용 가능한 상태로 유지됩니다. 클라이언트는 업데이트를 다시 시도할 수 있습니다.

l 오류 ( : I/O 오류)는 사용되지 않은 파티션 세트에만 영향을 주며 재시도될 수 있습니다. 그러므로 사용자 경험을 저하시키지 않을 것입니다.

l 업데이트를 A/B 장치로 스트리밍할 수 있으므로 패키지를 설치하기 전에 다운로드할 필요가 없습니다. 스트리밍이란 사용자가 /data 또는 /cache에 업데이트 패키지를 저장할 충분한 여유 공간을 가질 필요가 없음을 의미합니다.

l 캐시 파티션은 더이상 OTA 업데이트 패키지를 저장하는데 사용되지 않으므로 캐시 파티션이 향후 업데이트를 위해 충분히 큰지 확인할 필요가 없습니다.

l dm-verity는 장치가 손상되지 않은 이미지를 부팅하도록 보장합니다. 장치가 잘못된 OTA 또는 dm-verity 문제로 인해 부팅되지 않으면 장치가 이전 이미지로 재부팅될 수 있습니다. (Android Verified Boot에는 A/B 업데이트가 필요하지 않습니다.)

A/B (Seamless) 시스템 업데이트에 대해

A/B 업데이트를 수행하려면 클라이언트와 시스템 모두를 변경해야 합니다. 그러나 OTA 패키지 서버는 변경이 필요하지 않습니다. 업데이트 패키지는 여전히 HTTPS를 통해 제공됩니다. Google OTA 인프라를 사용하는 기기의 경우 시스템 변경 사항이 모두 AOSP이며 클라이언트 코드는 Google Play 서비스에서 제공됩니다. Google OTA 인프라를 사용하지 않는 OEM AOSP 시스템 코드를 재사용할 수 있지만 자체 클라이언트를 제공해야 합니다.

자체 클라이언트를 제공하는 OEM의 경우 클라이언트는 다음을 수행해야 합니다.

l 업데이트를 할때를 결정합니다. A/B 업데이트가 백그라운드에서 발생하기 때문에 더이상 사용자가 시작하지 않습니다. 사용자 중단을 방지하려면 장치가 유휴 유지 관리 모드 ( : , Wi-Fi) 일때 업데이트를 예약하는 것이 좋습니다. 그러나 클라이언트는 원하는 휴리스틱(Heuristics)을 사용할 수 있습니다.

l OTA 패키지 서버에 로그린하여 업데이트를 가용한지 확인합니다. 이는 기기가 A/B를 지원한다는 신호를 보내고 싶다는 점을 제외하면 대부분 기존 클라이언트 코드와 동일해야 합니다. (Google의 고객은 사용자가 최신 업데이트를 확인하기 위해 '지금 확인' 버튼도 포함합니다.)

l 업데이트 패키지의 HTTPS URL update_engine을 호출합니다. update_engine은 업데이트 패키지를 스트리밍할때 현재 사용되지 않는 파티션의 블록을 업데이트합니다.

l update_engine 결과 코드에 따라 설치 성공 또는 실패를 서버에 보고합니다. 업데이트가 성공적으로 적용되면 update_engine은 다음 재부팅시 새 OS로 부팅하도록 부트 로더에 지시합니다. 새로운 OS가 부팅에 실패하면 부트 로더가 이전 OS로 대체되므로 클라이언트에서 작업할 필요가 없습니다. 업데이트가 실패하면 클라이언트는 자세한 오류 코드를 기반으로 다시 시도할 시기를 결정해야 합니다.

옵션으로 클라이언트는 다음을 수행할 수 있습니다.

l 사용자에게 재부팅하라는 알림을 표시합니다. 사용자가 정기적으로 업데이트하도록 권장하는 정책을 구현하려는 경우 이 알림을 클라이언트에 추가할 수 있습니다. 클라이언트가 사용자에게 확인 메시지를 표시하지 않으면 사용자는 다음 번에 다시 부팅할때 업데이트를 받게 됩니다.

l 사용자에게 새로운 OS 버전으로 부팅했는지 또는 이전 OS 버전으로 되돌아 갔는지 여부를 알려주는 알림을 표시합니다.

시스템 측면에서 A/B 시스템 업데이트는 다음 사항에 영향을 미칩니다.

l 파티션 선택 (슬롯), update_engine daemon 및 부트 로더 상호 작용

l 빌드 프로세스 및 OTA 업데이트 패키지 생성

2017년 12월 21일 목요일

Android GO 개요

올해초 Google I/O에서 간략하게 소개된 새로운 소프트웨어 프로젝트인 Android Go를 공식 출시했습니다. 구글은 현재 플랫폼용으로 개발을 시작할 수 있는 OEM들에게 Android Go 또는 Android Oreo 버전을 공개했으며,이 시스템 전용 안드로이드 사이트내의 새로운 섹션을 발표했습니다.

거기에 있는 모든 정보들중 주요 세부 사항을 세분화했습니다.

Android Go?

본질적으로 Android Go Android Oreo의 경량 버전으로, 운영 체제, Google Play 스토어, Google 앱 등 최적화된 세 영역으로 구성됩니다. 이것들은 성능이 낮은 하드웨어에서 더 잘 돌아갈 수 있도록 만들어졌습니다.

OS

OS 자체는 Android Oreo를 기반으로 하지만 1GB 이하의 RAM이 장착된 스마트폰에서 실행되도록 제작되었습니다. 운영체제는 Android Nougat과 같은 내부 저장 공간의 약 절반을 차지하며 저장 공간이 부족한 스마트폰에 더 많은 미디어와 응용 프로그램을 저장할 수 있는 여유 공간을 제공합니다.

또한 Android Oreo (Go 버전)를 실행하는 기기는 이전 Android 소프트웨어 (Android Oreo의 일반 버전에서도 마찬가지임)에 비해 앱을 15% 빠르게 실행한다고 하며 Google '데이터 세이버'기능을 활성화했습니다. 기본적으로 사용자가 시스템에서 모바일 데이터를 덜 소비하도록 지원합니다.


Apps

OS와 마찬가지로 Google은 기기의 메모리를 더 잘 활용할 수 있는 앱을 개발했습니다. 회사는 G Suite 애플리케이션을 재설계하여 Low-End 하드웨어에서 더 적은 공간을 차지하면서 성능을 향상시켰습니다. Pre-installed App은 일반 버전보다 저장 공간을 최대 50%까지 적게 차지해야 하며 YouTube Go, Google Maps Go Gmail Go가 있습니다. Google Assistant Google Assistant Go로 처음으로 1GB 이하의 RAM이 탑재된 휴대 전화에서도 실행할 수 있습니다.

구글은 또한 Google Go Files Go와 같은 안드로이드용 몇 가지 새로운 앱을 선보였습니다. Google Go Google Lite App의 개조된 버전으로 최소한의 타이핑으로 인기있는 검색어, 최고의 웹 사이트 및 앱, 급상승하는 이미지 및 GIF를 쉽게 찾을 수 있습니다. Files Go는 파일 관리자 앱으로 저장 공간을 확보하는 것이 쉬워야 합니다.

Google Build for Developions 개발 가이드 라인을 활용하면 다른 제작자도 Android Go에 최적화된 앱을 제작할 수 있습니다.

Play Store

새로운 OS를 구축하고 앱 패키지를 사전 설치하면 Android Go의 훌륭한 출발점이 될 수 있습니다. 사용자가 가벼운 시스템을 유지 관리할 수 있도록 Android Go 기기는 Play Store의 전용 버전에 액세스할 수 있습니다.

Android Oreo (Go 버젼) Play Store에는 일반 Play Store와 동일한 콘텐츠가 모두 저장되며 스토어 프론트만 저전력 저장 장치에 더 적합합니다. Google Android Go 디바이스 전용 앱을 권장하는 앱 기능 섹션을 제공하여 사용자에게 가장 유익한 앱의 방향을 알려줍니다.


Android Go의 단점

지금까지는 Android Go 장점에 대해서만 이야기했지만, 단점 또한 가지고 있습니다. 예를 들어 Chrome의 데이터 저장 모드와 함께 제공되는 경고 목록은 다음과 같습니다.

▶ 보안 페이지 (https://로 시작하는 주소)에 있는 경우 데이터 세이버가 작동하지 않습니다.
Incognito 모드에서는 데이터 세이버가 작동하지 않습니다.
▶ 일부 웹 사이트에서 내 위치를 찾는 데 문제가 있을 수 있습니다.
▶ 일부 이미지가 흐릿하게 보일 수 있습니다.
▶ 회사의 내부 사이트와 같은 특정 그룹으로 제한된 웹 사이트가 로드되지 않을 수 있습니다.
▶ 이동통신사의 웹 사이트에 로그인하지 못할 수 있습니다.
/etc/hosts 파일에 대한 변경 사항은 작동하지 않습니다.

이것이 Android Go 인터페이스의 다른 영역에서 볼 수 있는 제한 사항들이며, 정규 Android Oreo 소프트웨어 기능과 약간의 차이가 있습니다.

2017년 11월 2일 목요일

The best antivirus software for Android (AV-TEST)

AV-TEST에서 발표한 Android에서 가장 좋은 안티바이러스 소프트웨어들입니다.

목록은 알파벳 순서대로 나열되어 있습니다.


2017년 9월 29일 금요일

'uses-permission'의 사용법 - Android Manifest

Android Manifest 파일에서 사용되는 '<uses-permission>'는 응용프로그램이 올바르게 작동하기 위한 응용프로그램에 부여해야하는 권한을 정의할때 사용됩니다. 권한은 애플리케이션이 설치될때 (Android 5.1 이하를 실행하는 기기에서) 또는 앱이 실행되는 동안 (Android 6.0 이상을 실행하는 기기에서) 부여됩니다.

'<uses-permission>'의 기본 형식은 아래와 같습니다.

<uses-permission android:name="string"
        android:maxSdkVersion="integer" />

'android:name'은 허용이 필요한 권한에 대한 이름을 나타냅니다. '<permission>' 요소로 정의된 권한, 다른 응용프로그램에서 정의한 권한 또는 "android.permission.CAMERA" 또는 "android.permission.READ_CONTACTS"와 같은 표준 시스템 권한중 하나일 수 있습니다. 아래 예제에서 볼 수 있듯이 일반적으로 사용 권한 이름에는 패키지 이름이 접두사로 포함됩니다.

'android:maxSdkVersion'는 권한을 부여해야 하는 가장 높은 API 수준입니다. 이 속성을 설정하면 앱에 필요한 권한이 특정 API 레벨이상에서 더이상 필요하지 않은 경우에 사용합니다. 아래 예제의 경우에 Android 4.4 (API 레벨 19)부터 앱이 외부 저장소 (getExternalFilesDir ()에서 제공하는 디렉토리)의 애플리케이션별 디렉토리에 쓰기를 원할 때 앱이 WRITE_EXTERNAL_STORAGE 권한을 요청할 필요가 없습니다. 그러나 API 레벨 18 이하에서는 권한이 필요합니다. 따라서 다음과 같은 선언을 사용하여 API 레벨 18까지만이 권한이 필요하다고 선언할 수 있습니다.

<uses-permission
     android:name="android.permission.WRITE_EXTERNAL_STORAGE"
     android:maxSdkVersion="18" />

이렇게 하면 API 레벨 19부터 시스템에서 더이상 앱에 WRITE_EXTERNAL_STORAGE 권한을 부여하지 않습니다.

이 속성은 API 레벨 19에 추가되었습니다.

2017년 9월 28일 목요일

AndroidManifest.xml 파일 개요

모든 애플리케이션에는 루트 디렉터리에 AndroidManifest.xml 파일이 있어야 하는데, Android Studio에서 기본 앱 프로젝트를 생성하면 'app/manifests' 폴더내에 위치합니다.

AndroidManifest.xml 파일에서는 Android 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공합니다.

■ 애플리케이션에 대한 Java 패키지의 이름을 지정하는데, 애플리케이션에 대한 고유한 식별자 역할을 합니다.
■ 액티비티, 서비스, 브로드캐스트 수신기 및 콘텐츠 제공자 등 애플리케이션을 이루는 구성 요소를 설명합니다. 또한, 각 구성 요소를 구현하는 클래스의 이름을 지정하고 클래스가 처리할 수 있는 해당 기능(: Intent 메시지)을 게시합니다. 이러한 선언은 Android 시스템에 구성 요소와 구성 요소가 실행될 수 있는 조건을 알립니다.
■ 애플리케이션 구성 요소를 호스팅하는 프로세스를 결정합니다.
■ 애플리케이션이 API의 보호된 부분에 액세스하여 다른 애플리케이션과 상호 작용하는데 보유해야 하는 권한을 선언합니다. 또한, 다른 애플리케이션이 이 애플리케이션의 구성 요소와 상호작용하기 위해 보유해야 하는 권한도 선언합니다.
■ 애플리케이션이 실행중일때 프로파일링과 기타 정보를 제공하는 Instrumentation 클래스를 나열합니다. 이러한 선언은 애플리케이션이 개발중인 동안에만 매니페스트에 존재하고, 애플리케이션이 배포되기 전에 삭제됩니다.
■ 애플리케이션이 필요로 하는 Android API의 최소 레벨을 선언합니다.
■ 애플리케이션이 연결되어야 하는 라이브러리를 나열합니다.

매니페스트 파일의 기본 예는 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>

<manifest>

    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration /> 
    <uses-feature /> 
    <supports-screens /> 
    <compatible-screens /> 
    <supports-gl-texture /> 

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>

        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <meta-data />
            <path-permission />
        </provider>

        <uses-library />

    </application>

</manifest>

2017년 9월 21일 목요일

여러 장치가 연결된 경우 특정 장치에만 adb 명령 수행방법

여러 장치가 실행중인 경우, adb 명령을 실행할때 명령을 수신할 대상 장치를 지정해야 합니다. 대상을 지정하려면 'devices' 명령을 사용하여 대상의 일련 번호를 가져옵니다.

일련 번호를 얻은 후에는 adb 명령과 함께 '-s' 옵션을 사용하여 일련 번호를 지정하여 보내면 됩니다. 여러 대의 장치를 위해 adb 명령을 실행하려면 일련 번호를 포함하도록 '$ANDROID_SERIAL' 환경 변수를 설정할 수 있습니다. '-s' '$ANDROID_SERIAL'을 모두 사용하면 -s '$ANDROID_SERIAL'을 대체합니다.

다음 사례에서는 연결된 장치 목록을 얻은 다음, 장치들중 하나의 일련 번호를 사용하여 해당 장치에 'helloWorld.apk'를 설치합니다.

$adb devices
List of devices attached
emulator-5554 device
emulator-5555 device

$ adb -s emulator-5555 install helloWorld.apk

여러 장치를 사용할 수 있을 때 대상 장치를 지정하지 않고 명령을 실행하면 adb에서 오류가 발생됩니다.

여러 장치 (하드웨어 또는 에뮬레이트)를 사용할 수 있지만, 에뮬레이터인 경우 -e 옵션을 사용하여 에뮬레이터에 명령을 보냅니다. 하드웨어 장치인 경우 -d 옵션을 사용하여 하드웨어 장치에 명령을 보냅니다.

2017년 9월 20일 수요일

USB 케이블 대신 WiFi를 통한 adb 연결방법

adb는 일반적으로 USB를 통해 기기와 통신하지만, USB를 통한 초기 설정 후에는 Wi-Fi를 통한 adb를 사용할 수도 있습니다. WiFi를 통해 adb를 사용해야만 하는 경우는 안드로이드 기기가 USB 도킹스테이션에 연결된 상태인 경우입니다. 이때는 이미 USB를 도킹스테이션과의 통신을 위해 사용하기 때문에 adb USB에 연결할 수가 없습니다.

adb WiFi를 통해 연결하기 위해서는 아래와 같은 절차대로 하면 됩니다.

1. 안드로이드 기기와 adb 호스트 컴퓨터를 둘 다 액세스할 수있는 일반적인 Wi-Fi 네트워크에 연결합니다. 모든 액세스 포인트가 적합한 것은 아닙니다. adb를 지원하기 위해 방화벽이 올바르게 구성된 액세스 포인트를 사용해야 할 수도 있습니다.

2. 안드로이드웨어 기기에 연결하는 경우 기기와 페어링된 휴대 전화에서 블루투스를 사용 중지합니다.

3. USB 케이블을 사용하여 안드로이드 기기를 호스트 컴퓨터에 연결합니다.

4. 포트 5555에서 TCP/IP 연결을 수신 대기하도록 안드로이드 기기를 설정합니다.

adb tcpip 5555

5. 안드로이드 기기에서 USB 케이블을 분리합니다.

6. 안드로이드 기기의 IP 주소를 찾습니다. 예를 들어 Nexus 기기의 경우 "설정 > 휴대 전화 정보 > 상태 > IP 주소"에서 IP 주소를 찾을 수 있습니다. 또는 안드로이드웨어 기기의 경우 "설정 > Wi-Fi 설정 > 고급 > IP 주소"에서 IP 주소를 찾을 수 있습니다.

7. 안드로이드 기기의 IP 주소로 장치에 연결합니다.

adb connect device_ip_address

8. 호스트 컴퓨터가 안드로이드 기기에 연결되어 있는지 확인합니다.

$ adb devices
List of devices attached
device_ip_address:5555 device

이 단계까지 오게 되면 호스트 컴퓨터와 안드로이드 기기간에 adb가 연결되어 기기를 제어할 수 있습니다. 만약 사용도중 adb 연결이 끊어진 경우에는 아래 절차대로 하면 됩니다.

1. 호스트 컴퓨터와 안드로이드 기기와 동일한 Wi-Fi 네트워크에 계속 연결되어 있는지 확인합니다.

2. adb 연결 단계를 다시 실행하여 다시 연결합니다.

3. 만약 이렇게 해도 문제가 해결되지 않으면 adb 호스트를 재설정해야 합니다.

adb kill-server

2017년 9월 18일 월요일

안드로이드 디버그 브리지 (Android Debug Bridge : adb)의 사용 방법

안드로이드 디버그 브리지 (Android Debug Bridge : adb)는 에뮬레이터 또는 안드로이드 기기와 통신을 하게 해주는 커맨드라인 툴 (Command-line Tool) 입니다. adb 명령어는 여러가지 동작을 가능하게 하는데, 예를 들면 앱을 설치하거나, 또는 앱을 디버깅하고, 유닉스 셀 명령어를 기기에서 동작시킬 수 있습니다. adb 3가지 구성요소로 되어 있습니다.

■ 클라이언트 (Client) : 클라이언트는 명령어를 보내는 역할을 하는데, 개발할 기기상에서 동작합니다. adb 명령어로서 커맨드라인 터미널에서 클라이언트를 호출합니다.
■ 대몬 (Daemon : adbd) : 기기에서 명령어를 동작시킵니다. 대몬은 기기상에서 백그라운드 프로세스로 동작합니다.
■ 서버 (Server) : 클라이언트와 대몬사이의 통신을 관리합니다. 서버는 개발할 기기에서 백그라운드 프로세스로 동작합니다.

adb Android SDK Platform-Tool의 패키지내에 포함되어 있습니다. , android_sdk/platform-tools/ 폴더에 설치되어 있습니다.

adb 클라이언트가 실행되면, 실행중인 adb 서버 프로세스가 있는지 확인을 합니다. 만약 없다면, adb 서버 프로세스를 실행시킵니다. 서버는 실행되면 로컬 TCP 포트 5037에 바인드되어 명령어 수신을 기다립니다. 모든 adb 클라이언트는 adb 서버와의 통신을 위해 포트 5037을 사용합니다.

그다음 서버는 실행중인 모든 장치에 대한 연결을 셋업하는데, 초기 16새의 에뮬레이터를 위해 포트 5555에서 5585까지중 홀수번의 포트를 검색해서 에뮬레이터를 찾습니다. 그런다음 연결된 에뮬레이터와의 연결을 셋업합니다. 각 에뮬레이터는 콘솔 연결을 위해 포트 5555에서 5585까지중 짝수번의 포트를 사용합니다.

서버가 모든 장치에 대한 연결을 설정하면 adb 명령어를 사용하여 해당 장치에 접근할 수 있습니다. 서버는 장치에 대한 연결을 관리하고 여러 adb 클라이언트의 명령을 처리하므로 모든 클라이언트에서 모든 장치를 제어합니다.

adb를 사용하여 디버깅을 하거나 제어를 하기 위해서는 연결된 장치에서 'USB debugging'을 온시켜야 하는데, 이 메뉴는 'Developer Options'내에 찾을 수 있습니다. 일반적으로 기기상에서 동작하는 소프트웨어는 'User Mode' 소프트웨어이기 때문에, 이를 위해 'About Phone' 메뉴내에서 'Developer Options' 메뉴가 나오게 해야 하는데, 'Build Number' 메뉴를 7차례 클릭을 하면 'Developer Options' 메뉴가 생성됩니다.

2017년 5월 11일 목요일

세계에서 가장 작은 4G 스마트폰 Unihertz Jelly

세계에서 가장 작은 4G 스마트폰이 출시되었는데요. 중국 상해에 위치한 Unihertz사에 Jelly라는 브랜드의 스마트폰입니다.


이 폰은 240x432 픽셀을 2.45인치 터치스크린을 가지고 있는데 202 PPI의 해상도를 가집니다.

Unihertz Jelly 1.1GHz 쿼드코어 CPU 1GB RAM을 장착하고 있으며, 외부 메모리로 32GB 마이크로SD 카드를 지원합니다. 메인 카메라의 해상도는 8M 픽셀, 프런트 카메라는 2M 픽셀까지 지원합니다.

그렇지만 Unihertz Jelly는 현재까지 최신 OS Android 7.0을 지원하고, 950mAh 배터리를 장착하고 있습니다. 크기는 92.30 mm x 43.00 mm (세로 x 가로)로 무게는 13.3 그램입니다.


Nano SIM 크기의 Dual SIM 카드를 지원하는 Unihertz Jelly Wi-Fi, GPS, Bluetooth를 지원하며, 가속센서, 컴퍼스, 자이로스코프를 지원합니다.


아래는 자세한 제품 사양입니다.

Model and physical features
Design / Type
Bar
Depth
13.3 millimeters (0.52 inches)
Size (width x height)
43 x 92.3 millimeters (1.69 x 3.63 in)
Qwerty physical keyboard
Not supported
Antenna
Internal antenna
Water protection
Not supported

Operating system (OS)
Operating system
Android 7.0 Nougat

Hardware
Architecture - Chipset
32bit
CPU processor
1.1Ghz Quad-Core ARM Cortex-A53
GPU graphical controller
Unknown
RAM memory
1GB
Internal storage
8GB (2GB user available)
External storage
Until 32GB microSD, microSDHC

Display
Display type
TFT LCD
Screen size
2.45" inches
Screen-to-body ratio
~41.4% (screen-to-body ratio)
Touchscreen
Capacitive Multitouch 5-points
Display resolution
240 x 432 pixels
Pixel density (dot pitch)
202 PPI
Colors
260 thousand
Scratch-resistant glass
Not supported

Mobile networks and data
Dual SIM
Dual SIM Standby - Call active on one sim card
SIM card
2 slots Dual-SIM
nano-SIM (4FF)
2G network
GSM 850/900/1800/1900
3G network
UMTS 850/900/1900/2100
4G network
LTE Cat4 (Bands 1,2,3,4,5,7,8,12,17,19,20)
TD-LTE (Bands 40)
Data network
GPRS, EDGE, UMTS, HSDPA, HSUPA, HSPA+, TD-LTE, LTE
2G network SIM2
GSM 850/900/1800/1900
3G network SIM2
Not supported
4G network SIM2
Not supported
Data network SIM2
GPRS, EDGE
Maximum speed download
150 Mbps
Maximum speed upload
50 Mbps

Messaging and calling
Messaging
SMS (T9), MMS, E-mail, Push mail
Speakerphone
Supported
Video calling
Supported
Call control
Voice recorder

Primary camera / Back camera
Main camera
5 megapixels
Main camera resolution
2560 x 1920 pixels
Video recording (primary)
VGA (640 x 480 pixels) 30 fps
Flash
LED flash
Autofocus
Not supported
Touch focus
Not supported
Image stabilization
EIS: Digital stabilization
Zoom
Only digital zoom
Face/smile detection
Face detection
BSI sensor
Not supported
HDR
Not supported

Front camera / Secondary camera
Front camera
2 megapixels
Front camera resolution
1600 x 1200 pixels
Video recording
CIF (480 x 240 pixels)
Front flash
Not supported

Multimedia
Radio
Not supported
TV
Not supported
Video formats
MP4, H.264, H.263
Audio formats
MP3, WAV, eAAC+

Connectivity and interfaces
USB
USB 2.0 Micro-B (Micro-USB)
TV output
Not supported
Audio output
3.5mm jack
Bluetooth
4.0 version with A2DP
WiFi
802.11 a/b/g/n
DLNA
Not supported
NFC
Not supported
GPS
A-GPS, GeoTagging
Infrared port
Not supported

Other functions
Active noise cancellation
Not supported
Vibrating alert
Supported
Ringtones
Polyphonic and customized
Web browser
HTML, XHTML, HTML5
Flash player
Not supported
Java
Not supported
Sensors
Accelerometer
Compass
Gyroscope
WiFi hotspot
Supported

Power supply and autonomy
Battery
Lithium ion - Removable
Battery capacity
950 mAh
Talk time
1440 minutes | 24 hours | 1 day
Standby
10080 minutes | 168 hours | 7 days